BFTree是如何在存在错误验证器的情况下实现共识的
扫描二维码
随时随地手机看文章
在Celo,我们正在努力建立一个新的金融体系,为每个人的繁荣创造条件。今天,我想与大家分享一篇关于Jason Ansel使Celo和其他无许可的权益证明(PoS)协议更具包容性工作的初稿,该协议允许扩展到数百万个验证器。
扩大共识
当我第一次听说比特币的时候,它的一个伟大的想法是,任何人都可以通过在自己家里的电脑上运行一个矿工来参与比特币的开发。这种无许可结构是加密货币运动的基本组成部分。随着我们向更具环境可持续性的权益关系证明系统过渡,越来越多的加密货币使用权益证明共识协议,如Cosmos、Tezos、Algorand和Polkadot,这些协议基于或正在转向使用拜占庭容错(BFT)共识协议。虽然这些算法提供了强大的终结性保证,但其要么所有可靠的节点都采用块,要么一个也不采用(从而消除了在比特币中发现分叉和回滚的可能性),现 有的BFT算法的伸缩性并不好。大多数积极使用的实现可以扩展到100个参与者,一些即将推出的系统希望通过牺牲一些功能(例如增加块时间)扩展到1000个参与者。
这导致许多现代加密货币采用了一个两类系统,其中有一组较小的杰出节点充当验证器并参与BFT算法,而公共节点只是一个观察者,不参与。虽然有些人可能更愿意成为委派者,但我们认为,如果允许任何人加入协商共识协议,那么无许可协议更具弹性和包容性。
引入BFTree
我们新论文的第一稿提出了一种对BFT算法的新修改,称为BFTree,其目的是让BFT共识性扩展到数百万个验证器。通过消除对两类节点的需要和对少数验证器的委托,这种更改可以实现更加分散的权益关系验证协议。我们将扩展到数百万个验证器的目标看作是一个强制函数,以创建更可伸缩的共识算法中BFT不再是瓶颈使加密货币更加去中心化。在实践中,其他瓶颈,例如块大小,可能会使大型加密货币的理想验证器数量为数万或数十万个节点。
BFTree将验证器安排到一个虚拟树中,以便在非拜占庭节点之间并行化签名聚合,以实现一致。当拜占庭节点干扰聚合时,能够使达成协议的所有子树根来执行BFT,通常比所有验证器都参与的消息少。通过仔细地重新组织树,使历史上可靠的节点与其他可靠的节点配对,BFTree限制了拜占庭节点的影响。
关于BFTree如何在存在错误验证器的情况下实现共识的逐步示例。
这种组织策略允许诚实可靠的验证器仲裁以分布式方式快速聚合所需的签名数量,从而允许算法扩展到大量验证器。