欢迎莅临 IEEE HotICN 中文社区,IEEE HotICN 国际学术会议网站: https://hoticn.com, https://hoticn.cn。

Sailfish: Towards Improving the Latency of DAG-based BFT

区块链 韦帆

N. Shrestha, R. Shrothrium, A. Kate and K. Nayak, “Sailfish: Towards Improving the Latency of DAG-Based BFT,” 2025 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 2025, pp. 1928-1946, doi: 10.1109/SP61157.2025.00021. keywords: {Privacy;Fault tolerance;Directed acyclic graph;Protocols;Fault tolerant systems;Throughput;Complexity theory;Proposals;Security;byzantine fault tolerance;dag-based consensus;partial synchrony;latency},

一、动机

现有 DAG-based BFT 共识协议吞吐高,但确认(commit)延迟很大;尤其是无法做到“每一轮都有 leader 且低延迟提交”

在区块链 / BFT 共识里,有两个关键性能指标:

  • 吞吐量(throughput):单位时间处理多少交易
  • 延迟(latency):一笔交易多久能最终确定(commit)

现有的DAG-based BFT(如 Bullshark、Shoal、Mysticeti)吞吐高(所有节点并行提议)但延迟高(leader 提交慢)。

Sailfish 的目标就是:在保持 DAG-based 高吞吐的同时,把提交延迟降到和“传统 leader-based BFT”一样低

二、现有DAG-based BFT为什么延迟高?

为什么 DAG-based BFT 天生延迟高

1、DAG-based BFT 的基本结构

  • 系统按 round(轮)运行
  • 每一轮:
    • 所有节点都提议一个 vertex(区块)
    • vertex 指向上一轮 ≥2f+1 个 vertex(形成 DAG)
  • 真正决定顺序的不是所有 vertex,而是 leader vertex

2、现有协议的关键限制

Bullshark / Shoal 为代表:

  • leader 不是每轮都有
    • Bullshark:每 2 轮一个 leader
  • leader 提交要等“投票轮”
    • leader 在 r 轮提出
    • r+1 轮大家“投票”
    • r+2 才安全提交
  • 每轮无法有多个leader
    • leader 的 commit 规则依赖于“每个 proposer slot 都要和其它 slot 有链接”
      这在 每轮多个 proposer 的 DAG 中是做不到的。

三、Sailfish 的核心突破。

允许 leader 每一轮出现,但要求:要么“明确链接前一个 leader”,要么“证明前一个 leader 不可能被提交”。

Sailfish: Towards Improving the Latency of DAG-based BFT插图

图一、DAG-based BFT 协议效果对比图

四、关键创新:No-Vote Certificate(NVC)

1、什么是 No-Vote Certificate?

  • NVC = 2f+1 个节点的“我没给上一轮 leader 投票”证明
  • 含义: 上一轮 leader 不可能被提交

2、 Sailfish 对 leader 的强制约束

每一轮的 leader vertex 必须满足:

情况要求
上一轮 leader 可见strong path 指向它
上一轮 leader 不可见携带 NVC 证明它死了

五、Sailfish 的提交规则为什么更快?

1、Sailfish 观察到:RBC 的第一个消息(first message)如果 sender 是诚实的,它一定等于最终 deliver 的值。

2、Sailfish 的提交条件只要看到:2f+1 个“下一轮 vertex 的首消息”且它们都 strong-path 指向当前 leader, 可以直接提交

提交的安全性分析:2f+1 中至少 f+1 来自诚实节点。这些值最终一定 deliver,后续 leader 必然能“看到”当前 leader。

六、Multi-leader Sailfish:拓展到每轮多领导者进一步加速

1、思路

  • 每轮选:
    • 1 个 main leader
    • 多个 secondary leader
  • main leader:
    • 负责保证安全(链接 / NVC)
  • secondary leader:
    • 在“乐观条件”下可以同轮提交

2、结果

  • 多个 leader vertex
    • 都能在 1 RBC + δ 内提交
  • 非乐观情况:
    • 退化为 Sailfish,不破坏安全

七、实验结果

Sailfish: Towards Improving the Latency of DAG-based BFT插图1

图二、实验结果图

关键结论

  • 延迟降低
    • 比 Bullshark 低 ≈ 25%
    • 比 Shoal 低 ≈ 20%
  • 吞吐不降,略有提升
  • 单个 Byzantine leader 故障下仍优于现有方案

本文主要参考和使用了论文中展示的图片,以下给出相关链接。

论文链接:https://ieeexplore.ieee.org/document/11023279

喜欢 (0)