Autobahn
BFT 中的权衡:延迟与鲁棒性
现代拜占庭容错 (BFT) 共识协议通常在部分同步模型下运行。该模型假设网络最终会稳定下来,并且消息延迟保持在一定范围内。虽然这对于协议设计来说是实用的,但实际部署很少能享受到长时间不间断的稳定性。相反,系统经常会经历一段同步期,随后出现短暂的中断,例如延迟高峰、节点中断或对抗性条件。这些短暂的中断被称为 “小故障”(blips)。
在这种情况下,现有共识协议被迫在稳定网络条件下的低延迟和存在故障时的鲁棒性之间做出选择。
- 传统的基于视图的 BFT 协议,如 PBFT 和 HotStuff,在网络稳定、状况良好时,针对响应性进行了优化。然而,当出现小故障时,它们的性能会下降。这种下降,被称为“滞后”(hangover),即使在网络恢复后也可能持续存在,因为积压的请求会累积并延迟后续事务。
- 基于 DAG 的 BFT 协议,如 Narwhal & Tusk/Bullshark,将数据传播 (DAG) 从共识 (BFT) 中解耦,并异步地在副本之间传播事务。这种设计实现了高吞吐量,并允许系统在网络中断期间继续进行。然而,即使在状况良好期间,这些协议也往往会由于其异步排序机制的复杂性而产生高延迟。
Autobahn 引入了一种新方法,弥合了这两种设计理念。它结合了基于 DAG 协议的高吞吐量和小故障容忍性,以及传统基于视图共识的低延迟性能。Autobahn 的核心是一个高度并行的 数据传播层,它以网络速度持续传播提案,无论共识进程如何。在此层之上,Autobahn 运行一个低延迟、部分同步的共识协议,通过引用数据层的轻量级快照来提交提案。
Autobahn 的一个显著特点是它能够从小故障中恢复,而不会导致性能下降。这种特性被称为无缝性,它确保系统在网络稳定后立即恢复全吞吐量和低延迟。无需对积压的事务进行昂贵的重新处理。通过将数据可用性与排序清晰分离,并避免协议引起的同步延迟,Autobahn 为现实世界条件下的区块链共识提供了强大而响应迅速的基础。
Autobahn 架构概述
Autobahn 的架构围绕着数据传播层和共识层这两个核心层之间的职责清晰分离。这种解耦的灵感来自于 Narwhal 等基于 DAG 的系统设计,但 Autobahn 增强了这种结构以支持无缝性并降低延迟。
数据传播层负责以可扩展的异步方式广播客户端事务。它允许每个副本维护自己的事务批次通道,这些批次可以独立于共识状态进行传播和认证。这些通道持续增长,即使在共识进程停滞时也是如此,确保系统始终对客户端保持响应。
在此之上,Autobahn 运行一个基于 PBFT 风格协议的部分同步共识层。然而,共识协议不是就单个事务批次达成协议,而是就“尖端切片”(tip cuts)达成协议,尖端切片是所有数据通道最新状态的紧凑摘要。这种设计允许 Autobahn 在单个步骤中提交任意大量数据,从而最大限度地减少小故障的影响。
HotStuff 将数据和共识紧密耦合,导致领导者失败时停滞。Bullshark 由于 DAG 遍历和数据同步而导致高提交延迟。Autobahn 提供了更流畅、更快速的共识体验,继承了 DAG 的并行性,同时避免了其延迟陷阱。
数据传播层:通道与“汽车”

