Mysticeti 共识是什么?不选领导者怎么让全网对先后达成一致 图 1
Mysticeti 共识是什么?不选领导者怎么让全网对先后达成一致 · 图 1

每个验证者都在提案,没有唯一的领导轮

主流 BFT 共识的节拍器是”每轮一位领导”:轮到谁出块,其他人等他的提案,凑够签名再进下一轮。领导掉线,那一轮就靠超时干等。Mysticeti 换了个引擎:验证者们并行地、持续地各自产出区块,每个区块引用上一轮多个验证者的区块,整个结构是一张不断生长的有向无环图。没有”这一轮该谁说话”的等待,出块带宽等于全体验证者的带宽之和,单点领导者不可用不再是节奏杀手。

这套机制发表在公开的协议论文里,被 Sui 的共识层采用;官方文档对它的概括是:并行提案用满网络带宽、抗审查,且从图中区块到提交只需要三轮消息——这已经是实用拜占庭共识在消息轮数上的理论下限附近。

示意图

传统 DAG 共识要先给区块做显式认证(收集足量签名形成证书),再认证证书,一轮轮累加。Mysticeti 取消了显式认证环节,改用模式识别:如果后续某轮里,有超过三分之二的验证者各自的区块间接引用了同一个早前区块(顺着引用链做深度优先搜索,该区块是那位验证者在那一轮的第一个被遇到的区块),就认为这个区块获得了一张”隐式证书”。签名收集被压缩进 DAG 的构建本身——每个区块在引用别人的同时,顺带投出了自己的票,不需要额外的投票消息轮次。

论文强调的关键收益是延迟:直接决定规则让任何一个区块只要观察到足够的提交模式就能标为待提交,多个提议槽可以在同一轮并行推进,不必等两三个专属轮次。崩溃型故障——现实网络里最常见的那种——可以被立即识别并从提交序列里跳过,后续槽位不受牵连。

刹车块:安全来自”待定”状态

隐式证书听起来激进,安全全靠一个细节兜底:提议槽有四种状态——待提交、跳过、待定、以及尚未判定。当某个槽位无法确定归属时,它被标为待定,而待定对后续所有槽位施加背压:后面的槽要先解决前人的悬案才能继续判定。协议利用提议槽的确定性全序,把每一个决定递归地向后传递,保证无论验证者各自在什么时刻观察,最终判定的提交序列一致。

这套”待定加全序”的结构替代了别的方案里缓冲区轮数的角色:宁可短暂刹车,也不允许两个验证者对先后次序各说各话。协议容忍不超过三分之一的恶意验证者,安全性无条件成立,活性在同步期内成立——与主流 BFT 的假设同一档。

快车道与公平性:设计上的两个加分项

对有单属对象(只属于一个所有者的钱包、代币)的交易,Mysticeti 的变体提供快路径:这类交易不进全局排序,由可靠广播直接定案,而它搭的还是共识区块的顺风车——验证者在本来就要签的区块上顺带附上对快路径交易的票,省掉单独的逐笔签名。快路径与共识路径靠同一套法定交集论证保证不打架。

对普通用户,这一层结构的日常投影是几个朴素的判断:确认延迟由网络传播的轮数主导,而不是领导排班的运气;某个验证者宕机时全网只是跳过它的槽位,不需要人为干预;所谓”没有领导者”,不是没有秩序,而是秩序从”轮流当主席”改成”从图的模式里读出一致的历史”。并行提案也意味着带宽与存储压力平摊到每家,节点配置的短板从”领导的机器”变回”最慢的那批人”。顺带一提,这种结构的调试直觉也不同:出了问题要顺着引用链回溯因果历史找分歧点,而不是去查”那一轮领导干了什么”——因为根本没有那样一位领导。本文是机制说明,不构成任何投资建议。