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。
这带来三个直接好处:
- 自然流水线化:每一轮都在“推进新块 + 兑现旧块”,吞吐被完全跑满。
- 结构超统一:所有阶段的消息结构几乎一致,实现代码可以极度简化。
- 可视化很直观:从“多轮握手协议”变成“在链上走三步”,方便工程团队理解和排查。

图一、流水线示意图
三、创新点2:线性视图切换 + 乐观响应性
BFT 共识最大的痛点之一,是 leader 切换(view-change) 的成本。
- PBFT:leader 一换,节点之间要互相搬运一大堆“我看到的最新 QC”,
通信量可以到 O(n³),在上百节点的时候非常肉疼。 - 很多区块链为了稳,还要强制等待最大网络延迟 ∆,哪怕网络其实很快,也只能按“最坏情况速度”运行。
HotStuff 的第二个关键创新,就是:
把视图切换做成 O(n) 通信复杂度,且不需要等待固定的 ∆。
假设最多有f个恶意节点
- 线性 view-change:
leader 只需要收集一轮来自 n−f 个节点的“最高 QC”信息,然后再向所有节点广播提案即可。
得益于阈值签名,QC 可以压缩成一个常数大小的签名对象,通信量从立方级骤降到线性级。 - 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)

图二、统一抽象图
五、创新4:安全与活性“解耦”,Pacemaker 把难点从协议搬到模块
很多 BFT 协议在设计上,把:
- 安全性(不能分叉、不能双花)
- 活性(系统不能卡死、要持续出块)
搅在一起写,导致:
- 协议描述很复杂
- 实现时容易出 bug
- 一旦要调 timeout、调 leader 策略,就必须动核心逻辑
HotStuff 选择了更工程化的一条路:
把安全性和活性彻底“拆开”,用 Pacemaker 这个独立模块来负责“往前走”。
在 HotStuff 里:
- 共识内核只关心:
- 投票规则
- QC 认证
- 节点锁定与解锁
——这些都是“只要实现对了就不会出错”的安全性条件。
- 而 什么时候切 view、怎么选 leader、timeout 怎么设,
统统交给 Pacemaker 这个“调度中枢”来做。
六、实验结果
1、吞吐:在上百节点规模下依然保持高性能

图三、吞吐效果图
在 4 节点基础测试中,HotStuff 的最高吞吐可以达到 30 万 ops/s 以上,高于 BFT-SMaRt 的峰值表现。
在节点数量扩展到 100+ 的大规模场景时,HotStuff 的吞吐几乎保持线性延展,没有出现传统 BFT 协议常见的“性能断崖式下跌”。
2、线性领导者切换效果



图四、线性领导者切换效果图
在 100+ 节点集群里,性能几乎不掉
BFT-SMaRt 的通信量呈二次增长,在相同场景下明显吃亏
对多故障场景(宕机、延迟、恶意节点)表现尤其稳健
本文主要参考和使用了论文中展示的图片,以下给出相关链接。
论文链接:[1803.05069] HotStuff: BFT Consensus in the Lens of Blockchain