【每天一个web3概念】共识机制的分类

不了解共识机制的人一定有这样的疑问:为什么共识机制这么多?

前面讲过共识机制是为了解决“信任问题”,即让所有人相信一件事情真的发生了。回归到技术上,其实就是让分布式系统达成一致的状态,但这并不是分布式系统的唯一特性。一般来说,分布式系统有几个最重要的特性:一致性,可用性,分区容错性,活性,可扩展性等等。但是根据FLP定理和CAP定理,一个分布式系统是没有办法同时拥有一致性和高可用性的,这意味着所有共识机制的设计都必须做一个权衡。

所以现在的项目基本上都会在共识机制层面进行一些创新,来更好地适配实际需求和应用场景。但是大体上,共识机制的分类是有标准的。

最简单的就是基于参与权限进行分类,需要授权才能参与的共识机制,常常用于私有链和联盟链,比如PBFT;而无需授权人人皆可参与的共识机制则用于公链,比如PoW。

其次可以根据资源类型分类,算力资源如PoW,质押资产如PoS,使用存储空间的如PoC(Proof of Space/Storage)等等,这也是目前公链采用最多的共识机制类型。

当然,也可以根据一致性的强弱进行分类,强一致性如Paxos,Raft,PBFT,非强一致则如PoW,PoS等。

还可以根据我们之前讲的容错类型来分类,比如可以容忍崩溃故障,但不能容忍拜占庭错误的,如Paxos,VR等;也有可以容忍恶意节点和恶意行为的,如PBFT,PoW,PoS等。

最后,还可以按照最终性来分类。决策执行之后就不可逆的机制,以PBFT为代表;决策执行后的某一段时间内可逆,但随着时间越来越久,可逆的可能就越来越小的机制,则以PoW为代表。

共识机制是一门大学问,我们总是听到层出不穷的创新,但是万变不离其宗,只要理解了分布式系统的特性,共识机制其实并不神秘。

#共识机制 #热门话题