区块链的几种共识算法简介

  区块链是一种在对等网络上运行的分散式分类账,对于像比特币这样的公共区块链,数千甚至数百万的匿名用户都参与了这个区块链。我们如何在这样的系统或私有区块链中获得信任?这也就是需要达成共识的地方,共识确保参与者相互信任以及下一个区块的有效性。达成共识可确保遵循网络规则,并且区块链环境中只有一个事实

  不同区块链类型,就有不同的一致性算法,从而确保区块链中的最后一个区块反映每个时刻的世界状态。在本文中,我们将简要探讨不同的共识算法。

工作证明

  让我们从比特币和以太坊的区块链开始。工作证明算法要求矿工解决涉及密码学的复杂数学问题。这是一个计算能力发挥重要作用的博彩比赛。基本上,需要获取块的数据并使用计数器对其进行加密,直到计算获得有效的哈希值。

优点:很难找到有效的哈希,但很容易控制哈希的有效性,这使得欺骗系统变得不可能,在有大量节点情况下可以很好地扩展。

缺点:耗费能源,时间长,一般需要10分钟左右,如果一方控制51%的计算能力,则易受攻击。

 

股权证明

  以太坊正朝着利益共识的方向发展,寻找下一个区块ID的矿工是根据随机参数的各种组合来选择的,例如他们已经拥有的通证Token数量,或者持有通证的时间......这种算法有不同的实例,如存款证明或燃烧证明(proof of burn,PoB) 。非常简单地说,如果节点X具有1个通证并且节点Y具有2个通证,则节点Y有两倍的可能性实现调用并验证块。

优点:工作证明更节能

缺点:更多安全问题?如果同时在不同的链中进行也不会引来什么重罚,在尝试创建并保持单一事实方面可能会产生漏洞。因为没有工作证明那样事务串行化,但是吞吐量会提供。

 

消逝时间证明(PoET)

  消失时间证明是Hyperledger' Sawtooth项目中使用的共识。每个参与者都要求从安全区域请求一个等待时间参数,具有最短等待时间的参与者被选为领导者,然后等待一段它被赋予的时间以后,可以提交一个块。

优点:领导者一直在变化。

缺点:安全区是一项复杂的技术,可能比工作证明更容易作弊。有集中化的趋势,因为我们必须使用第三方信任的证书颁发机构来确保安全。

 

简化的拜占庭容错(SBFT)

  在该算法中,块的验证器是已知实体,例如,它可能是商业网络中的监管者。该验证器创建并提交新的交易块,在SBFT共识中,满足一定数量的节点接受该块就视同达成共识,具体取决于故障节点的数量。

  具体数量算法是:至少2f + 1个节点必须接受业务网络中的新块,其中f是故障节点的数量。

  例如,当我们采用一个有30个参与者的系统,网络中有5个故障节点。对于要验证的新块,11(2 * 5 + 1)个节点必须接受该块;如果故障节点的数量达到10,则21(2 * 10 + 1)个节点必须就新块达成一致。

  错误意思代表恶意或无功能的节点。

优点:比工作证明更快,可扩展性更好。
缺点:集中化的趋势(类似Paxos的集中化共识算法)。一个验证器提交下一个块。

 

授权证明(PoA)

  适用于不需要分发信任的专用网络,这个概念相对简单:网络中的某些人在满足某些条件后被识别为验证者,例如身份检查。这些验证器负责维护区块链的数据。

优点:非常适合私人网络。使它非常快。
缺点:牺牲信任。

 

结论

  以上是对区块链世界中使用的一些共识算法的非常快速的概述。总的来说,我们可以区分三种类型的共识:

  • 标准工作证明共识
  • 基于投票许可的共识(PoA,SBFT)
  • 基于彩票许可的共识(PoET)

在区块链实现中选择哪种共识取决于网络类型和处理的数据。

彩票类型更适合大型网络;投票类型更适合较小的网络,并将延迟降至最低。

区块链专题