特别感谢 Jon Charbonneau 和 Conor McMenamin 对本文的审阅与宝贵建议。
如今我们都已经认识到安全性源于确认规则而非Rollup本身。当我们谈论Rollup”继承以太坊安全性”或”实现最小化信任”时,实际上是指这些Rollup采用了与以太坊确认规则安全性相当的机制。遗憾的是,多数区块链浏览器仅满足于展示一个绿色认证标识,却很少详细说明其所采用的确认规则及其提供的具体安全保障。
L2BEAT致力于改变这一现状,让相关信息变得透明可查。我们特别关注最终确定性——这是对抗双花攻击最强大的确认规则。
确认规则的双重属性:一致性与可用性
确认规则本质上是一套算法,用于在特定假设条件下判断某个区块何时可以被视为确认状态且不太可能发生重组。一旦区块获得确认,相关交易行为即可执行,无论是交付一杯咖啡还是完成车辆过户。
不同确认规则提供不同级别的安全保障,其安全特性主要取决于底层共识算法的两个核心维度:在网络分区情况下确保各节点视图一致性的能力,以及在大量节点离线时仍能维持交易处理的可用性。CAP定理清晰地指出,设计同时满足严格一致性和高可用性的共识算法是不可能的——面对严重网络分区时,节点要么选择继续出块而牺牲一致性,要么暂停运作以保持一致性。
这种困境源于节点无法区分其他节点是暂时离线还是处于不同网络分区。比特币采用的中本聪共识倾向于可用性,允许分区双方继续出块并在网络恢复后重组;而Cosmos等链采用的类PBFT共识则选择在网络分区时停止出块以保持一致性。
以太坊的确认规则体系
以太坊在网络分区情况下优先保障可用性,采用LMD GHOST算法。这使得诚实节点可能对链状态产生不同理解,导致区块重组。在正常网络条件下,以太坊还通过Casper FFG协议提供更强的一致性保证。最终确定性作为最严格的确认规则,通过硬编码确保已确认区块不可重组。
值得注意的是,已确定的账本始终是实时账本的前缀。当超过1/3验证者作恶时,最终确定性可能被破坏,但这种行为将导致巨额质押惩罚。用户可根据需求选择Casper FFG获取最高安全性,或使用LMD GHOST获得更快确认,后者类似于比特币的k-确认规则但更为复杂。
Rollup确认规则的复杂性
理论上,Rollup可以采用与以太坊相同的确认规则。当Rollup交易被包含在以太坊最终确定的区块中时,似乎可以认为该L2交易也已最终确定。但实际情况远非如此简单。
交易数据Rollup的处理方式与以太坊存在重要差异:在以太坊中,无效的状态根会导致整个区块被丢弃;而在Rollup中,由于数据发布和状态根提交是分离的过程,即使状态根无效,交易数据仍可保留。这种特性允许我们只需确认交易数据而无需等待状态根最终确定,从而避免Optimistic Rollup中长达7天的挑战期。
状态差异Rollup的验证挑战
状态差异作为状态转换的输出,其有效性需要通过零知识证明(ZK证明)来验证。由于证明生成需要时间,且存在将多笔交易打包进单个证明的经济激励,这导致了额外的确认延迟。证明聚合技术(如Starkware的SHARP系统)通过跨Rollup共享证明成本来优化这一过程,使得低活跃度Rollup也能受益。
Rollup规范性的实现难题
排序窗口带来的不确定性
当Rollup不采用固定顺序时,批次处理顺序由排序器决定,可能导致在L1上以不同顺序发布。以OP Stack链为例,其批次通过哈希链接,存在12小时的排序窗口期,期间节点需要等待可能遗漏的交易。这意味着L1上的发布并不等同于交易确认——如果批次未连接到规范链,仍存在构建不同分支的风险。
在OP Stack链的2秒区块时间设计中,每6个L2区块组成一个”时代”。L1至L2消息包含在对应L1区块时代的首个区块中。虽然这些交易在L2账本上的顺序已知,可以提前确认,但如果前序批次缺失,节点将无法计算包含这些消息的区块状态,导致状态根无法在L1上发布。
许可功能的影响
以Scroll为例,作为发布交易数据的ZK Rollup,理论上无需等待ZK证明即可确认交易最终性。但实际情况受其删除未验证批次功能的影响。
类似地,发布状态差异的zkSync采用三步流程:先提交数据,再提供证明,最后经过24小时延迟执行提款。虽然理论上提供证明即固定交易顺序,但zkSync仍保留区块回滚权限,历史上zkSync Lite已发生8次回滚。
状态差异Rollup的可观测性挑战
对于不发布交易数据的状态差异Rollup,如何验证交易包含性成为难题。虽然可以通过账户随机数等间接指标追踪,但这种方法存在局限性。最可行的解决方案可能需要修改应用逻辑来适应这种技术特性,即使对于EVM等效的Rollup也是如此。部分解决方案是发布交易根并在ZK证明中验证,但这仍依赖排序器提供Merkle路径。
活跃度指标的实践与局限
作为追踪最终确定性的第一步,L2BEAT开始监控Rollup的活跃度指标,重点关注交易批次与状态根提交间隔。活跃度可视为最终确定时间的下限指标——例如每2分钟提交批次的Rollup,其预期最终确定时间至少为1分钟。
观察数据显示,由于ZK证明的生成耗时和批量处理激励,zkSync Era的活跃度明显低于OP Mainnet。但值得注意的是,由于排序窗口的存在,OP Mainnet的实际最终确定时间可能更长。
活跃度指标的局限性在极端情况下尤为明显。例如Starknet虽然状态更新平均间隔32秒,但由于需要等待约30分钟发布一次的SHARP证明,且这些证明通常落后L2链6小时,实际最终确定时间接近6小时。
软确认的安全权衡
软确认是Rollup为缩短确认时间而采用的安全折衷方案,目前都依赖于对中心化排序器的信任。与Nethermind合作,我们计划评估这些方案的安全属性,并实时监控面临重组风险的资金规模。
未来工作展望
准确追踪最终确定时间是项复杂工程。我们计划首先监控ZK Rollup的证明提交间隔,建立最终确定时间的基准线;继而开发历史数据可视化工具;最终实现实时度量系统。这项研究将持续推进,敬请期待后续进展。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/11004.html