BFT 协议的权衡:低延迟 vs. 高鲁棒性

现代拜占庭容错(BFT)共识协议通常运行在部分同步模型下,该模型假设在某个不确定的时间点后,网络最终会变得稳定,消息传递延迟会有上限。虽然这个模型在协议设计上是实用的,但现实部署中很少能享受长时间的持续稳定。相反,系统经常经历同步阶段后出现短暂中断,如延迟激增、节点宕机或恶意攻击。这些短暂中断被称为 “突变(blips)” 在这种情况下,现有的共识协议通常被迫在 网络稳定时的低延迟故障状态下的高鲁棒性 之间做出取舍:
  • 传统的基于视图(view-based)的 BFT 协议(如 PBFT 和 HotStuff)在网络良好时响应迅速,但一旦发生突变,其性能会迅速恶化。这种性能衰退称为“宿醉效应(hangover)”,即使网络恢复后仍会持续,因为积压的请求会延迟后续交易处理。
  • 基于 DAG 的 BFT 协议(如 Narwhal & Tusk/Bullshark)将数据传播(DAG)与共识(BFT)解耦,允许交易异步传播至各副本。这种设计支持高吞吐量,并可在网络中断时继续推进。然而,这些协议即使在网络良好时也会因异步排序机制的复杂性而导致高延迟。
Autobahn 引入了一种全新方法,融合了这两种设计理念的优势。它结合了 DAG 协议的高吞吐与对突变的容忍性,以及传统共识协议的低延迟性能。Autobahn 的核心是一个高度并行的数据传播层,无论共识进展如何,始终以网络速度传播提案。在此之上,Autobahn 运行一个低延迟的部分同步共识协议,通过引用数据层的轻量级快照来提交提案。 Autobahn 的一个显著特点是其在突变后无性能退化的恢复能力,称为 “无缝性(seamlessness)”。这意味着系统在网络稳定后可立即恢复全速和低延迟运行,无需对积压交易进行代价高昂的重复处理。通过将数据可用性与排序清晰分离,并避免协议自身引起的同步延迟,Autobahn 为真实环境下的区块链共识提供了一个既有高鲁棒性又响应迅速的基础。

Autobahn 架构概览

Autobahn 的架构围绕其两大核心层:数据传播层共识层,职责分离明确。这种解耦借鉴了 Narwhal 等 DAG 系统的设计,但 Autobahn 对其进行了增强,以支持无缝性和更低延迟。 数据传播层负责以可扩展的异步方式广播客户端交易。每个副本维护一条独立的交易批处理通道,称为“车道(lane)”,这些车道可独立于共识状态进行传播和认证。即使共识过程暂停,车道仍持续增长,保证系统对客户端始终保持响应。 共识层运行一个基于 PBFT 风格的部分同步协议。但与传统共识需就每一批交易达成一致不同,Autobahn 共识协议的处理方式类似“车头快照(tip cut)”,即各条车道当前状态的精简摘要。这种设计允许 Autobahn 一次性提交任意规模的数据,减少突变带来的影响。 相较于 HotStuff(数据与共识紧耦合,领导者失败时易停滞)和 Bullshark(因 DAG 遍历和同步造成高延迟),Autobahn 提供了更平滑、更快速的共识体验。它继承了 DAG 的并行性,却规避了其延迟劣势。

数据传播层:车道与车辆

Autobahn:无缝高速 BFT

在 Autobahn 中,每个副本在其独立推进的链中提出交易,称为一条 车道(lane)。每个数据提案都包含来自其他副本的确认集合,称为 “车辆(car)”(即可用请求认证,Certification of Available Request)。这些车辆作为数据可用性的证明(PoA),确保至少一个诚实副本持有数据,并在需要时可重新传输。 车辆通过在每个新提案中引用前一个车辆构建出链式结构。这种结构保证了只需验证车道的车头即可确认整个车道历史数据的可用性。这种可传递的可用性证明使 Autobahn 能即时引用车头快照,避免了 DAG 遍历操作或额外的同步操作。 与传统 DAG 协议不同,Autobahn 避免了强制全局可用性和防双重广播所需的高成本广播步骤。它使用尽可能少的操作,信任每个 PoA 至少有一个诚实数据副本,从而即使在负载变化或部分故障下也能实现高吞吐与低延迟。数据层独立于共识持续推进,确保在突变期间仍保持响应。

共识层:低延迟达成一致

Autobahn:无缝高速 BFT

Autobahn 的共识层在经典 PBFT 原则基础上引入关键优化,降低延迟并支持无缝恢复。每个共识时隙的目标是提交一个 “车头快照(tip cut)”,该快照捕捉来自各副本车道的最新认证提案。共识领导者使用两阶段提交流程(Prepare 和 Confirm)提出该快照。 在 Prepare 阶段,副本对提议的快照进行投票。如果领导者迅速收到足够投票(完整法定数),可进入快速路径(Fast Path),仅需 3 次消息延迟即可完成提交。否则,它将进入 Confirm 阶段,收集第二轮投票后在 6 次消息延迟内完成提交。 一大创新在于将数据同步从共识投票中拆解出来。副本可仅依据认证车头进行投票,即便尚未接收完整提案数据。这是安全的,因为 PoA 保证了数据的可检索性。同步操作并行进行,并在执行阶段前完成,避免协议阻塞。如遇领导者故障或超时,系统通过超时证书触发视图变更,由新领导者继续推进。

Autobahn 的核心特性

Autobahn 满足 BFT 协议标准的 安全性活性 保证。安全性确保不会有两个正确副本在同一时隙提交不同区块;活性确保在全局稳定时间(GST)后,若最终选出正确领导者,则系统必将前进。 更重要的是,Autobahn 实现了真正的 无缝性(seamlessness)。其共识层可在常数时间(Constant Time)内提交任意规模的历史数据,避免因协议机制而导致的“宿醉”。即便经历突变,只要同步恢复,所有已传播的提案可立即被提交。这种能力使 Autobahn 能在间歇性故障环境中流畅运行,其恢复时间与响应速度均优于传统 BFT 协议。 此外,该协议还具备 横向扩展性。每个副本通过其车道为系统贡献吞吐量,随着参与者增加,快照提交容量自然增长,使 Autobahn 非常适合需要高性能与高鲁棒性的规模化部署。

低延迟遇上高鲁棒性

Autobahn 在理想和故障注入的测试条件下与主流 BFT 协议(尤其是 Bullshark 和 HotStuff)进行对比测试。结果表明,Autobahn 兼具两者之长:在处理能力上匹敌 Bullshark(每秒处理超过 23 万笔交易),而延迟则降低了 50% 以上。 在网络良好条件下,Autobahn 仅需 3 至 6 次消息延迟即可提交交易,而 Bullshark 需 12 次,这使其实际提交延迟低至 280 毫秒,而 Bullshark 超过 590 毫秒。不同于 HotStuff 在突变后因积压处理而产生的长时间宿醉,Autobahn 能在网络稳定后一次性提交全部积压内容。 在领导者失效或部分网络分叉(partial network partitions)等故障场景下,Autobahn 表现出无缝恢复能力。在故障期间持续传播数据,并在共识恢复后迅速提交已积累提案。这些性能优势使 Autobahn 成为区块链平台在追求低延迟响应与高吞吐容错性方面的理想选择。

延伸阅读

欲了解更多技术细节,请参考: