结论先说
乐观 Rollup 的经典叙事是“挑战期内没人质疑就算对”,但 OP Stack 的现行裁决核心不是干等一个时间窗,而是一套叫 Fault Dispute Game 的链上二分博弈:任何人对某条 L2 输出根有异议,就把争论反复对折——先在历史状态层面折区块级的输出根,再折进单个区块的执行轨迹,最后收窄到某一条指令,由链上虚拟机直接执行它来分胜负。这套机制把“谁对谁错”的裁决成本从链下全量重放,压缩成链上执行一步指令。它与挑战期、欺诈证明这些老概念的关系,可以放在ZK 证明和欺诈证明有何区别?Rollup 两种安全模型的框架里理解,但博弈过程本身值得单独拆开看。
博弈树:两棵折法不同的树拼起来
每场博弈从锚定状态出发——一个被协议预先承认合法的历史输出根,最早可追到 L2 创世。博弈树有预设深度:官方参考文档给出的标准参数里,分裂深度为 30、最大深度为 73。前 30 层的每一次声明针对一个输出根,挑战者在两个区块状态之间选中点“折半”,双方交替提交各自认为正确的中间状态,把分歧区间不断缩小。一旦某次攻击把分歧压到相邻两个输出根之间,博弈换轨:往下折的不再是有状态断言,而是这个区块内部执行轨迹上某一步的虚拟机状态承诺。到第 73 层,争议对象就是单条 MIPS 指令——任何一方提交状态证据,链上的 MIPS64.sol 合约执行这一步,算出的后状态站在哪边,哪边就赢下这条线。Cannon 虚拟机分两半:链下 Go 实现负责生成执行轨迹和状态见证哈希,链上合约负责最终那一步,两侧对同一指令必须算出完全一致的结果。

象棋时钟与保证金:让怠工者先输
博弈不靠无限拉锯。每方拥有一个象棋时钟:单条声明上对手的累计回应时间达到 302400 秒(三天半)后就不能再对它落子;当某步落子会让回应方剩余时间少于三小时的扩展值时,时钟自动续到最低时限。落子顺序与团队归属由声明所在深度决定,深层声明继承祖辈的钟。双方下注保证金:博弈以子博弈为单位自底向上结算,一条声明只要有一个未被反击的子声明就算被“抵消”,真伪判断逐层向根声明传导。谁的游戏树叶子判定为真,保证金归谁。这套设计把博弈成本压得很低——大部分阶段双方只是在链上承诺哈希,只有真打到最后才触发昂贵的链上执行。
诚实角色与提款的关系
故障证明只有在有人真的按时回应错误声明时才保护提款。官方把 op-challenger 定义为协议的诚实角色:它盯住每一场博弈,用本地同步的可信 rollup 节点核对每条声明,对的防守、错的反击,并负责在时钟耗尽后触发结算。链运营方至少要跑一个挑战器,许可式博弈阶段只有指定地址能落子,迁移到无许可阶段后任何人都能运行。提款侧,入口合约 OptimismPortal2 只认博弈结果:提款必须对某场博弈的证明结果做证明交易,再经过成熟期延迟才能取出。换句话说,提款安全等于“正确的博弈结算结果加上足够的等待”,而博弈结果又依赖至少一个诚实挑战器在线——这三个环节哪一个弱化,安全叙事就要打折。排序器罢工时的绕行通道是强制交易,见强制交易是什么?排序器不打包时如何绕过它上链;而博弈所依赖的链上状态本身怎么从 L1 数据重建,见L2 派生流水线是什么?从 L1 数据重建 Rollup 链。
与“干等挑战期”的差别
传统欺诈证明模型里,质疑者需要直接向 L1 提交能复现错误状态的证据,链上验证的是一段完整断言;二分博弈把同样的争议拆成多轮小额承诺,链上只为最后一步执行付费。代价是时间:象棋时钟允许的累计时长意味着一场恶意拖延的博弈可以持续数天,这也是提款成熟期存在的现实背景之一。另一处常被忽略的细节是区块号挑战:根声明附带具体的 L2 区块号,声称的区块号与输出根原像中的区块头对不上时,这类声明可被单独作废,且只有根声明者承受这个挑战。
小结
Fault Dispute Game 的核心洞察是:状态争议是可以二分的,而二分的终点是一条指令,一条指令是可以在链上当场执行的。折半树、象棋时钟、保证金和锚定状态四件套,把“验证 L2 正确性”从理想主义的全量重放变成了有界成本的博弈协议。评估一条 OP Stack 链时值得核对三点:博弈是否已进入无许可阶段、有几个公开运行的挑战器、提款成熟期设了多长。本文为机制说明,依据官方文档整理,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。