区块链共识机制研究与分析

区块链共识机制研究与分析_第1张图片

如何在分布式系统中高效地达成共识是分布式计算领域的重要研究问题,正如社会系统中“民主"和”集中"的对立关系相似,决策权越分散的系统达成共识的效率越低,但系统稳定性和满意度越高;而决策权越集中的系统更易达成共识,但同时更易出现专制和独裁。区块链技术的核心优势之一,就是能够在决策权高度分散的去中心化系统中,使得各节点高效地针对区块数据的有效性和一致性达成共识。

由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此区块链系统需要设计一种机制,对在差不多时间内发生的事务的先后顺序进行共识,这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。

各种共识机制技术特点比较

(1)POW

POW共识机制是具有重要意义的创新,其近乎完美地整合了比特币系统的货币发行、交易支付和验证等功能,并通过算力竞争保障系统的安全性和去中心性。但POW共识机制同时存在着显著的缺陷,其强大算力造成的资源浪费(如电力)历来为研究者所诟病,而且长达10分钟的交易确认时间使其相对不适合小额交易的商业应用。

POW算法的优点包括完全去中心化,节点自由进出,算法简单,容易实现,节点间无需交换额外的信息即可达成共识。安全性高,破坏系统需要投入极大的成本,允许全网50%节点出错。

POW算法的缺点也同样多,首先是需要大量算力,目前bitcoin已经吸引全球大部分的算力,其它再用POW共识机制的区块链应用很难获得相同的算力来保障自身的安全,新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击。挖矿造成大量的资源浪费,依赖机器进行数学运算来获取记账权,资源消耗相比其它共识机制高。共识达成的周期较长,不适合商业应用。可监管性弱,存在安全性风险,同时超大矿池的出现,也使得算力集中化问题凸显,即“51%攻击”风险。性能效率比较低,每次达成共识需要全网共同参与运算。无法达成最终一致性,容易产生分叉,需要等待多个确认。

(2)POS

POS作为POW的一种升级共识机制,它主要解决了POW工作量计算浪费的问题。当前POS已有很多不同的变种,但基本还是根据每个节点所占有代币的数量和时间(即权益)来决定其挖矿的难度,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度。

相比POW,POS算法的优点包括,避免了挖矿造成大量的资源浪费,缩短了各个节点之间达成共识的时间,网络环境好的话可实现毫秒级,对节点性能要求低。

缺点是仍需要挖矿,并且POS会使得“富者更富”,有可能支配记账权,拥有权益的参与者也未必希望参与记账。无法达成最终一致性,容易产生分叉,需要等待多个确认。POS依然是基于哈希运算竞争获取记账权的方式,可监管性弱,容错性和POW相同。

(3)DPOS

DPOS与POS的原理相同,主要区别在于节点选举若干代理人,由代理人轮流验证和记账,其合规监管、性能、资源消耗和容错性与POS相似。

DPOS相比POS,它的优点是,能大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。缺点是整个共识机制还是依赖于代币,而很多商业应用是不需要代币存在的。

(4)RPCA

瑞波共识协议所创建的区块链是由所有参与者中部分被称作为“网关”的受信任的节点所维护,同时网关节点之间存在信任关系,而其余的一般参与者则被称为“用户”。用户只能产生交易,并不参与创建区块和记录交易的工作。

瑞波共识机制的优点包括,确认交易可以在很短的时间内完成验证,每3秒左右就能产生一个区块,任何时候都不会产生硬分叉。

缺点包括对网关节点的可靠性要求很高,网关节点的可靠程度将影响整个交易网络的正常运行。由于存在网关节点,不能算做是完全的“去中心化”,新加入节点要取得与其他节点的共识所需时间也比较长。

(5)PAXOS

PAXOS属于传统的分布式一致性算法,是一种基于选举领导者的共识机制,PAXOS能保证在超过50%的正常节点存在时,系统能达成共识。

PAXOS共识机制的优点包括允许强监管节点参与,性能高,资源消耗低。缺点是仅用于具有较高容错性的分布式系统中。

(6)PBFT

