区块链与人工智能:数字经济新时代
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第二章 共识算法

所谓共识,最初源于社会中的一种信任状态。在Edward Shills的社会学解释中,共识来源于三个重要的因素:(1)对于法律、法规、道德规范的普遍接受;(2)对于专注于宣传、应用法律与规则的组织的附庸;(3)相同经验的人基于体验对身份或统一性的一种广泛认可与共享。在这三个因素当中共识的讨论范围都基于所有个体的平等与独立性。Lewis Lipsitz则提出共识来自个体之间对稀缺价值的竞争与互动。以上两位社会学专家对共识的解释事实上也同样适用于计算机科学领域。

而在分布式账本当中,共识机制是一种通过算法来保证网络中的大多数参与方对于某一份特定数据或一项更新账本的交易申请价值的认可。也就是说,共识机制是一种保证参与方节点对于事实具有连贯性认可的规则与程序。

传统计算机科学中的共识机制往往被应用于分布式数据库。一个分布在不同的物理位置的数据库中所有的分布式节点都需要运行着同样的数据,这种系统的节点传输需要被保护好以免它的组件工作失灵,但相对轻微的那种失灵可能没法避免,节点可能会崩溃,或者最糟的情况是它可能会没有规律地运行。随着互联网上恶意软件和攻击越来越普遍,分布式共识的研究人员也研究了拜占庭将军问题(Byzantine Faults)——它的节点可能被怀有恶意的人控制,从而以不可预知的方式运行。这个领域的研究目标一般是为了证明在不同的情况下,这种分布式的共识系统是否始终可以有效地运行。我们可以认为一部分节点是“诚实的”,意思是说它们始终会按规定好的协议运行;其他一些节点是“恶意的”,就是说它们可能会故意破坏协议。

而随着关于比特币及其底层区块链分布式账本技术的认识逐渐被传播,对共识机制进行进一步优化被提上了日程。如何在区块链网络的多方协作中以确保整个价值网络的稳定为前提,并能满足不同方向的性能要求,也成了关系区块链发展的核心问题。本章节就各类现有主流区块链共识机制进行罗列与介绍,如图2.8所示。

图2.8