如何认清当前主流的共识算法及背后发展脉络?
读趣百科>科普>金融财经

如何认清当前主流的共识算法及背后发展脉络?

共识算法是近年来分布式系统研究的热点,也是区块链技术的核心要素。如何理解共识算法重要性及评价体系?如何认清当前主流的共识算法及背后发展脉络?接下来共识算法发展的趋势与阻碍又是什么?

本文由本体研究院撰写,作为一个开放性技术研究组织,它持续专注于区块链相关技术的研究和探讨。

原文标题:《共识算法演变史》

稿件来源:链捕手

共识算法及评价体系

共识算法主要是解决分布式系统中多个节点之间对某个状态达成一致性结果的问题。分布式系统都是由多个服务节点共同完成对事务的处理,分布式系统中多个副本对外呈现的数据状态需要保持一致性。

但是由于节点的不可靠性和节点间通讯的不稳定性,甚至节点作恶伪造信息进行恶意响应,节点之间就存在数据状态不一致性的问题。通过共识算法,可以实现将多个不可靠的单独节点组建成一个可靠的分布式系统,实现数据状态的一致性,提高系统的可靠性。

区块链系统本身是一个超大规模的分布式系统,但又与传统的分布式系统存在明显区别。区块链系统建立在去中心化的点对点网络基础之上,在整个系统中没有中央权威,并由共识算法实现在分散的节点间对交易的处理顺序达成一致,这是共识算法在区块链系统中起到的最主要作用。

另外,与企业分布式系统不同,区块链系统中的共识算法还承担着区块链系统中激励模型和治理模型中的部分功能,包括每个区块中对哪些矿工进行激励发放、网络中所有交易手续费的结算和分配、区块链网络共识周期的切换等。

共识算法根据容错能力不同,即在考虑节点故障不响应的情况下,再考虑节点是否会伪造信息进行恶意响应,可以分为 CFT (Crash Fault Tolerance)类和 BFT (Byzantine Fault Tolerance)类共识算法。

CFT 共识算法只保证分布式系统中节点发生宕机错误时整个分布式系统的可靠性,而当系统中节点违反共识协议的时候(比如被黑客攻占,数据被恶意篡改等)将无法保障分布式系统的可靠性,因此 CFT 共识算法目前主要应用在企业内部的封闭式分布式系统中,目前流行的 CFT 共识算法主要有 Paxos 算法及其衍生的 Raft 共识算法。

采用 BFT 共识算法的分布式系统,即使系统中的节点发生了任意类型的错误,只要发生错误的节点少于一定比例,整个系统的可靠性就可以保证。因此,在开放式分布式系统中,比如区块链网络,必须采用 BFT 共识算法。

在区块链网络发展前,BFT 共识算法主要为 PBFT 共识算法,目前部分联盟链采用 PBFT 共识算法。由于公有链的开放性,任意节点都可以随时参与和退出网络并都有作恶的可能,近两年公有链的快速发展也带动了 BFT 共识算法的巨大进步。

另外,因为共识算法都建立在底层的网络模型基础上,所以从网络同步模型的角度来看,共识算法可以分为三种,即同步共识算法,半同步共识算法,和异步共识算法。

同步共识算法要求网络中任一消息能够在已知的限定时间内到达所有的共识节点,因此主要应用在限定规模的网络环境中,大多数联盟链采用同步共识算法。

异步共识算法对于消息在网络中的传播延迟没有任何限制,消息可以在无限长时间后才能发送到其他共识节点,由于 FLP 不可能定理(在网络可靠,存在节点失效,即便只有一个的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。),异步共识算法无法确定性保证共识终局,因此几乎没有高效的全异步共识算法,即使 Bitcoin 的 PoW 算法也是基于同步网络保证一致性,基于异步网络保证可用性。

半同步共识算法在前两者之间做了权衡,要求网络中消息某限定时间后到达所有共识节点的的概率与时间的关系是已知的,目前主流的区块链共识算法都是基于半同步的网络模型,即半同步共识算法。

评价一个区块链共识算法的优劣,可以从以下四个方面进行,即容错性能、终局性性能、扩展性(消息复杂度)以及网络模型性能。

容错性能:指共识算法的容错能力,比如 Raft 只能支持节点故障错误。而在区块链中,特别公有链中,由于节点间存在利益博弈,同时又是一个非中心化的网络状态,其共识算法必须支持节点作恶的容错,所以区块链的共识算法必然是 BFT 算法。

终局性性能:指区块链网络对一个候选区块完成终局一致性所需要的时间,这对于面向用户的 DApp 应用是非常重要的参数。