PBFT解决了原始拜占庭容错算法效率不高的问题,使得拜占庭容错算法在实际系统应用中变得可行,可容错节点数为N/3-1。与PAXOS类似,它也是一种采用许可投票、少数服从多数来选举领导者进行记账的共识机制,但该共识机制允许拜占庭容错。

PBFT共识机制的优点包括,效率高,秒级出块,可配置为1秒到几秒出块,满足交易短时间内响应的需求。允许强监管节点参与,具备权限分级能力,相比PAXOS,性能更高,耗能更低。安全性高,该算法每轮记账都会由全网节点共同选举领导者,允许33%的节点作恶,容错性为33%。高一致性、高可用性,抗欺诈能力较强,是联盟链里较为实用的一种共识算法。

缺点包括当有1/3或以上记账人停止工作后,系统将无法提供服务。当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据。

(7)RAFT

RAFT更注重协议的可理解性和落地性,其特点是任何时刻最多只有一个合法Leader,可容错节点数为N/2-1。Raft算法是PAXOS算法的一个简化实现,因此其合规监管、性能、资源消耗和容错性与PAXOS相似。

PBFT共识机制的优点包括,相比PAXOS和PBFT算法,性能更高,耗能更低,秒级出块,可以配置为1秒或多秒出块。高一致性,候选区块超过半数赞成票才提交到区块链中。高可用性,如果超时没有收集超过半数的回复票,则重新发起选举,保证系统的容错恢复能力。支持1/2节点容错,整个系统中少于1/2数量的节点出现故障,均不影响共识进行。数据安全性高,在选举过程和区块同步过程中严格校验签名。

缺点是与PBFT共识的拜占庭容错特性对比,RAFT共识并不严格保证抗欺诈性,适用于互信程度较高的联盟链。

(8)POOL

POLL(验证池)共识机制是基于传统的分布式一致性技术(PBFT、PAXOS、RAFT等),加上数据验证机制。

它的优点是不需要代币也可以工作,在成熟的分布式一致性算法基础上,实现秒级共识验证;缺点是性能会随着节点数的增加而变差,并且去中心化程度不高,更适合多方参与的多中心商业模式。

基于以上分析,这里我们作一张表,将上面这些共识算法从各角度作一个比较(见图1)。

区块链共识机制研究与分析_第2张图片
图1 共识算法比较

共识机制应用场景分析

共识机制不但是计算机之间的算法和数据共识,也是合作伙伴之间进行协作的共识,共识机制使区块链的参与者通过约定的方式进行共同记账,确保合作者之间的记账正确性、一致性、持续性,避免少数出现故障的节点影响网络运行,并防御少数故意作恶者的破坏。在不同的应用场景下,需要使用不同的共识机制。现实生活中常见以下两种应用场景:需要加密数字货币的公有链和不需要货币体系的私有链和联盟链。

(1)需要加密数字货币的公有链

公有链如比特币、以太坊等使用的共识算法通常为工作量证明或权益证明等,可以根据投入权益和记账的行为,对记账者制定奖励和惩罚制度。公有链上的共识算法一般确认时间较长,或需要较多的算力投入。

POW作为无授权协议,最适合公有链系统,虽然网络维护费用高但却是完全去中心化系统安全运行的保障。POS作为需要授权但授权程度较低的共识机制,在需要许可的、公共的共享系统中更有发挥空间,而DPOS则是需要许可的、私有的共享系统的较好选择,因为委托人群体的更值得信任,保障系统安全运转无需较大花费。

(2)不需要货币体系的私有链和联盟链

而对于不需要货币体系的私有链或者联盟链而言,需要有绝对信任的节点,以及高效的需求,因此对于这样的区块链,传统的一致性算法成为首选,如RPCA、PAXOS、PBFT、RAFT、POOL。

私有链和联盟链共识机制的设计目标和公有链有所不同,系统不需要根据记账的计算量对记账者进行经济奖励,而是鼓励参与者在共同维护区块链、促进生态系统发展、推进节点合作的过程中获得价值或收益。在此过程中产生的纠纷或非法行为,将采用监管审计和法律仲裁结合的方式解决。这样共识机制的实现符合私有链或联盟链场景需求,可避免算力浪费、防分叉和提升运行稳定性。

