主页 > 以太坊imtoken > 冷知识:如何理解流行的“比特币”

冷知识:如何理解流行的“比特币”

以太坊imtoken 2023-01-17 02:47:35

如何用冷知识理解“比特币”的常识本文不会涉及算法和协议更详细的部分。我打算以后再从程序员的角度写一个比特币原理,从技术人员的角度来写。这篇关于比特币部门的文章不会涉及算法和协议的更详细的部分。我打算从程序员的角度写另一篇关于比特币原理的文章,其中将从技术人员的角度分析比特币系统更关键的方面。解释了数据结构、算法和协议。

在本文中,我将给出一个名为“比特村”的虚拟村庄。整篇文章将告诉你比特币的动机,它解决了哪些问题,以及在讲故事的方式中一些关键组件的目标。和设计方案。要问这个问题,让我们从比特币背后的动机开始。在这个世界上,有一个叫比特村的小村庄,里面有数百户人家。这个村庄几乎与世界其他地方隔绝,过着自给自足的生活。

由于没有大规模的贸易,比特村的村民一直过着以物易物的生活,也就是说村民不使用统一的货币。老李家养了一只羊,王姐用一篮野果换了刘婶的两尺布。村民们一直过着如此简单的生活。

有一天,实物货币终于来了。村民们觉得一直这样交易太不方便了,于是全村开会讨论如何解决这个问题。

有人提出,为了便于划分,黄金等稀有物品作为一般等价物,应将其他物品与黄金的对应关系编成表格,如一克黄金换一只羊, 一袋面粉换一克黄金

此时,老张再也不用背着一袋面粉和裤子去老李家换羊了。只要从家里找到一克黄金,就可以去老李家取一只羊,老李拿这克黄金可以换任何人愿意卖的一袋面粉,当然是任何相当于一克黄金的物品。

此时,比特村已经进入了实物货币时代。符号货币持续时间不长,一段时间后,实物货币的劣势也出现了。因为比特村附近的金矿不多,开采和冶炼黄金太费时费力。随着使用,黄金会因磨损、丢失或故意囤积而不断耗尽。

全村人又坐在一起,开始商讨对策。这时候有人说,其实不是每个人都非得用黄金。随便找一张纸写下“一克黄金”。只要全村人都同意这张纸等于一克黄金,问题就迎刃而解了。 .

其他人都同意了,但同时又出现了新的问题:真金需要开采和冶炼,金矿有限,开采和冶炼也需要成本,所以没有人可以大量开采黄金短时间内空气稀薄,但写作却不同。只要我有足够的纸和笔,我想写多少就写多少,那将成为纸太多的人的斗争,也许一万张纸可以代替一只羊(实际上这是经济通货膨胀)。

每个人都这么认为。但此时,又有人提出了一个解决方案:这篇论文对任何人都无效。我们只认得是村里尊敬的老村长写的,老村长的话大家都知道。

老村长写了一些纸,同时根据每家的黄金存量分配相同数量的纸。比如老张家有200克黄金,老村长就送老张200张纸,上面写着“一克”。金”纸,同时以老张的黄金作抵押。

就这样,老村长把村里所有的金子都带回了家中,并按照每家上交的金子数量,分发了等量的纸条。这时候村民们可以把这些纸当做交易的金子,老村长的话人人都能认得出来,别人是不能伪造的。

另外,如果有人的纸太破旧,还可以找老村长换换新的等值纸。另外,老村长承诺,如果有人想换真金,只要把纸带回来,老村长就答应了。村长会将等值的金币归还给那个人。

因为老村长写的金子和家里实际放的金子是一样的,所以只要严格遵守销毁多少纸,写多少新纸的原则,每有效的一张纸总是可以换取相应数量的金币。真金。

此时,比特村进入了符号货币(纸币)时代。老村长兼任政府和银行。

自从中央系统虚拟货币过去了几年,老村长不得不每天检查大量的旧钞票,写新钞票,仔细记录各种账目。来来回回,老村长劳累过度,不幸开车到了吊车的西边。

比特村再次召开股东大会,商讨怎么办。这时,老村长的儿子二狗子自告奋勇接过父亲的笔比特币算法有什么意义,承担了发币的责任。

年轻的村长二狗子很聪明。他工作了几天,发现自己真的不需要写那么多论文。这是完全可以的:村民把纸币全部上交并销毁,但二狗子会记录每户上交的纸币数量。

比特币算法有什么意义

如果以后要还钱,比如老张想用一克黄金换老李换一只羊,他们会一起打电话给二狗子,说明老张名下的一克黄金应该转给老李。以李的名义,二狗子拿出账本,看看老张名下有没有一克黄金。有的话,老张名下减1克,老李名下加1克,就这样。付款后,老李在电话里听到二狗子确认转账已经完成,他放心老张会带羊走的。

