主流共识算法

主流共识算法

在区块链发展初期,主流区块链网络都是基于PoW共识算法,包括Bitcoin,Ethereum,Litecoin,Zcash等。由于PoW存在挖矿的资源浪费问题,2017年后基于PoS的共识算法研究得到了迅猛的发展,并在2018年各种基于PoS共识算法的公有链都逐步上线。

对于当前主流共识算法可以采用如下几种方式分类:

基于挖矿方式分类:

1)PoW : 所有节点通过解决某个计算难题(例如哈希难题)参与共识。包括:Bitcoin,Ethereum, Litecoin

2)PoS:所有节点通过质押代币的方式参与共识。包括:Ethereum-PoS,Tendermint,Algorand,EOS DPoS,DFINITY,VBFT

基于终局性分类:

1)GHOST:PoW,Ethereum-PoS

2)BFT:Tendermint,EOS DPoS,Algorand,DFINITY,VBFT

基于节点选择方式:

1)所有节点参与:PoW,Ethereum PoS,Tendermint

2)随机选择部分节点参与:Algorand,Dfinity,VBFT

衍化过程

在Bitcoin创建了区块链技术时,创建了PoW共识算法,通过计算哈希难题和最长链规则,实现去中心化的共识算法。随着Bitcoin网络规模的增大,后续区块在网络中传播延迟的增加,基于最长链规则造成了大量伪分叉,极大的浪费了网络中的算力和PoW共识算法的性能。

针对于伪分叉的问题,区块链社区后续提出了通过DAG方式扩展PoW共识算法,比如PHANTOM,Conflux等。但是针对于PoW的算力浪费的问题,区块链社区后续更多转向了基于PoS的共识算法。

Ethereum也计划逐渐减少PoW激励,直至最终完全取消对PoW的共识激励,完成到PoS共识算法的切换。同时,也有大多数新兴区块链平台都采用了PoS的共识方式,其中最著名为EOS的DPoS共识算法。

与此同时,随着区块链应用的增加,区块链共识算法的扩展性问题也日益凸显。图灵奖获得者Micali教授提出了Algorand算法,提出基于VRF随机选择部分节点参与共识的方式,通过BFT的方式极大降低了共识算法的消息复杂度,在保证去中心化安全性的同时实现共识算法的可扩展性。

在此基础之上,VBFT等共识算法增加了基于PoS治理机制,并基于此解决了随机节点选择的抽样陷阱问题,在保证算法扩展性的同时实现优秀的终局性性能。

混合共识算法也值得介绍,由于单一共识算法由于其本身具有的局限性,例如PoW共识速度偏慢等,区块链研究者尝试将两种或者多种共识算法融合起来,取长补短,来达到更好的共识特性。一般来说,混合共识有PoW+PoS,PoW+BFT以及PoS+BFT等种类。可以看到新一代的共识算法,比如Algorand,DFINITY, BUMO的BU Firework以及Ontology的VBFT,都属于混合共识算法。

发展方向

总体来看,目前主流共识算法逐渐由PoW转向PoS共识算法,并且采用VRF随机选择节点的方式实现算法的扩展性,即使Ethereum后续的宁静版本,也将是基于PoS的共识算法,并在其信标链中实现VRF随机选择验证者节点。另外,Avalanche共识算法也是采用随机选择节点的方式实现区块链共识算法的扩展性,不过目前还没有上线的区块链采用此共识算法。

随着区块链社区对区块链共识算法的研究,技术社区已经发现在Internet规模的网络中可达到的性能上限不仅取决于共识算法的性能参数,更取决于在此规模的网络中完成消息传播的时间延迟等物理上限。因此,主流区块链的研究团队都将下一步区块链网络性能扩展方向投向了分片技术、状态通道和二层网络等方向。