扩展性:指随着区块链网络节点数目与共识算法性能的相关关系,比如 PBFT 算法随着节点数目增加,完成一轮共识需要在网络中传播的消息数目呈平方比例增加,因此 PBFT 算法的天然特性无法支持大规模网络。

共识算法的网络模型性能对其容错性能和终局性能都有很大的影响。在区块链大规模网络条件下,同步共识算法要求所有节点在规定时间内响应对其他节点的消息,否则将被认为是故障节点,因此受网络波动影响较大,从而进一步导致算法容错性能的降低;而由于 FLP 不可能定理,异步共识算法无法给出确定的终局性性能,所以当前主流区块链共识算法都是基于半同步模型。

当前主流的共识算法

在区块链发展初期,主流区块链网络都是基于 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

Table 1: 主流共识算法比较

从上述的分类过程中,我们可以看出当前区块链共识算法在性能、扩展性、去中心化等方向上的演进过程。

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

最新金融财经科普

以太坊活动指标达到两年来的最高水平

以太坊上的活动水平已经达到两年来的最高水平,上升了一个指标。根据区块链分析公司Glassnode提供的数据,周五活动以太地址的7天移动平均值升至405,014...
展开详情

Square现金应用程序中的比特币收入在第一季度首次超过菲亚特收入

比特币早已在Square的CashApp上刮起了美元的热潮。如同这家上市的金融科技公司周三发布的第一季度财报所述,CashApp在第一季度为其所有其他法定驱动...
展开详情

区块链需要学什么专业?

目前,“区块链”成为一科技领域乃至全当今社会最火的热门词汇。中央政治局第十八次集体学习时明确提出:“把区块链作为核心技术自主创新重要突破口”“加快推动区块链技...
展开详情

比特币交易者在4次尝试突破1万美元失败后接下来关注6-7K美元

在数次尝试攻克10,000美元的尝试失败后,身为支撑,比特币的价格将测试较低的水平。自5月20日以来,比特币(BTC)的价格已下跌近10%,从而使交易者的关注...
展开详情

1060显卡挖矿寿命长吗?一般用什么显卡挖矿比较划算

知道比特币的人都知道可以通过挖矿获得比特币,就需要用到电脑,挖矿效率高低跟电脑显卡寿命有关。常见的1060显卡挖矿寿命长吗?1060显卡挖矿寿命长短,关系到挖...
展开详情

科普:矿机的寿命有多长?

参与挖矿是进入区块链行业、享受行业红利的重要途径之一,而且相比于炒币,挖矿更加稳健,更适合大机构、大资金入场布局。挖矿是件专业化程度较高的事情,很多小白矿工在...
展开详情

央行发行数字货币概念股有哪些?如何看待央行发行数字货币?

资本市场向来是嗅觉最灵敏的一个存在。从去年到今年,央行发行数字货币概念股成为了很多人追逐的对象,整体的表现还不错。然而大多数人对央行发行数字货币概念股有哪些并...
展开详情

以太坊与比特币有何异同之处?

虚拟货币的快速发展是需要借助一定的竞争力才可以完成的,以太坊与比特币就是很好的证明。以太坊是比特币延续出来的第二代主流货币,以太坊与比特币之间有明显的区别,也...
展开详情
热门推荐

2020年比特币发生过几次暴跌?

2021年1月8日,备受大家关注的比特币价格不负众望的站上了4万美元高地,又树立了一座新的里程碑,但遗憾的是很快就跌落到38500多美元。2020比特币暴跌已...
展开详情

数字货币的前景和未来是什么?专家预判

什么是数字货币?数字货币只是数字存在的货币,而不是物理存在的货币。对于许多人来说,首先想到的可能是像比特币这样的加密货币,它是通过使用计算机来解决密码难题而创...
展开详情

比特币“数字黄金”的称号是不是真的没有了?

最近这一个月,想必许多 币圈朋友的心态都崩了,不光币价崩盘,更重要的是,比特币的一大故事“数字黄金”,看上去破灭了。这个月的起伏,超过了绝大多数人的想象,很早...
展开详情

持有14万枚比特币的Mt.Gox交易所推迟清算,会震动加密货币市场吗

加密货币市场的黑天鹅Mt.Gox交易所宣布推迟清算赔偿。原因就在于清偿受托人需要重新确定清偿计划,在这个计划的制定中需要仔细核实一些信息,所以Mt.Gox交易...
展开详情

数字货币挖矿机现在售价如何?未来会如何发展?

熟悉数字货币挖矿的朋友都知道,在挖矿过程中数字货币挖矿机是必不可少的。随着以比特币为代表的挖矿行业的发展,数字货币挖矿机的出现也有七、八年的时间了,如今俨然形...
展开详情