共识机制用于解决分布式系统的一致性问题,其核心为在某个协议(共识算法)保障下,在有限的时间内,使得指定操作在分布式网络中是一致的、被承认的、不可篡改的。在区块链系统中,特定的共识算法用于解决去中心化多方互信的问题。
按照不同的故障类型,共识算法可分为两类情况。一类使用数学上及工程学上的公式,确保各个节点之间的数据绝对一致,通常用于解决可信节点间的网络通信故障问题,常用算法包括Paxos、Raft、ZAB等,常见于大数据分布式系统,这些算法不具备对不可信节点的容错性。这类算法也包括用于解决拜占庭将军问题的拜占庭容错算法(BFT)等,该算法允许有一定比例的不可信节点。
另一类共识算法则通过经济利益的博弈,来鼓励对系统的贡献及提高不可信节点的作恶成本。常用算法包括工作量证明(Proof of Work,PoW)、权益证明(Proof of Stake,PoS)等,PoW、PoS算法分别通过提供算力或持有权益来平衡利益博弈。
为适应不同的应用场景,区块链共识机制的研究集中于优化系统的可扩展性、运行效率、容错性等方面。在新兴的区块链方案中,会将各种共识机制结合使用,例如在分层/分片方案中,最上层的主链使用PoW机制以确保全局共识的有效性并用来对抗女巫攻击,而在相对小范围的分片中,使用PoS或者BFT算法来实现更高效率的共识。典型的案例包括未来引入基于校验器管理和约分片方案的以太坊以及Zilliqa等。尽管这些方案尚未落地验证,但他们代表了未来区块链设计的趋势。
领取专属 10元无门槛券
私享最新 技术干货