私有链和联盟链的共识机制在节点总数不多、网络规模不太大时,可以提供较高的交易并发处理能力。但随着节点数量增多,比如达到几百个共识节点的规模时,由于需要共识节点之间交换较多的信息,会出现明显的性能下降。所以一般会通过协商,在保证公平公开的前提下,控制参与者共识的节点数量,以保证共识算法的效率。

共识机制选择标准

区块链上采用不同的共识机制,在满足区块链数据一致性和有效性的同时会对系统整体性能产生不同影响。综合考虑各个共识机制的特点,可以从以下五个维度作为对共识机制的选择标准。

(1)安全性

指共识机制防攻击、防欺诈的能力,即是否可以防止双重支付(即双花)、自私挖矿等攻击,是否有良好的容错能力。以金融交易为驱动的区块链系统在实现一致性的过程中,最主要的安全问题就是如何防止和检测双重支付行为。另外,自私挖矿通过采用适当的策略发布自己产生的区块,可以获得更高的相对收益,也是一种威胁比特币系统安全性和公平性的攻击方法。

(2)扩展性

指区块链是否支持网络节点扩展,扩展性是区块链设计要考虑的关键因素之一。根据对象不同,扩展性又分为系统成员数量的增加和待确认交易数量的增加两部分。扩展性主要考虑当系统成员数量、待确认交易数量增加时,随之带来的系统负载和网络通信量的变化。

(3)性能效率

指区块链交易达成共识被确认的效率。即从交易达成共识被记录在区块链中至被最终确认的时间延迟,也可以理解为系统每秒可处理确认的交易数量。与传统第三方支持的交易平台不同,区块链技术通过共识机制达成一致,因此其性能效率问题一直是研究的关注点。比特币系统每秒最多处理7笔交易,远不能支持很多应用场景下的业务量。

(4)资源消耗

指在达成共识的过程中,系统所要耗费的计算资源大小,包括共识过程中耗费的CPU、网络输入输出、存储等计算机资源。区块链上的共识机制借助计算资源或者网络通信资源达成共识,以比特币系统为例,基于工作量证明机制的共识需要消耗大量计算资源进行挖矿来提供信任证明完成共识。

(5)可监管性

指是否支持超级权限节点对全网节点、数据进行监管。区块链的匿名性与弱中心化的架构,与现有的监管体系存在某种程度的天然冲突。所以,比特币才会被用于暗网黑市交易、跨国境洗钱等场景。未来,区块链技术最终必然演化为“监管融入技术”的模式,区块链的难以篡改、共享账本、分布式的特性,更易于监管接入,获得更加全面实时的监管数据。让监管机构本身也参与到技术中去,通过技术本身实现对技术的监管,将最终化解区块链与监管的冲突。

*  *  *

共识机制作为区块链技术中至关重要的一个组成部分,备受学术界和企业界关注。良好的共识机制有益于区块链技术在理论和实践中的推广。然而,现有的可用于区块链技术的共识机制都不尽完善,对于区块链技术中的共识机制选择,可以从安全性、扩展性、性能效率、资源消耗和可监管性来评估。未来创新之处主要在于降低共识机制的复杂度,资源消耗大的共识机制市场占有率会逐步减小,而那些不消耗能源的共识算法会进一步发展,这是一种长期的发展趋势。

共识机制永远需要在效率与安全之间达成最佳平衡,在比特币应用中采用了完全去中心化的共识机制,而在联盟链和私有链中,我们也看到去中心化不是那么完全的共识机制,相信基于区块链技术演化和发展,会有更多的技术和机制进入到我们的视野和应用场景中,区块链在比特币中的应用为我们打开了一扇通向未来数字货币的大门,而从数字货币到数字金融最终达到数字社会之路仍然任重道远,共识机制需要不断完善和创新。

来源:《信息通信技术与政策》

你可能感兴趣的:(区块链共识机制研究与分析)