Autobahn:无缝高速 BFT
在 Autobahn 中,每个副本都在一个独立推进的链中提出事务,该链被称为通道。通道中的每个数据提案都与来自其他副本的一组确认捆绑在一起,形成作者所称的“汽车”(Car,即 Certification of Available Request 的缩写)。这些汽车充当可用性证明 (PoA),确保至少一个正确的副本持有该数据,并在需要时可以重新传输。
通过在每个新提案中包含对前一个汽车的引用,汽车被连接在一起。这种结构保证了验证通道的尖端意味着整个通道历史的可用性。这种可传递的可用性证明是 Autobahn 即时引用的关键。共识层可以引用一个尖端切片(当前通道头的向量),并知道所有先前数据都是可检索的,而无需执行 DAG 遍历或额外的同步。
与典型的 DAG 协议不同,Autobahn 避免了强制执行全局可用性和非不明确性的昂贵可靠广播步骤。相反,它使用最少的协调,并相信每份 PoA 至少有一个诚实的副本持有数据。这即使在不同负载或部分故障下也能实现高吞吐量和低尾部延迟。数据层独立于共识继续进行,确保在小故障期间的响应性。
共识层:低延迟协议

Autobahn:无缝高速 BFT
Autobahn 中的共识层建立在经典的 PBFT 原则之上,但引入了关键优化以降低延迟并支持无缝恢复。每个共识槽都旨在提交一个“尖端切片”,该切片捕获每个副本通道的最新认证提案。共识领导者使用两阶段提交过程(准备和确认)来提出这个切片。
在准备阶段,副本对提出的尖端切片进行投票。如果领导者迅速收到足够的投票(一个完整的法定人数),它可以进入快速路径并仅通过 3 次消息延迟立即提交。如果不能,它将进入确认阶段,在完成 6 次消息延迟的提交之前收集另一组确认的法定人数。
一个关键的创新是将数据同步从共识投票中解耦。副本可以仅根据经过认证的尖端进行投票,即使它们尚未收到完整的提案数据。这是安全的,因为可用性证明确保了可检索性。同步并行进行并在执行阶段之前完成,从而避免了协议停滞。在领导者失败或超时的情况下,使用超时证书触发视图更改,新领导者可以高效地恢复进展。
Autobahn 的主要特性
Autobahn 满足 BFT 协议所期望的标准安全性和活性保证。安全性确保在同一槽中,没有两个正确的副本提交不同的块。活性保证在全局稳定时间 (GST) 之后,只要最终选出正确的领导者,就会取得进展。
更重要的是,Autobahn 实现了无缝性。它通过允许共识层以恒定时间提交任意大量积压数据来避免协议引起的滞后。即使在出现小故障之后,一旦同步恢复,所有成功传播的数据提案都可以立即提交。这使得 Autobahn 能够在存在间歇性故障的环境中顺利运行,在恢复时间和系统响应能力方面都优于传统的 BFT 协议。
此外,该协议水平扩展。每个副本都通过自身的通道为系统的吞吐量做出贡献,并且共识切片随着参与者数量的增加而自然增长。这使得 Autobahn 适用于需要高性能和鲁棒性的大规模部署。
低延迟与高弹性相结合
Autobahn 在理想和注入故障的条件下,与领先的 BFT 协议,特别是 Bullshark 和 HotStuff,进行了评估。结果表明,Autobahn 兼具两者的优点:它与 Bullshark 的吞吐量相匹配,每秒处理超过 230,000 笔交易,同时将其延迟降低了 50% 以上。
在良好的网络条件下,Autobahn 仅用 3 到 6 次消息延迟即可提交交易,而 Bullshark 则需要 12 次。这在实践中意味着提交延迟低至 280 毫秒,而 Bullshark 超过 590 毫秒。与 HotStuff 不同,HotStuff 由于积压处理延迟而在出现故障后遭受长时间滞后,Autobahn 在网络稳定后立即在一个步骤中提交其全部积压。
在涉及领导者故障或部分网络分区的场景中,Autobahn 展示了无缝恢复。它在故障期间继续传播数据,并在共识恢复后迅速提交累积的提案。这些性能优势使 Autobahn 成为寻求将低延迟响应性与高吞吐量和容错性相结合的区块链平台的理想选择。
延伸阅读
如需更多技术深入探讨和细节,请参阅:

