主页 > imtoken不让安装 > 【科普读物】一个故事告诉你比特币的原理和运行机制(下)

【科普读物】一个故事告诉你比特币的原理和运行机制(下)

imtoken不让安装 2023-01-16 21:10:12

对于挖矿团队来说,在发出账纸的时候,如果之后收到其他组发出的账纸,并且“最后一页账纸的编号”是自己发出的账纸,那么就代表他们自己发出的账纸这项工作的成功得到了其他团体的认可,因为已经有团体继续处理他们的账本文件。 至此,可以大致说得到了50个比特币。

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

以上就是整个比特币支付系统。 我们来分析一下为什么这个系统可以继续运行,以及这个系统可能面临的风险。

工作机制分析

虽然上面解释了比特币的基本运行规则,但村民们仍然有很多疑问。 于是中本聪专门召开了问答会,回答大家常见的问题。 下面总结一下村民最关心的问题。

同时收到两张合法账簿页怎么办?

注意上面的运行机制,每个挖矿组是并行工作的,所以一个组收到两个不同的账本页是完全可能的,都是以当前组主账本的最后一页为准,内容完全合法,我该怎么办?

对于这个问题,中本聪表示,小组不应该以线性的方式来组织书籍,而应该以树的形式来组织书籍。 任何时候都以当前最长的分支作为主书,但保留其他分支。 比如一个组同时收到两个账号页面A和B,记账后都是合法的。 这时候群应该把这两个页面以fork的形式组织起来,如下图:

比特币原理_比特币原理与挖矿算法_挖比特币的原理

比特币原理与挖矿算法_比特币原理_挖比特币的原理

黑色代表当前的书骨干。 此时可以随机选择一个页面作为当前主分支,例如选择A:

比特币原理_挖比特币的原理_比特币原理与挖矿算法

这时候如果有基于A的新书页,那么trunk会继续:

挖比特币的原理_比特币原理_比特币原理与挖矿算法

如果这个主干一直这样下去,那就意味着大家基本上都是以A为主干,B就会被遗忘。 但也有可能 B 突然变长了:

挖比特币的原理_比特币原理与挖矿算法_比特币原理

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

挖比特币的原理_比特币原理与挖矿算法_比特币原理

从局部来看,虽然某个时刻各个组的会计骨干可能不一致,但大方向是一致的,那些因异步而偶尔产生的小分支会很快被历史淹没。

比特币原理_比特币原理与挖矿算法_挖比特币的原理

如果挖矿组有人造假账本怎么办

对于这个问题,中本聪表示,只要矿工组织中的大部分人都是诚实的,系统就会可靠,他会从几个方面来回答这个问题。

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

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

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

首先假设有一个拥有10个比特币的攻击者,他打算同时将钱支付给两个受害者A和B,并且都被承认。

第一步,攻击者准备向受害者A购买10个比特币的黄金,他给受害者A签了交易单,将10个比特币转给了受害者A。

挖比特币的原理_比特币原理_比特币原理与挖矿算法

第二步,在最新的账本页面确认交易,并由各挖矿团队公布。 受害者A看到公告,确认比特币已经到账,并给了攻击者相当于10个比特币的黄金。

挖比特币的原理_比特币原理_比特币原理与挖矿算法

比特币原理与挖矿算法_比特币原理_挖比特币的原理

第三步,攻击者找到账本,从包含刚才交易的账本页的上一页做一个分支,生成比上一个分支更多的账单页。 由于刚才攻击者创建的分支变成了主分支,而包含受害者A获得的钱的分支变成了副分支,所以矿工组织不再认可刚才的转账,受害者获得的10个比特币A 取消。 向上。

比特币原理与挖矿算法_挖比特币的原理_比特币原理

第四步,攻击者可以再次签署交易,并向受害者B支付等量的钱,受害者B在确认钱到账后向攻击者支付等值的黄金。

比特币原理_比特币原理与挖矿算法_挖比特币的原理

至此,攻击者两次花费10个比特币从两名受害者手中购买了等量的黄金。 攻击者也可以做同样的事情,取消与受害者 B 的转账,并将同样的钱支付给其他人......

对于这种攻击,中本聪给出的解决方案是建议收款人在发布公告时不要立即确认交易完成,而是应该等待一段时间,等待每个矿工团队发布6多确认账本,之前的账本在确认钱到账之前还没有注销。

中本聪解释说,设置这些变态的编号规则就是为了抵御这种情况。 综上所述,想要生成有效的账本页并不是那么简单,需要大量人力反复尝试不同的幸运数字,过程完全靠运气。 如果一个账本页面包含你收到钱的确认信息,并且它持续了 6 个以上,攻击者很难在落后 6 页的情况下从另一个分支赶上当前的 master 分支,除非攻击者有一个大量人力,超过所有其他诚实矿工的总和。

而且,如果攻击者有这么多人手,与其花那么大的力气来进行这种攻击,还不如好好挖矿,获取更多的收益。 这样可以防止从动机上形成攻击。

挖比特币的原理_比特币原理_比特币原理与挖矿算法

比特币会继续涨,会不会引起严重的通货膨胀

中本聪说,我也想到了这个。 前面忘了说了,我给矿工组织的操作规程手册上会说明,在我们的协议开始的时候比特币原理,每产生一页账本,本组奖励50个比特币。 以后账本每增加21000页,奖励减半。 例如,当达到21万页后,每生成一个账本奖励25个比特币; 42万页后,每生成一页奖励12.5个比特币,以此类推。 当账本达到693万页时,新生成的账本页数将没有奖励。 此时比特币的总量约为21,000,000,这是比特币的总量,所以不会无限增加。

没有奖励之后就没有人做矿工了,也就没有人帮忙确认交易了

届时,矿工的收入将从挖矿收入变为手续费。 比如你转账的时候,你可以指定其中的1%作为手续费支付给生成账户页面的团队,每个团队会选择手续费高的交易单进行优先确认。

如果矿工越来越多,比特币的生成速度会不会更快?

惯于。 中本聪解释说,虽然可以随意加入和退出矿工组织,导致矿工数量发生变化,但每个矿工也会得到一个代码生成器,但我在代码生成器中加入了控制机制,并且code generator currently working 越多,每台机器的效率越低,保证新书页的生成率不变。

虽然每个人的代号都是匿名的,但是如果有人的代号泄露了,账本公开了,那他的账不就全都查出来了吗?

这是真的。 比如你想和某人交易比特币原理,你必须得到他的代码才能填写交易表格。 因为收款人一栏需要填写那个人的代号。 不过,中本聪表示,可以提供无限的保密印章,建议每笔交易使用不同的保密印章,这样就无法通过查账簿查到同一个人的所有账户。

问答结束。

比特币原理与挖矿算法_比特币原理_挖比特币的原理

阐明

本文用一个流行的比喻来解释比特币的运行机制。 有几点需要说明:

为了便于理解,我做了很多简化,所以一些机制细节可能和实际的比特币不完全一样。 但总体思路和关键原则是相同的。

由于计算机世界中的很多东西(比如公钥系统、网络传输)在现实世界中并没有特别好的对等物,所以故事中难免会出现一些生硬不合理的细节。

本文描述了比特币网络本身的技术原理和运行机制。 在Mtgox等交易市场进行比特币交易时,市场充当中间代理,不遵循上述机制

参考

比特币:一种点对点的电子现金系统

云峰博客:比特币基础

通俗易懂的比特币工作机制详解

原始来源: