[论文解读] YAC: BFT Consensus Algorithm for Blockchain
YAC 是一种为区块链系统设计的新型拜占庭容错(BFT)共识算法,通过在区块提议上采用模块化、基于投票的机制,在可扩展性和效率方面优于经典 BFT 协议(如 PBFT)。它在包含 3f+1 个节点的网络中,支持最多 f 个故障节点,确保安全性和活性,并在实验中通过按网络规模调整投票步骤延迟,实现了 64 个节点时的高吞吐量和低延迟。
Consensus in decentralized systems that asynchronously receive events and which are subject to Byzantine faults is a common problem with many real-life applications. Advances in decentralized systems, such as distributed ledger (i.e., blockchain) technology, has only increased the importance of finding performant and secure solutions to consensus of state machine replication in decentralized systems. YAC is a practical decentralized consensus algorithm, that solves the problems of inefficient message passing and strong leaders that occur in classical Byzantine fault tolerant consensus algorithms. The algorithm is open source and currently is used to provide Byzantine fault tolerant consensus for the Hyperledger Iroha blockchain project. We provide proofs of safety and liveness, as well as empirical results showing that our algorithm can scale to dozens of validating peers.
研究动机与目标
- 解决经典 BFT 共识算法(如 PBFT)中消息传递低效和强领导者依赖的问题。
- 设计一种适用于具有抗审查和抗政治攻击能力的区块链系统的实用、模块化 BFT 共识算法。
- 在拜占庭故障假设下,提供安全性和活性的形式化证明。
- 通过在 Hyperledger Iroha 中的实际部署,实证评估其可扩展性和性能。
- 识别在不同网络规模下,能平衡吞吐量与共识稳定性的最优投票步骤延迟配置。
提出的方法
- YAC 在区块提议上使用投票机制,节点在收到足够多匹配投票后,对提议进行提交。
- 该算法采用模块化架构,包含提议、投票和提交三个独立阶段,确保确定性最终性。
- 通过可配置的投票步骤延迟,使节点有时间接收并验证提议,从而减少网络不一致性。
- 系统保证:若故障节点少于 f 个,则安全性成立;若网络保持连通且所有节点遵循协议,则活性成立。
- 当一个节点收到针对某一提议的 2f+1 个匹配投票时,共识达成,确保诚实节点间的一致性。
- 实现为开源代码,并已集成至 Hyperledger Iroha,使用 Docker 和 PostgreSQL 实现状态持久化。
实验结果
研究问题
- RQ1能否设计一种 BFT 共识算法,以减少区块链系统中的消息开销并消除对强领导者的依赖?
- RQ2在地理分布式的对等网络中,投票步骤延迟如何影响共识稳定性和系统吞吐量?
- RQ3针对不同网络规模,最优的投票步骤延迟配置是什么,才能在保持共识的同时最大化吞吐量?
- RQ4YAC 在保持安全性和活性的前提下,能够扩展到数十个验证节点的程度到何种程度?
- RQ5在真实世界部署中,YAC 与 PBFT 和 Zyzzyva 相比,在延迟、吞吐量和容错能力方面表现如何?
主要发现
- 在 4 节点网络中,1ms 的投票步骤延迟实现了最高的中位吞吐量,但由于时序约束,容错能力极低。
- 在 16 节点网络中,1ms 延迟仍提供最优吞吐量,但随着对等节点数量增加,共识稳定性略有下降。
- 在 28 和 64 个节点的网络中,20ms 的投票步骤延迟被证明是最优配置,与 1ms 相比,故障节点数分别从 15 个减少到 3 个,以及从 10 个减少到 3 个。
- 500ms 的延迟在所有网络规模下均消除了所有节点故障,但吞吐量显著下降。
- 当投票步骤延迟调整为 20ms 时,YAC 在 64 个节点上实现了稳定共识和高吞吐量,证明了其可扩展性。
- 实证结果表明,当延迟参数配置得当时,YAC 可在低延迟和高吞吐量下扩展至数十个验证节点。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。