上文说到,区块链不可篡改和去中心化的特性来自公共总账,即把所有信息记录到网络内的多个账本上,就像一个公司的财务记录,由所有员工共同维护记录,而非仅仅由财务完成。这项工作在区块链领域被称作分布式记账,而常说的区块链记账或出块“节点”,其实就是一台计算机。所有节点同时各自记录各自的账本肯定是不行的,我们需要记录同一个得到大家认可的账本作为某一个团体的唯一账目凭证。但是以谁的账本为标准呢?这个就需要所有参与记账的节点达成共识,也就是“共识机制”。可以看出如果没有一种有效的共识机制,区块链系统就缺乏了存在的基础,因此共识机制是区块链网络的生命线。
在讨论共识机制之前,我们先来想象一个“拜占庭将军问题”。在黑暗的中世纪末,拜占庭帝国首都君士坦丁堡被奥斯曼帝国多路大军团团围住,覆亡之日近在眼前。但君士坦丁堡太过庞大,因此奥斯曼帝国皇帝默罕默德二世派出数位将军攻打敌人,每一位将军各率领一支军队,他们各自分开,只能通过信使互相联系,来投票达成统一的作战策略,如果他们的作战策略不一致就会战败。而多位将军中存在叛徒,他们会传递虚假信息来干扰行动的一致性。
这样一来,一个“拜占庭将军”问题便诞生了,即如何设计一套方法来让参与者能形成共识。比如,班委选举和选秀节目中,整个投票的过程和方法就是一种共识机制。在区块链中,最重要的就是要让记账的节点能够形成共识,达成一致性的结果。另一个相关概念是“容错机制”,即共识机制中需要包括一系列规则,使得整个系统出现节点故障或者作恶节点时也能正常运转,我们把存在恶意节点的容错称为拜占庭容错机制,不存在恶意节点,只是出现故障的容错称为非拜占庭容错。(www.xing528.com)
在现实中,拜占庭将军问题是美国计算机科学家兰伯特在1982年讨论分布式系统通信一致性(Finality)时提出的相关假设,而兰伯特在提出了问题之后,也在论文中提出了解决该问题的两种解法,包括口头协议和书面协议等。为了在工程上更加实际可用,学术界后来又不断进行探索研究,诞生了PBFT(Practical Byzantine Fault Tolerance),即实用拜占庭共识协议,这便是最早期的共识协议。而后,中本聪在2008年发表的比特币白皮书中引用了亚当·贝克和哈尔·芬尼发明改进的POW工作量证明机制,开启了“中本聪共识”的时代。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。