此时,比特村已进入中心系统虚拟货币时代。每个村民不需要实物支付,支付过程变成了二狗子维护的账本上数字的变化。

分布式虚拟货币,新任命的二狗很聪明,但有时这个人很聪明却被聪明误会了。一日二狗子盯着这本账簿心想,全村家家户户的钱谁有我说的,我不是……于是火了,私下从老家转了十克黄金张的帐户是他自己的名字。

本以为天衣无缝,没想到老张也有记账的习惯。一天,他正要结账,却被二狗子告知账户没钱了。老张看了看账本,明明还有十克,就拿着账本去了二狗子理论。本次检查发现了未经老张批准的转账。

发生了什么!比特村爆炸了。二狗子被弹劾在所难免,但通过这件事,大家发现了账本集中在一个人手中的弊端:

这个系统完全依赖于账户持有人的个人信用。如果这个人不遵守规则,随意篡改账本,那么整个货币体系就会崩溃;如果这个人的房子着火了,或者账本被盗了,同样会是整个系统的灾难。毁灭性的打击。

当人们束手无策时,村里一位名叫中本聪的宅男科学家上台告诉大家,他设计了一个不依赖任何中央处理器的名为比特币的虚拟货币系统,可以解决上述问题问题。然后他慢慢描述了他的计划。

让我们看看中本聪是如何设计这个系统的。基础设施建设账簿披露机制中本聪首先表示,现有账簿应进行如下改造:

账簿不再记录每个村民的余额,而只记录每一笔交易。即记录每笔交易的付款人、收款人和付款金额。只要确定了账本的初始状态,并且每笔交易都被可靠、有序地记录下来,就可以计算出每个人目前持有的货币数量。

账簿由私人改为公开。只要有村民需要,就可以获得完整的活期账簿。账簿记录了从账簿创建到当前的所有交易记录。

此言一出,平底锅立马掉了下去。第一项无所谓,但第二项根本无法接受,因为账本记录了所有村民的交易,所以每个人的隐私都没有完全暴露。

中本聪慢慢地拿出了一对奇怪的东西。身份和签名机制(公钥加密系统) 中本聪说,不要惊慌。在他的机制下,没有人使用真实身份进行交易,而是使用唯一的代码。

他将手中的神奇东西拿出来,说这两个东西分别叫做保密印章和印章扫描仪。之后,他会给村里的每家每户发放密印和印章扫描仪。两者的作用如下:

保密印章可以在纸上加盖印章。每个印章所盖的印章,都包含着全村独一无二的一串字符,但肉眼是无法看到的。也无法通过观察产生相应的印章。

Stamp Scanner 可以扫描已盖章的邮票,读取隐含的信息,并在 LCD 屏幕上显示一串字符。

有了这两个神奇的东西,每个人都可以在不暴露真实身份的情况下进行交易,而印章所隐含的一串字符就是家族的代号。下面将详细介绍如何巧妙地使用机密印章和印章扫描仪进行交易。成立虚拟矿工组织(矿工团) 接下来,中本聪从全村招募虚拟矿工。招聘要求如下:

比特币算法有什么意义

矿工被分组为一个单元。一个组可以是一个家庭,也可以将几个家庭合并为一个组。成为矿工不影响币的正常使用

矿工每天都会花费一定的时间从事比特币“挖矿”活动,但与淘金不同的是,虚拟矿工不需要带着工具去外地,在家就能完成工作。

矿工有一定的获得报酬的概率,他们在挖矿活动中付出的努力越多,获得报酬的可能性就越大。矿工可以随时退出,也可以随时添加新矿工。

很快,大约五分之一的村民加入了比特币矿工组织,分成小组。在建立初始账簿(创造区块)后,中本聪宣布根据二狗子手中的账簿,将抵押的所有黄金按照账簿上记录的余额归还给每个村民,然后账簿将被彻底摧毁。

然后,中本聪拿出一本新的账簿,在账簿的第一页记录了一些交易记录。尤其是这些记录的payer一栏都是“系统”,而payee分别是每个印章对应的隐含字符,代表初始时刻。系统默认为每个家庭分配一定数量的比特币,但数量很少,只有少数,甚至一些不幸的村户也没有拿到比特币。

