2022-05-26 01:06:49
拜占庭容错共识算法介绍
拜占庭容错(Byzantine Fault Tolerance, BFT)共识算法是由拜占庭将军问题衍生出来的共识算法。拜占庭将军问题是一个假想问题,由Leslie Lamport在20世纪80年代提出,旨在解决在有叛徒存在的非信任环境中,如何使忠诚的将军们达成一致行动计划的问题。在分布式系统中,特别是在区块链网络环境中,拜占庭容错共识算法用于确保正常节点间对网络状态的共识,即使存在拜占庭错误节点(即故障或破坏者的服务器)。
拜占庭容错共识算法的版本分类
拜占庭容错共识算法主要有三种版本,分别是实用拜占庭容错(PBFT)、联邦拜占庭协议(FBA)和授权拜占庭容错算法(dBFT)。
实用拜占庭容错(PBFT)
优点:高速、可扩展。
缺点:通常用于私有网络和许可网络。
采用者:Hyperledger Fabric、Ripple。
介绍:PBFT是首个解决拜占庭将军问题的方案,已被Hyperledger Fabric采用。它使用了较少(少于20个,之后会稍有增加)的预选定节点,因此运行非常高效。PBFT允许33%的节点作恶,容错率为33%,即假设区块链上总的节点数是3f+1个,那么网络中可以容忍最多f个节点出现拜占庭错误而不影响正确的共识。Ripple的共识算法中,验证者是Ripple基金会预先选定的,因此算法效率比PoW等匿名共识算法要高,交易确认时间只需几秒钟。
联邦拜占庭协议(FBA)
优点:高吞吐量、低交易开销和网络扩展性。
采用者:Stellar。
介绍:FBA的通用理念是每个拜占庭将军负责自身的链,消息一旦到来,通过排序建立事实。在Stellar中,任何人都可以成为验证者,用户可以选择信任哪个验证者。恒星共识协议(SCP)是基于FBA的,它提供了一种不依赖闭合系统实现准确记录金融交易而达成共识的方法。SCP具备去中心控制、低延迟、灵活信任机制和渐进安全等属性。
授权拜占庭容错算法(dBFT)
优点:快速、可扩展。
缺点:可能存在多个根链的竞争。
采用者:Neo。
介绍:dBFT是一种支持通过代理投票实现大规模参与共识的拜占庭容错共识算法。在Neo中,令牌持有者可以通过投票选取其支持的记账节点(bookkeeper)。选定的记账节点组采用BFT算法达成共识,并生成新区块。dBFT为具有n个共识节点的系统提供f=n?1/3的容错能力。Neo的dBFT机制生成一个区块需15到20秒钟,交易吞吐量约为1000 TPS,具有达到一万TPS的潜力。dBFT中加入了数字身份技术,有利于实现合规金融资产在Neo网络中的注册。
总结
拜占庭容错共识算法是解决分布式系统中拜占庭将军问题的一种有效方法,它确保了正常节点间对网络状态的共识。PBFT、FBA和dBFT是拜占庭容错共识算法的三种主要版本,它们各自具有不同的优缺点和适用场景。PBFT适用于私有网络和许可网络,具有高速和可扩展性;FBA提供了高吞吐量和网络扩展性,适用于Stellar等代币;dBFT则支持通过代理投票实现大规模参与共识,适用于Neo等公链。