共识机制,区块链的价值与灵魂
怎么才能在区块链分布式系统中更高效地达成共识,保障区块链系统的正常运行?共识机制在其中起到了决定性的作用。
作为区块链技术的核心元素,共识机制的设计决定了整个系统的可扩展性、安全性和去中心化的程度,也决定了系统能否承载更多、更复杂的应用,以及是否能适应更广泛的应用范围。
比特币的成功吸引了大量的关注,其共识机制也引来了众多模仿者。一些人试图对其进行完善,还有另一些人希望对它进行全面革新。
POW工作量证明
比特币使用的是POW工作量证明机制,其后来者以太坊、莱特币也采用同样的共识机制。POW需要进行大量的计算,以算出系统给出的数学难题。具体来说就是,计算出新区块的hash值,并且这个hash值要小于某个数,而且计算难度每过一段时间就会调整,以应对全网算力的变化,用来平衡生成一个区块所需的时间。
尽管POW是非常公平和安全的共识机制,但它巨量的计算会消耗大量的能源,并造成环境污染。国际能源署 2016 年的数据显示,加密货币挖矿每年消耗的能源相当于希腊、以色列、智利、捷克等国的能源消耗水平。此外,加密货币挖矿行业每年产生的二氧化碳排放量,保守估计也要超过纽约到洛杉矶 30 多万次航班飞行的二氧化碳排放量。
POS权益证明
POS权益证明机制解决了POW工作量证明机制能源浪费的问题,通过持有Token的数量和时长来决定获得记账权的机率。相比POW,POS避免了挖矿造成大量的资源浪费,缩短了各个节点之间达成共识的时间,网络环境好的话可实现毫秒级,对节点性能要求低。
但POS的缺点同样明显,持有Token多的节点更有机会获得记账权,这将导致“马太效应”,富者越富,破坏了区块链的去中心化。
DPOS委托权益证明
DPOS委托权益证明与POS原理相同,其主要区别在于,DPOS的Token持有者可以投票选举代理人作为超级节点,负责在网络上生产区块并维护共识规则。如果这些节点未能履行职责,将投票选出新的节点。
DPOS算法由Dan Larimer于2014年提出,并被EOS、Tron、Bitshares等项目采用,其每秒处理的交易量(TPS)比POS更高,能源消耗较少,但由于记账权集中在一小部分节点手中,因此它也倾向于中心化。
POA权威证明
POA不是一种独立的共识算法,而是POW和POS混合的算法,目前有唯链、欧链等采用了POA共识机制。
POA节点之间无需进行通信即可达成共识,因此效率极高。并且它也能很好地对抗算力攻击,安全性较高。但是POA需要一个集中的权威节点来验证身份,这就意味着它会损害区块链的去中心化,这也是在去中心化和提高效率之间的妥协。
PBFT拜占庭容错算法
PBFT模型是建立在工作量证明基础之上的另一种共识机制,这个概念本身比POW早了十年。它在20世纪90年代后期被提出,旨在抵御恶意节点破坏网络的风险,使用PBFT的风险很低(没有像POW的矿池,没有POS这样的主要利益相关者的相互勾结),并且信任与资产所有权完全脱钩。
PBFT系统的工作原理是,恶意节点的最大数量不得大于或等于系统中所有节点的三分之一。随着节点数量的增加,系统变得更加安全。PBFT的变体目前被Hyperledger,Stellar和Ripple等采用。
上述几例只是所有共识机制中常见的一部分,它们经过时间的验证,已经被各种区块链项目采用,但在某种程度上共识机制的发展都是为了解决POW和POS的缺陷,也就是为了在区块链“不可能三角”——去中心化、可扩展性、安全性之间达到平衡。毕竟,区块链从根本上提供的是去信任的系统,安全和权力下放是一开始建立信任的关键,可扩展性则是系统可用性的决定因素。