中本聪接着说,由于目前市场上的比特币很少,大家可以回到以黄金为货币的时代。由于我不是村长,我无权强迫所有人承认比特币。决定是否接受比特币。但是,随着比特币的流动和矿工的活跃,比特币会逐渐增加。支付和交易做了这么多铺垫,终于说到正题了,我们来说说在这样的系统下如何完成支付。以老张付给老李一个比特币为例。付款人签署交易指令。为了支付一个比特币,老张先向老李要了标识串,比如“”,老张也有一个标识串,比如“”,然后老张写了一个清单,内容为了“支付比特币给”,然后用自己的密印换一个印章,把这张单子交给老李。

另外,为了方便追溯资金来源,还需要在列表中注明资金来源记录在哪个页面。比如在这个列表中,老张的比特币来自建立账本时的系统。在总账的第一页。

收款人确认单据的签字人老李拿到名单后,需要确认名单确实是“”人(即老张)签字的。这并不难。因为名单上肯定有保密印章,所以老李拿出印章扫描仪,扫描了印章。如果液晶屏上显示的字符与付款人的字符相同(这里是“”),则可以确认该清单确实是付款人签字的。

这是因为根据密印的机制比特币算法有什么意义,任何人都无法伪造。任何人扫描印章都可以确认付款人和盖章人是否相同。收款人确认付款人余额的系统仍然存在很大问题。通过保密印章,收款人可以确认付款人确实签署了表格,但无法确认付款人是否有足够的余额支付。

在之前的中央虚拟货币系统中,二狗子负责检查付款人的余额,并通知收款人交易是否有效。现在二狗子开通了,谁来负责记账和确认每笔交易的有效性呢?

正如我之前所说,中本聪设计的系统是一个分布式货币系统,不依赖任何中心人物,所以不会有一个或几个人负责这件事,最终由谁来承担这份工作是前面提到的矿工组织的工作。

老张、老李和村里任何其他使用比特币交易的村民都依赖矿工组织的工作来完成交易。矿工的工作 矿工的工作是整个系统的核心,也是最复杂的地方。下面分步介绍矿工的工作内容和目的。矿工的工具 俗话说,工欲善其事,必先利其器。虽然比特币矿工不需要铁棍、铁锹和探照灯等工具,但还是有一些必要的东西。

初始账簿。每个小组首先自己复制一份初始账簿。初始账本只有一页,记录了系统的第一份礼物

空账本。每组有几张账簿,每页只有账簿结构,不填写内容。具体内容的编写规则将在后面介绍。下面是一个空账本的外观,每个字段的含义后面会提到

代码生成器(哈希函数)。中本聪向矿工组织的每个小组分发了一些代码生成器。这件事太神奇了。将写有账簿内容的一页账簿纸放入机器,机器会在账簿纸上显示“本单号”。该列自动打印由“”和“”组成的一系列数字,共一个。最神奇的是数字生成器有以下功能:

生成的数字只与账簿纸填写的内容有关,与填写人、字体、填写时间等因素无关

比特币算法有什么意义

相同内容的账簿纸生成的数字始终相同,但如果内容只改变一个字符,数字将完全无法识别

代码生成器在打印代码时,还需要将所有填写的交易单据放入账簿纸中。机器会扫描交易单并填写交易单的一致性,尤其是保密印章。如果发现密章与付款人不一致,将拒绝打印编码

将打印好的账簿纸放进去,机器会判断号码是否对机器打印有效,并判断号码和内容是否一致,这个号码不能伪造

交易票收件箱。每个矿工组都需要在门口挂一个盒子,用来收集交易单。布告栏。每个矿工组还需要一个公告板来发布一些信息。

有了以上工具,矿工组织就可以开始工作了!收集交易单据 中本聪规定,每笔交易的发起人不仅要向收款人提供交易单据,还要复制多张相同的交易单据并投递到各个矿工群的收件箱。

矿工团队的人定期去他们的收件箱收集和检索收集到的交易。填写账簿 此时,团队成员拿出一张空账簿纸,将这些交易填写在“交易清单”一栏,同时找到当前账簿的最后一页,将最后一页的编号到“最后的帐单编号”。列”。

注意还有一个“幸运数字”,你可以填写任何数字,例如。然后,将这张账簿纸放入号码生成器中,打印数字,一本账簿就完成了。

如果你认为矿工的工作这么简单,那你就错了。中本聪有个变态规则:只有数字的第一个数字相同,这页账簿才有效。

根据前面对号码生成器的描述,要修改号码,只能修改账簿的内容,不能随便更改“交易清单”和“上一账簿的号码”,所以只能更改幸运数字。

所以为了生成有效的账簿纸,群里的矿工不停地复制账簿纸,但是每张纸都有不同的幸运数字,然后反复将纸放入编码器,如果生成的数字不符合规定,该张纸被丢弃,并重复该过程,直到生成有效数字。

