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

2022-03-03 00:00:00 10167 0
管理员

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


分布式系统的共识达成需要依赖可靠的共识算法,共识算法通常解决的是分布式系统中由哪个节点发起提案,以及其他节点如何就这个提案达成一致的问题。我们根据传统分布式系统与区块链系统间的区别,将共识算法分为可信节点间的共识算法与不可信节点间的共识算法。前者已经被深入研究,并且在现有流行的分布式系统中广泛应用,其中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及其变种算法恰好适用于联盟链或者私链的应用场景。

免责声明:以上内容(如有图片或视频亦包括在内)均为平台用户上传并发布,本平台仅提供信息存储服务,对本页面内容所引致的错误、不确或遗漏,概不负任何法律责任,相关信息仅供参考。

本站尊重他人的知识产权、名誉权等法律法规所规定的合法权益!如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到qklwk88@163.com,本站相关工作人员将会进行核查处理回复

分享
海报
10167
上一篇:区块高度高代表什么?区块高度的作用是什么? 下一篇:什么是链上扩容和链下扩容?
请文明发言哦~

忘记密码?

图形验证码