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

HotStuff: BFT Consensus in the Lens of Blockchain

区块链 韦帆

Yin M, Malkhi D, Reiter M K, et al. HotStuff: BFT consensus in the lens of blockchain[J]. arXiv preprint arXiv:1803.05069, 2018.

在谈论区块链时,“共识算法”常常被视为决定系统安全性、性能,以及未来发展方向的“灵魂”。而在 BFT 协议里,有一个名字频频出现在开发者社区、学术圈与产业实践中——HotStuff。很多人第一次听说这个协议,是因为 Facebook(Meta) 曾在其 Libra/Diem 项目中把 HotStuff 定为核心共识框架。

一、为什么需要新的 HotStuff共识?

传统 BFT 协议(比如 PBFT)虽然“安全稳健”,但一到了上百节点就很容易出现两个致命问题:

1. 通信暴涨,越扩越慢

PBFT 的 leader 切换(view-change)需要大量节点互相交换投票信息,通信量可能达到 O(n³)。节点越多、网络越复杂,性能就越受影响。

2. 等待最坏情况延迟,无缘“真·高性能”

为了保证安全,PBFT 必须等待网络传播的最坏延迟(∆)。也就是说,即使网络很快,它也不能快

这些限制导致 PBFT 很难在现代互联网环境中跑到“高吞吐+低延迟”的区块链系统里。

二、创新点1:三链(Three-Chain)结构,把 BFT 做成“流水线”

传统 BFT(比如 PBFT)是“阶段式”的:

  • 准备(prepare)
  • 提交前(pre-commit)
  • 提交(commit)

每一轮都要完整走一遍流程,然后才能考虑下一轮。

HotStuff 做了一个非常大胆的重构——它把这些阶段串联成一条链

  • 在第 v 轮的投票,既是某个区块的 prepare
  • 又可以顺带完成上一轮区块的 pre-commit
  • 再上一轮区块的 commit

这带来三个直接好处:

  1. 自然流水线化:每一轮都在“推进新块 + 兑现旧块”,吞吐被完全跑满。
  2. 结构超统一:所有阶段的消息结构几乎一致,实现代码可以极度简化。
  3. 可视化很直观:从“多轮握手协议”变成“在链上走三步”,方便工程团队理解和排查。
HotStuff: BFT Consensus in the Lens of Blockchain插图

图一、流水线示意图

三、创新点2:线性视图切换 + 乐观响应性

BFT 共识最大的痛点之一,是 leader 切换(view-change) 的成本。

  • PBFT:leader 一换,节点之间要互相搬运一大堆“我看到的最新 QC”,
    通信量可以到 O(n³),在上百节点的时候非常肉疼。
  • 很多区块链为了稳,还要强制等待最大网络延迟 ∆,哪怕网络其实很快,也只能按“最坏情况速度”运行。

HotStuff 的第二个关键创新,就是:

把视图切换做成 O(n) 通信复杂度,且不需要等待固定的 ∆。

假设最多有f个恶意节点

  1. 线性 view-change
    leader 只需要收集一轮来自 n−f 个节点的“最高 QC”信息,然后再向所有节点广播提案即可。
    得益于阈值签名,QC 可以压缩成一个常数大小的签名对象,通信量从立方级骤降到线性级
  2. Optimistic Responsiveness(乐观响应性)
    • 在网络良好、节点响应快的情况下,leader 只需要等到第一批 n−f 个响应,就可以继续往前推进。
    • 不再被一个预设的“最大延迟 ∆”拖慢——网络越好,协议就跑得越快。

四、创新点3:一个统一的 BFT 框架,把 DLS / PBFT / Tendermint / Casper 都装进来

一套“通用 BFT 框架”,可以把几十年来的主流拜占庭共识协议统一表达在同一张图里。

论文中非常重要的一点是:

它用 图结构 + 链式 commit 规则 来表达“什么是安全提交”;

然后把 DLS、PBFT、Tendermint、Casper 这些协议都映射为:

One-Chain(DLS)

Two-Chain(PBFT / Tendermint / Casper)

Three-Chain(HotStuff)

HotStuff: BFT Consensus in the Lens of Blockchain插图1

图二、统一抽象图

五、创新4:安全与活性“解耦”,Pacemaker 把难点从协议搬到模块

很多 BFT 协议在设计上,把:

  • 安全性(不能分叉、不能双花)
  • 活性(系统不能卡死、要持续出块)

搅在一起写,导致:

  • 协议描述很复杂
  • 实现时容易出 bug
  • 一旦要调 timeout、调 leader 策略,就必须动核心逻辑

HotStuff 选择了更工程化的一条路:

把安全性和活性彻底“拆开”,用 Pacemaker 这个独立模块来负责“往前走”。

在 HotStuff 里:

  • 共识内核只关心:
    • 投票规则
    • QC 认证
    • 节点锁定与解锁
      ——这些都是“只要实现对了就不会出错”的安全性条件。
  • 什么时候切 view、怎么选 leader、timeout 怎么设
    统统交给 Pacemaker 这个“调度中枢”来做。

六、实验结果

1、吞吐:在上百节点规模下依然保持高性能

HotStuff: BFT Consensus in the Lens of Blockchain插图2

图三、吞吐效果图

在 4 节点基础测试中,HotStuff 的最高吞吐可以达到 30 万 ops/s 以上,高于 BFT-SMaRt 的峰值表现。

在节点数量扩展到 100+ 的大规模场景时,HotStuff 的吞吐几乎保持线性延展,没有出现传统 BFT 协议常见的“性能断崖式下跌”。

2、线性领导者切换效果

HotStuff: BFT Consensus in the Lens of Blockchain插图3
HotStuff: BFT Consensus in the Lens of Blockchain插图4
HotStuff: BFT Consensus in the Lens of Blockchain插图5

图四、线性领导者切换效果图

在 100+ 节点集群里,性能几乎不掉

BFT-SMaRt 的通信量呈二次增长,在相同场景下明显吃亏

对多故障场景(宕机、延迟、恶意节点)表现尤其稳健

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

论文链接:[1803.05069] HotStuff: BFT Consensus in the Lens of Blockchain

喜欢 (0)