我们知道,如果数字的每个数字都是随机的,则需要用不同的幸运数字平均写多张纸才能得到一个有效数字。

这很奇怪,为什么这些矿工要拼命做这种看似毫无意义的事情?记得之前说过矿工有报酬,这是矿工的动力。

中本聪规定,每个账本的交易清单中的第一笔交易是“系统支付给这个组一个比特币”。也就是说,如果你生成了一份有意义的账本,并且被所有矿组接受,就意味着这笔交易也被接受了,你的矿组得到了一个比特币。

这就是为什么矿工被称为矿工,以及为什么前面说比特币的数量会随着交易和矿工活动的增加而增加。比如下面是一个挖矿过程,这个群的比特币公众号是“”。

当幸运数字试图到达“”时,系统会生成一个有效的账簿。确认账本 当一个挖矿组有幸生成了一份有意义的账本,为了获得奖励,它必须立即要求其他组确认他们的工作。前面说了,目前村里有一个矿工组,所以这个组必须赶紧把有效账本的复印件发给其他组确认。

中本聪规定,当一个组收到其他组发送的账本时,必须立即停止手头的挖矿工作以确认账本。

比特币算法有什么意义

需要确认三项信息:账簿编号有效,账簿上一页账簿有效交易清单有效。首先看第一个,这个确认比较简单。只需将发送的书纸放入代码生成器进行验证,如果验证通过,则号码有效。

第二部分,需要将账簿页面上的“账簿上一页的页码”与群组当前保存的有效账簿的最后页码进行比较。如果相同,请确认。如果不同,则需要按照现有的账簿进行。比较直到找到这个编号的页面。如果没有找到指定的“上一本书页码”的页面,团队将丢弃该页面。未确认。

注意,上述机制可以保证,如果各组手中的账簿纸相同,则可以按照相同的顺序绑定到同一个账簿中。因为后一页的编号总是依赖于前一页的编号,所以代码生成器的机制保证了所有合法书页的相对顺序在每一组中是相同的(可能有分支,但没有环,后面会详细讨论)。

最后,如何确认交易清单有效,其实就是确认当前每笔交易的付款人有足够的余额来付款。由于交易信息包括钱是怎么来的,所以还包括记录源交易的票据编号。

例如,如果你要给一个比特币,并且表明这个比特币是来自之前支付的一笔交易,那么在确认的时候,你首先要确认之前的交易是否存在,并且还要检查比特币是否没有之前被转移。硬币支付给他人。这一切都确认后,交易的有效性就被确认了。

第一个由系统奖励给生成该账簿页面的团队。默认情况下确认此事务。后者只要按照上面的方法追溯,就可以确认是否真的有比特币支付给它。

如果以上所有验证都完成并全部通过,则集团将承认上述账簿和纸的有效性,然后将此账簿纸并入集团的主账簿,丢弃当前正在进行的工作,后续的挖矿工作将基于这个更新的主账本。账簿确认反馈 对于挖矿团队,账簿纸发出后,如果后面有其他组发送的账簿纸,“上一页账簿纸号”就是之前发出的账簿纸,那么表示他们的工作被其他小组成功认可,因为已经有小组根据他们的账本继续工作。至此,可以粗略的说获得了一个比特币。

另外,当任何一个群组生成新的有效账簿或确认另一个群组的账簿时,都会在公告栏上写出该群组认可的最新交易,收款人只会发现相关交易已被群批准后,基本可以认为钱已经到了他的账户,然后他可以在付款的时候把钱的来源指向这个交易。

以上是整个比特币支付系统。下面我们来分析一下为什么这个系统可以工作,以及这个系统可能面临的风险。工作机制分析 虽然上面解释了比特币的基本运行规则,但村民们仍然有很多疑问。因此,中本聪举办了问答环节,回答常见问题。下面总结一下村民们最关心的问题。如果我同时收到两个合法账簿页,我该怎么办?

注意,在上述运行机制中,每个挖矿组是并行工作的,所以一个组收到两个不同的账簿页面是完全可能的,这两个账簿页面是基于该组当前的主账簿。最后一页,内容完全合法,怎么办?

在这个问题上,中本聪表示,小组不应该以线性方式组织账簿,而应该以树状方式组织账簿。任何时候都以当前最长的分支作为主账簿,其他分支保留。

例如,如果一个小组同时收到两个账簿页面,则它们在会计后都是合法的。这时候群应该把两个页面以分叉的形式组织起来,如下图所示:

黑色代表当前的账本主干。此时可以选择任意页面作为当前的master分支,例如选择:

如果此时有新的书页要基于,那么主干继续:

