中本聪在比特币源码中留下的彩蛋:1或3要比2好
2009年1月9日,中本聪发布了比特币首个版本的客户端Bitcoin v0.1.0,时隔10年又7个月,开发者Duke Leto在其源代码中发现了一个未曾被广泛关注的彩蛋,其内容是:
“Never go to sea with two chonometers; take one or three。”直译过来便是:“千万不要带两个航海经线仪出海,带1个或者3个。”
那假设我们带2个航海经线仪出海,会发生什么呢?
答:会出现两个经线仪给出完全不同结果的情况,这个时候我们就会遇到困境,无法决定哪个才是我们需要采用的。
显然,采用1个经线仪是最简单的办法,但也可能会有错,而采用三个,就可取其中2个接近或者相同的答案,并以此作为标准。
而涉及到比特币,那么这句话就可被理解为与区块链共识有关了。
(图片来自:pexels.com)
传统的三模冗余容错
在计算机世界的三模冗余系统(简称TMR),是一种N模冗余的容错形式.其中三个模块同时执行一个相同的过程,以多数相同的输出作为表决系统的正确输出,通常为三取二。如果三个模块中的任何一个出现故障,其他两个模块可纠正并掩盖故障。
三模冗余
在TMR中,三个相同的逻辑电路(逻辑门)被用来计算同一组指定的布尔函数。如果没有电路故障,三个电路的输出是相同的。但如果由于电路故障,三个电路的输出可能不同。多数逻辑门用来决定哪个电路的输出是正确的输出。如果多数门(2个或多个)的输入为1,则多数门的输出为1,反之,多数门输入为0,则输出也为0。
多数逻辑门是一个简单的“与或”电路:如果多数门的输入用x、y和z表示,那么多数门的输出就是
传统的拜占庭容错共识
然而,简单的容错系统在不受控的环境下,是会出现问题的。在分布式的系统环境下,节点是由独立参与者控制,因此,我们还需要为选择恶意或者“拜占庭”行为的节点设计一些规则,这种共识,我们称之为拜占庭容错共识。
在比特币出现之前,维护一个拜占庭容错共识的P2P网络的唯一方法,是使用一组封闭或半封闭的节点。此外,传统的BFT算法(如pBFT)所使用的节点选择方法,与当前在中本聪共识中使用的方法不同。
在开放的分布式网络中维护BFT,需要使用一组特定的规则,这些规则既依赖于密码学,也依赖于博弈论机制,以便创建必要的无需信任环境。
在pBFT系统中,共识模型只在一小群封闭节点(几十个)中工作,其中存在大量的通信开销,这阻碍了这些共识模型实现大规模化。在存在任意错误的系统中达成共识,通常需要特定的投票系统来帮助达成共识。对于使用pBFT共识模型的加密货币平台,这种投票机制是基于一种轮换“领导者”节点系统。由于系统是由一个有限的、封闭的节点所组成的网络,因此,对于这些节点来说,有效通信并确定提出每个新区块的“领导者”是非常简单的。
如果“领导者”的行为是恶意的,其余节点的多数投票就可移除这个领导者。然而,在比特币这样的系统中,这显然没有很好的扩展性,在该系统中,对区块链的整个状态和所有交易的有效性的共识被分发到世界各地的数千个节点,这些节点不断地连接和断开与网络的连接。此外,参与这一共识体系,需要一个固有的成本,以阻止参与者以恶意的方式行事。
因此,为了使比特币作为一个拜占庭容错P2P网络运行,中本聪引入了PoW挖矿共识算法,并结合一组特定的规则来控制机制,以实现整个网络的无信任共识,而这就被称为经典的中本聪共识。
中本聪共识是怎么回事?
实际上,中本聪共识可被分为四个部分:
- 工作量证明(PoW);
- 区块选择;
- 稀缺性;
- 激励结构;
总体而言,PoW是推动比特币共识最为重要的引擎,其旨在抵抗双花和女巫 (Sybil) 攻击的发生。区块链是一个时间戳数据链,其中包含与前一个区块哈希的每个区块的交易。这为区块链提供了不可变的特性,但如何判断自己所在的链就是正确的链呢?这就是PoW的作用。
而第二点区块选择,则是中本聪共识区别于其他共识模型的关键组成部分之一。由于该模型是以PoW设计为基础的,因此区块选择过程,具体指的是矿工为赢得下一个区块开采的区块奖励而竞争的“抽奖”过程。
而在pBFT系统中,区块领导者是通过循环的投票过程所选出的,该系统不存在挖矿的过程,而是由领导者选择要添加到链中的区块,并且需至少获得2/3其余节点的认同。在比特币中,是没有投票程序来确定区块领导者的,相反,它是在区块中增加了一个nonce密码难题,直到达到表示该区块哈希的正确值和nonce开头所需的零位。
网络中的矿工们都在竞争解决这个难题,第一个找到解的便赢得这轮抽奖。然后,该区块由矿池通过网络传播到其他挖矿节点,这些节点通过将该区块添加到最长链来隐式投票接受该区块为有效区块。这个过程的一个结果,是消除了对区块领导者的潜在第三方影响,因为这个过程是随机的。
至于稀缺性和激励结构,就是指2100 万BTC及新增币比例不断下降的设计,矿工们被鼓励诚实地验证和保护网络,因为他们开采一个区块获得的奖励便是比特币。如果比特币价值下降或网络受到损害,矿工本身就会受到伤害。
重要的是,利用中本聪共识,比特币成为了一个社会可扩展网络。比特币通过激励设计、PoW以及一套治理规则来达成无需信任的共识,克服了人性中固有的问题,成为一种可靠的内在价值来源。
从效果上看,中本聪共识是拜占庭容错的,但它显然没有达成共识研究人员传统上所假设的共识。因此,它最初被视为完全脱离拜占庭容错世界。
根据设计,中本聪共识可让任意数量的节点以开放式的方式参与系统,而且没有人必须要知道完整的参与者集,而这些特性是非常重要的。
它比以往的共识算法要更简单,其消除了以前共识算法在点对点连接、领导者选举、二次通信开销等方面的复杂性,这使其可在真实环境中轻松部署。
也因此,我们可认为中本聪共识就是1或3,1就是当节点全部一致做正确的事,3就是当节点当中出现部分错误或恶意节点时,取多数共识为正解,迫使少数节点回归多数共识的链,并最终形成1,否则,就分叉出去。
你的理解是什么呢?
参考资料: 1、https://en.wikipedia.org/wiki/Triple_modular_redundancy
2、https://blockonomi.com/nakamoto-consensus/
3、https://www.8btc.com/article/312296