复制成功

分享至

OKX > 区块链百科 >

区块链的共识机制有什么作用和意义

2022.03.03
区块链是一个历史可追溯、不可篡改,解决多方互信问题的分布式(去中心化)系统。分布式系统必然面临着一致性问题,而解决一致性问题的过程我们称之为共识。

分布式系统的共识达成需要依赖可靠的共识算法,共识算法通常解决的是分布式系统中由哪个节点发起提案,以及其他节点如何就这个提案达成一致的问题。我们根据传统分布式系统与区块链系统间的区别,将共识算法分为可信节点间的共识算法与不可信节点间的共识算法。前者已经被深入研究,并且在现有流行的分布式系统中广泛应用,其中Paxos和Raft及其相应变种算法最为著名。对于后者,虽然也早就被研究,但直到近年区块链技术发展如火如荼,相关共识算法才得到大量应用。而根据应用场景的不同,后者又分为以PoW(Proof of Work)和PoS(Proof of Stake)等算法为代表的适用于公链的共识算法和以PBFT(Practical Byzantine Fault Tolerance)及其变种算法为代表的适用于联盟链或私有链的共识算法。

工作量证明PoW算法是比特币系统采用的算法,该算法于1998年有W.Dai在B-money的设计中提出。以太坊系统当前同样采用PoW算法进行共识,但由于以太坊系统出块更快(约15秒),更容易产生区块,为了避免大量节点白白陪跑,以太坊提出了Uncle块奖励机制。POS算法最早由SunnyKing在2012年8月发布的PPC系统中首先实现,而以太坊系统也一直对PoS抱有好感,计划后续以PoS代替PoW作为其共识机制。PoS及其变种算法可以解决PoW算法一直被诟病的浪费算力问题,但其本身尚未经过足够验证。PBFT算法最早由Miguel Castro和Barbara Liskov在1999年的OSDI99会议上提出,该算法相较原始拜占庭容错算法具有更高的运行效率。假设系统中共有N个节点,那么PBFT算法可以容忍系统中存在F个恶意节点,并且3F+1不大于N。PBFT共识算法虽然随着系统中节点数增多而可以容忍更多的拜占庭节点,但其共识效率确实以极快的速率下降,这也是我们能看到的应用PBFT做共识算法的系统中很少有超过100个节点的原因。无论是PoW算法还是Pos算法,其核心思想都是通过经济激励来鼓励节点对系统的贡献和付出,通过经济惩罚来阻止节点作恶。公有链系统为了鼓励更多节点参与共识,通常会发放代币(token)给对系统运行有贡献的节点。而联盟链或者私链与公有链的不同之处在于,联盟链或者私链的参与节点通常希望从链上获得可信数据,这相对于通过记账来获取激励而言有意义得多,所有他们更有义务和责任去维护系统的稳定运行,并且通常参与节点数较少,PBFT及其变种算法恰好适用于联盟链或者私链的应用场景。

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。本站资讯仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

相关推荐

industry-frontier