一句话先说清
HotStuff 是 2019 年 PODC 会议上发表的一类领导者式拜占庭容错协议(作者 Yin、Malkhi、Reiter、Golan Gueta、Abraham)。它解决的是老一代 BFT 协议的通信之痛:换一任领导者,消息量就按节点数平方膨胀。HotStuff 用门限签名压缩票数、用统一的“提案—投票”阶段做流水线,让换人的代价变成线性,同时按真实网络延迟(而不是最坏假设)推进共识。

老 BFT 的痛:换人就像重选议会
经典 PBFT 式协议分两个阶段投票,安全性靠一套复杂的“领导者证明”机制支撑;一旦领导者出错或掉线,视图转换过程要在节点之间交换大量证据,消息量随节点数平方增长。链越大,换一次人越像一场全量点名。HotStuff 的出发点是:把每个阶段都设计成同样的形状——领导者在收到法定数量(三分之二以上)的投票后汇成一份法定证书(QC),下一任领导者凭最高的那份证书就能安全接班。证书即权力交接的凭证,不需要额外的证明体系。
三阶段与三链提交
HotStuff 在安全规则下让节点“投票后还能改主意”而无需领导者证明,代价是每轮多出一个阶段:prepare、pre-commit、commit 三段投票。提交规则也相应变成“三链”:当某个区块后面接上两条直接相连的子块,再接上第三个延伸块——形成一条三个直接区块的链条时,最早那个区块才算最终确定。门限签名让每份证书只有一点点大小,新节点验证旧证书不用重放千份签名。论文证明:只要作恶节点少于三分之一,这条规则永远不会让两个冲突区块同时最终确定。
流水线:换领导像换挡不像停车
由于三个阶段结构完全相同,流水线版 HotStuff(Chained HotStuff)可以每一轮提案就换一次领导者:第 v 轮的投票同时是第 v-1 轮的预提交、第 v-2 轮的提交。消息种类收敛为两种,出块节奏与区块生产合并。这就是后来 Diem 项目 LibraBFT、Flow 等平台采用的形态。后继工作 Fast-HotStuff 在 2020 年把它进一步压回两阶段以减少延迟,但学界也指出两阶段版本会牺牲按实际网络速度推进的“响应性”——三阶段不是累赘,而是用一个阶段换来安全性与活性兼得的缓冲。
一笔账看清差距
拿一千个验证者、不可信节点不超过三分之一的规模做数量级对比:旧式视图转换要在节点两两之间交换签名证据,一次事件就是百万级(一千的平方)的量级;HotStuff 把每轮投票压进一份证书,一轮的正常开销是一千份投票加一份回收的证书,换主时也只需沿证书链补几段证明。数量级的落差不是靠带宽堆出来的,而是把“对每个人喊话”改成了“向继任者递棒”。对链上系统而言,这笔账直接换算成出块间隔能否从秒级往下压。
一条直觉线
把共识比作接力赛:PBFT 是每次换棒都要全体开会交接规则,HotStuff 则是把交棒动作标准化成一根统一的接力棒(QC),谁拿到最高的棒谁就跑下一段;证书链像传送带,提案不断向前滚动,不需要整条线停下来确认上一棒跑完。
快速问答
问:HotStuff 和 Tendermint 类协议什么区别?论文特别指出,Tendermint/Casper 的设计要在阶段间插入等待最坏网络延迟的步骤,因而放弃“响应性”;HotStuff 靠第三阶段让诚实节点可以安全改票,从而只按实际延迟前进。 问:多少节点作恶会破?安全阈值与前代 BFT 相同:不可信节点不超过三分之一。控制三分之一以上者可以让系统停摆,但造不出两个都“最终确定”的冲突链。 问:它适合公链吗?它假设可枚举的验证者集合与公钥基础设施,常用于联盟链与有质押名单的链;开放参与的网络还需要额外的身份与抽签层。
常见误区
一是把线性复杂度理解成绝对快:线性说的是换人时认证器消息的数量级,吞吐还取决于门限签名运算与网络拓扑。二是把“三阶段”当性能浪费:去掉第三阶段换来的低延迟,是用等待最坏延迟换的,网络一抖就可能失去活性。三是认为证书越多越安全:节点只应投给不低于自己锁定块的新证书,多投反而制造罚没风险。
风险提示:本文为分布式共识机制科普,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。