主页 > imtokenapp专业版下载 > 共识算法的演进史

共识算法的演进史

imtokenapp专业版下载 2023-01-29 07:50:37

比特币算法源代码_比特币共识算法_比特币算法原理详解

点击上方“统一时代”订阅!

unitimes.io

比特币算法原理详解_比特币共识算法_比特币算法源代码

全球视野,独到见解

比特币共识算法_比特币算法原理详解_比特币算法源代码

作者| 本体研究院

来源 | 链捕手(ID:iqklbs)

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

01

比特币算法源代码_比特币算法原理详解_比特币共识算法

共识算法和评估系统

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

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

区块链系统本身是一个非常大规模的分布式系统,但它与传统的分布式系统有着明显的区别。 区块链系统建立在去中心化的点对点网络的基础上。 整个系统没有中央权威,通过共识算法在分散的节点间达成交易处理顺序的一致。 这就是区块链中的共识算法。 系统中最重要的角色。

此外,与企业分布式系统不同的是,区块链系统中的共识算法还承担了区块链系统激励模型和治理模型中的一些功能,包括每个区块中哪些矿工被激励,网络中哪些矿工得到奖励等。 . 所有交易费用的结算和分配,区块链网络共识周期的切换等。

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

CFT共识算法只是在分布式系统中节点宕机出错,以及系统中节点违反共识协议(如被黑客抓取,恶意篡改数据等)时,才保证整个分布式系统的可靠性。 ),将无法保证分布式系统的可靠性。 系统的可靠性,所以CFT共识算法目前主要应用在企业内部封闭的分布式系统中。 目前流行的CFT共识算法主要包括Paxos算法及其派生的Raft共识算法。

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

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

比特币算法源代码_比特币算法原理详解_比特币共识算法

另外,由于共识算法都是基于底层网络模型,从网络同步模型来看,共识算法可以分为三种,即同步共识算法、半同步共识算法和异步共识算法。

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

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

半同步共识算法在前两者之间做了一个折衷,要求消息在网络中经过一定时间后到达所有共识节点的概率和时间之间的关系是已知的,目前主流的区块链共识算法都是基于on semi-synchronous 一种同步网络模型,即半同步共识算法。

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

容错性:指共识算法的容错性。 例如,Raft 只能支持节点故障错误。 在区块链中,尤其是在公链中,由于节点之间存在利益博弈,而且是去中心化的网络状态,其共识算法必须支持节点作恶的容错性,因此区块链的共识算法必须是拜占庭算法。

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

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

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

比特币共识算法_比特币算法源代码_比特币算法原理详解

02

目前主流的共识算法

在区块链发展初期,主流区块链网络都是基于PoW共识算法,包括比特币、以太坊、莱特币、Zcash等,由于PoW中存在挖矿资源的浪费,基于PoS的共识算法研究发展迅速2017年之后,2018年陆续推出各种基于PoS共识算法的公链。

目前主流的共识算法可以分为以下几种:

按开采方式分类:

1)PoW:所有节点通过解决某个计算问题(如哈希问题)参与共识。 包括:比特币、以太币、莱特币

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

基于最终性的分类:

1) GHOST:PoW、以太坊-PoS

比特币算法原理详解_比特币算法源代码_比特币共识算法

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

基于节点的选择方法:

1)所有节点参与:PoW、EthereumPoS、Tendermint

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

比特币共识算法_比特币算法源代码_比特币算法原理详解

表一:主流共识算法对比

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

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

针对假分叉问题,区块链社区随后提出通过DAG扩展PoW共识算法,如PHANTOM、Conflux等,但针对PoW算力的浪费,区块链社区纷纷转向PoS基于共识算法。

比特币共识算法_比特币算法源代码_比特币算法原理详解

以太坊还计划逐步减少 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等,都是混合共识算法。

03

共识算法的发展趋势

总的来说,目前主流的共识算法正在逐步从PoW共识算法转向PoS共识算法,并采用VRF随机选择节点来实现算法的可扩展性。 甚至后续安静版本的以太坊也将基于 PoS。 VRF 在标准链中实现,以随机选择验证者节点。 此外,Avalanche 共识算法还采用随机选择节点的方式来实现区块链共识算法的可扩展性,但目前还没有区块链采用这种共识算法。

随着区块链社区对区块链共识算法的研究,技术界发现互联网规模网络所能达到的性能上限不仅取决于共识算法的性能参数,还取决于网络中消息的完成情况这个规模的。 物理上限,例如传播的时间延迟。 因此,主流区块链的研究团队纷纷在分片技术、状态通道、二层网络等方向投入下一步的区块链网络性能扩展。

【文章版权归原作者所有,其内容和观点不代表Unitimes立场。 转载文章只为传播更有价值的信息。 合作或授权请发邮件至editor@unitimes.media或加微信unitimes2017】

比特币共识算法_比特币算法源代码_比特币算法原理详解