区块链常见的共识机制

in #blockchain7 years ago

在公元1000年,拜占庭帝国派10支军队攻打一个强敌,将敌人的城市包围。由于10支军队分散在城市的四周,相互之间只能依靠通信来协商是进攻还是撤退。敌人实力强大,只有6支以上军队同时进攻时,拜占庭帝国才能获胜。现在困扰将军们的问题是:如果10个将军中有叛徒,如何保证谎叛徒传递的假信号不影响整体决策,保证同时进攻的军队大于6支?

      这就是著名的拜占庭将军难题。如果我们把这个问题映射到区块链中,拜占庭将军相当于区块链中千千万万个的分布式节点,若系统中某些节点发送错误的信息,如何保证区块数据有效性不受影响?

      此时我们需要共识机制来保证整个系统能有效运行,各个节点诚实记账。区块链中的共识机制有很多种,常见的是工作量证明共识机制(Proof of Work,简写为PoW),权益证明共识机制(Proof of Stake,简写为PoS)和股份授权证明共识机制(Delegated Proof of Stake,简写为DPoS)。

1、工作量证明共识(PoW)

工作量证明共识(PoW):通过评估你的工作量来决定你获得记账权的机率,工作量越大,就越有可能获得记账机会。比特币就是PoW的经典应用。

6c2cb9bea4e5ef8584bbf7b346200f0d.jpg
优点:算法简单,容易实现;节点间无需交换额外的信息即可达成共识;破坏系统需要投入极大的成本,安全可靠;完全分布式,节点自由进出。
缺点:挖矿造成了大量的能源浪费;区块的确认时间难以缩短,共识达成周期长;容易产生分叉。

2、权益证明共识(PoS)

     权益证明共识(PoS):通过权益持有量的多少和持有时间的长短,来评估能否获得记账权。简单来讲就是,你持有的代币越多,持有时间越长,你获得记账权的可能性越大。最早采用PoS的是未来币(NXT)。

4e207973367cf92b52e7e41b7e4b0397.jpg

优点:一定程度上减少了数学运算带来的资源消耗,性能得到了相应的提升。
缺点:拥有权益的参与者未必希望参与记账;实现较为复杂;中间步骤较多,容易产生安全漏洞。

3、股份授权证明共识(DPoS)

   股份授权证明共识(DPoS):DPos和PoS原理相同,它是PoS的升级版,最早出现于比特股(BTS)社区,比特股将代币持有者称为股东,股东选出代表轮流来记账和验证,就像我们选人大代表代替发言一样,被推选出的代理节点按照时间表轮流获得记账权。EOS也是采用的DPoS。

0b240f5d20152b3dd262afae4081bb48.jpg

优点:大幅缩小参与验证和记账的节点数量,缩短了达到共识的时间,可以达到秒级的共识验证。
缺点:实现较为复杂;对于坏节点的处理存在诸多困难,社区选举不能及时有效的阻止一些破坏节点的出现,给网络造成安全隐患。

      区块链中除了上面常见的三种共识机制,还有投注共识、 瑞波共识机制(Ripple Consensus)、Pool验证池、实用拜占庭容错、 授权拜占庭容错、Paxos算法等等。没有任何一种共识机制是完美的,更没有任何一种共识机制可以解决所有问题,适用于所有场景。区块链现在处于蓬勃的发展期,相信在过几年技术越来越成熟之后,会有更先进的共识机制。