上QQ阅读APP看书,第一时间看更新
4.3 联盟链的常用共识机制
联盟链更注重隐私、安全和监管,因此会加入更多的管控元素,采用类似于传统的拜占庭家族共识机制。联盟链相对于公有链而言,弱化了对于去中心化的强调,同时由于节点准入制,相当于已经赋予了节点一定的信任。
DPoS(Delegated Proof-of-Stake,股份授权证明)机制里有股票权的人是通过选举产生和更换的,而不是像PoS这样根据币的数量来产生的。它通过不同的策略,不定时地选中一小群节点,由这一小群节点做新区块的创建、验证,签名和互相监督,大幅减少了区块创建和确认所需要消耗的时间和算力成本。DPoS不需要太多的信任,所选的这些委托人不能改变交易的细节,如果节点存在试图作恶、提供的算力不稳定、计算机宕机等行为,公开的社区可以快速将他投票驱逐。
如果说PoW和PoS都是以经济模型为主解决共识问题,那么PBFT (Practical Byzantine Fault Tolerance,实用拜占庭容错算法)就是以算法模型来解决共识,它不存在代币分发机制,能耗很低。过程可以简述为大家先投票选出领导者,领导者记账后,其他人投票通过。在PBFT算法中,可证明只要会出错的拜占庭节点小于系统全部数量的1/3,那么整个系统就可以正常工作。目前的改进算法方向大致包括使用P2P网络、动态调整节点的数量,减少协议使用的消息数量等。
联盟链的共识机制算法的创新也包括了例如DPoS和PBFT的混合,将DPoS的授权机制应用于PBFT中实现动态授权,已有研究证明这样的算法在最佳出块为20秒的时间间隔下,TPS可以达到10000-12000,时延控制在100-200ms之间。正是由于联盟链保留了部分的“中心化”,从而得到了交易速度增快,交易成本大幅降低的回报。