主流共识算法

主流共识算法

在区块链发展初期,主流区块链网络都是基于 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 规模的网络中可达到的性能上限不仅取决于共识算法的性能参数,更取决于在此规模的网络中完成消息传播的时间延迟等物理上限。因此,主流区块链的研究团队都将下一步区块链网络性能扩展方向投向了分片技术、状态通道和二层网络等方向。