区块链是在P2P网络上运行的去中心化分类账。在诸如比特币之类的公共区块链项目中,成千上万的用户正在使用该区块链。我们如何获得这种系统的信任,在私有区块链中也是如此。这是共识机制的来源。共识确保区块链上的参与者可以相互信任并验证下一个区块。共识还确保遵守网络中的规则,同时承认区块链环境中只有一个事实。根据您使用的区块链类型,您需要不同的共识算法,以确保区块链上的最后一块随时反映整个网络的状态。在本文中,我们将大致解释不同的共识算法。工作证明(POW)让我们从比特币和以太坊开始。工作量证明算法要求矿工解决复杂的密码数学难题。因此,这是一个依赖于计算能力的游戏。简而言之,您可以打包并加密块中的所有数据,直到获得有效的哈希值为止。优点:很难找到有效的哈希值,但是很容易控制哈希值是正确的,因此不可能欺骗整个系统。该系统可以承载大量节点。缺点:它消耗大量能量,并且对环境不是很友好。如果某人可以控制51%的计算能力,就有被攻击的风险。权益证明(POS)以太坊正在朝着PoS共识机制转变。下一个区块的矿工是根据随机参数确定的,例如他们拥有的令牌数量,他们拥有此令牌的时间等等。同时,还有其他机制,例如存款证明或燃烧证明等。实际上,这很简单。如果节点X的令牌为1,节点Y的令牌为2,则节点Y将有两次机会验证块。优点:比工作量证明更节能。缺点:更多安全性问题?如果您同时在不同的连锁店工作,则不会受到任何处罚。这样做很难保证转移的真实性。经过时间证明(PoET)经过时间证明是Hyperledger Sawtooth Lake项目中使用的共识。每个参与者都需要等待时间以确保安全组装。等待时间最短的参与者将被选为挖掘区块,等待时间过后,该区块将被开采。优点:挖一个街区的人总是会改变,而同一个人不会每次都选择下一个街区。缺点:安全组装是一项复杂的技术,比工作量证明更容易发生欺诈。还有一个集中化的趋势,因为我们必须使用第三方信托机构来确保该程序集确实安全。简化的拜占庭容错算法(SBFT)在此算法中,块验证器是众所周知的机构。例如,它可以是整个业务网络中的主管。该块验证器创建并提出新的块传输。在SBFT共识中,一定数量的节点必须接受此块,这当然取决于错误节点的数量。在这样的系统中,至少2f + 1个节点必须接受商用网络中的新块,并且f是错误节点的数量。例如,假设系统中有30位参与者,其中包括5个错误节点。作为一个新的待验证块,有11(2×5 + 1)个节点。该错误可能是恶意的,也可能是无效的节点。优点:比工作量证明更快,并且可伸缩性更好。缺点:有集中的趋势。验证者建议下一个程序段。授权证明(PoA)适用于私有链网络,不需要分布式信任系统。原理相对简单:在满足某些条件(例如身份认证)后,网络中的某些人会被验证为验证者。这些验证者负责维护区块链数据。优点:非常适合于私人连锁店,速度非常快。劣势:牺牲信任。结论我们对区块链世界中的共识机制进行了概述。本文仅列出了一些可能性,当然还有其他可能的共识机制。通常,我们可以将这些共识分为三类:-标准工作负载共识-基于共识的权限投票(PoA,SBFT)-基于共识的权限下注(PoET),该共识为区块选择链的实现取决于网络和数据的类型。投注类型可能更适合大型每月网络。投票类型可能更适合小型网络,同时将延迟降到最低。