4.2 公有链的常用共识机制
就目前而言,公有链里的共识机制设计主要围绕去中心化和增强激励,目前的许多新型区块链体系,支持可插拔的共识机制模块,可以根据应用场景和需求,切换使用不同的共识机制。
保持主链的“唯一性”,对公有链来说至关重要,因为这是解决“双重支付”问题的关键:为了避免双重支付的出现,就应当获悉所有历史交易信息,以确保这笔交易与此前的历史不发生冲突。如何在双方信息不对称、不确定的环境下,使得交易仍可顺利进行,这就是“拜占庭将军问题”。
比特币的PoW(Proof of Work,工作量证明)机制通过以下途径来解决拜占庭将军问题:
● 维持周期循环,保证节点步调一致:调整难度来保证网络一直需要花费10分钟找到一个数学难题的解,并产生一个新区块。在这10分钟内,网络上的参与者发送交易信息并完成交易,最后才会广播区块信息,这样就杜绝了节点无限制、无规律地发送命令的状态。
● 通过算力竞赛,确保新区块由单个节点生成:比特币通过时间戳和电子签名,确保在某一个时间段内只有一个(或少数几个,这时属于分叉现象)节点可挖出新区块。
● 通过区块链,使用一个共同账本:比特币网络中的各个节点,在每个循环周期内是信息同步的。
事实上,无论采取什么样的方式,只要保证时间统一、步调一致、单点广播、一个链条就能解决加密货币这种分布式系统的拜占庭将军问题。
PoS作为另一种共识机制,矿工掌握的加密货币数量占比等于其挖出新区块的概率。这会导致首富账户的权力更大,有可能支配记账权,也会造成权益越来越中心化,但是PoS确实大大减少了挖矿的能源成本。长远来看,可能会有更多的币种向PoS方向发展。
除了以上两种比较常见的基本的主流共识机制,目前的公有链共识机制的创新点在于两者之间的混合,从而在保留去中心化特征的同时提高数据处理的效率。例如以Decred为代表的PoW/PoS混合共识:挖矿的过程和比特币类似,也需要完成一定量的工作量证明,但是在达成共识的环节有所区别,不同于比特币需要全网节点来验证区块,最终以最长的链为主链,混合机制引入PoS投票来决定刚挖出的区块是否有效,大大提高了验证的速度。除此以外还有以Hcash为代表的PoW/PoS混合共识,结合双层链结构。将PoW难度分成两级,分别发布在两条链上,使得PoW矿工和PoS矿工都能参与系统共识并发挥作用。