如果这个trunk继续这样下去,说明大家基本都认为它是trunk,就会被遗忘。但它也可能突然变长:

那么我们需要将该分支作为当前主干,并基于该分支进行后续工作。

比特币算法有什么意义

从局部来看,虽然某个时刻各组账本的主干可能存在不一致,但大体方向是一致的,那些由于异步偶尔产生的小分支很快就会淹没在历史中。如果挖矿团队中有人伪造账本怎么办?对于这个问题,中本聪表示,只要矿工组织中的大部分人是诚实的,系统就会可靠,并且会在几个方面给出答案。

首先,基于保密印章机制,任何人都不能伪造他人身份进行支付,因为代码生成器在打印代码时会检查所有交易单据的保密印章,如果出现则拒绝打印印章与付款人不一致。

并且诚实的矿工不会承认非法交易(例如付款人余额不足的交易)。

所以只有一种可能的攻击,即收款人确认支付后,从另一个分支创建另一个交易,取消之前的支付,再次将相同的钱支付给另一个人(所谓的问题)。下面也用一个例子来说明这个问题。

假设有一个攻击者拥有 1 个比特币,他打算将钱支付给两个受害者并且他们都被承认了。

第一步,攻击者准备从受害者那里购买比特币黄金,他向受害者签署交易表格,并将比特币转移给受害者。

第二步,交易在最新的账簿页面确认,并由各矿组公告。受害者看到公告,确认收到比特币,并给攻击者相当于比特币的金币。

第三步,攻击者找到账本,从包含刚才交易的账本页面的上一个页面做一个分支,生成比上一个分支更多的计费页面。由于攻击者刚才创建的分支成为主分支,而包含受害者收到的钱的分支成为侧分支,挖矿组织不再认可之前的转账,受害者获得的比特币被取消。

在第四步中,攻击者可以再次签署交易票据,向受害者支付相同金额的钱。受害者确认钱到账后,受害者向攻击者支付等值金币。

此时,攻击者花费了两次比特币,从两名受害者的每人手中购买了等值的黄金。攻击者也可以这样做,取消与受害者的转账,将同样的钱还给其他人……

对于这种攻击,中本聪给出的解决方案是建议收款人不要在公告发布时立即确认交易完成,而应该稍等片刻,等待各个矿群发布这个通告。确认账簿,之前的账簿没有注销,然后确认钱到了。

Nakamoto 解释说,以前设置了错误的编号规则来防御这种情况。综上所述,生成一个有效的账本页面并不是那么简单,反复尝试不同的幸运数字需要大量的人力,而且这个过程完全是随机的。

如果一个账本页面包含你收到钱的确认,并且后面跟着一个延续,那么攻击者很难在页面落后的情况下从另一个分支超越当前的主分支,除非攻击矿工拥有大量人力,超过所有其他诚实矿工的总和。

另外,如果攻击者有这么多人力,做一个好公民总比花这么多精力进行这种攻击要好。这可以防止从动机上形成攻击。比特币会继续上涨,会不会造成严重的通货膨胀,中本聪说,我也想到了这个。前面忘记说了,我给矿工组织的操作规则手册里有说明,在我们协议开始的时候,每产生一页账本,团队就会得到比特币奖励。之后,每当账簿增加时,奖励就会减半。之后,账本的每一页都会得到比特币奖励,页后每一页都会得到奖励,以此类推。账簿到达页面后,新生成的账簿页面将不再有奖励。此时比特币总量约为1,也就是比特币总量,所以不会无限增加。如果没有奖励,就没有人成为矿工。是不是意味着当没有人帮助确认交易时,矿工的收入会从挖矿收入变成收费。比如转账时,可以指定交易手续费支付给产生账簿页面的群组,每个群组会选择交易手续费高的交易订单先进行确认。如果矿工越来越多,比特币的生成速度会不会越来越快?不是。中本聪解释说,虽然可以随意加入和离开矿工组织,导致矿工数量发生变化,每个矿工也会得到一个代码生成器,但我在代码生成器中加入了控制机制,并且当前工作的代码生成器越多,每台机器的效率就越低,保持新书页生成的速率不变。

虽然每个人的代号都是匿名的,但如果一个人的代号泄露了,账本公开了,那他的账岂不是都被查出来了

确实如此。例如,如果你想和某人交易,你必须去他的代码填写交易表格。因为收款人栏需要填写那个人的代码。不过,中本聪表示可以提供无限的保密印章。建议每笔交易使用不同的保密印章,以免查账簿查到同一个人的所有账户。

答案是完整的。

特别声明:以上内容(包括图片或视频)为自媒体平台“网易”用户上传发布,本平台仅提供信息存储服务。