子承诺:链下最终确定性——快速、安全且廉价

本文为机器翻译
展示原文

亚历杭德罗·兰查尔-佩德罗萨撰写。

我们要感谢Luca DonnoJonas Theis对本文初稿的深思熟虑的评论和意见。

Rollup 通过在链下处理交易并定期向 Layer 1(L1)提交简洁的正确性证明,实现了卓越的可扩展性。虽然这保证了快速的链上最终性(可由 L1 智能合约验证),但用户对快速的链下最终性的需求日益增长——确保Rollup排序器确认的交易即使在数据在 L1 上完全提交和验证之前也不会被撤销。

快速链下最终确定性的挑战

为用户提供快速的链下最终性存在着固有的挑战:

  • 安全问题:如果在 L1 上提供不可逆的交易数据承诺之前信任排序器,则依赖快速确认的用户可能会面临双重支付攻击的风险。
  • 高数据可用性(DA)成本:立即将交易数据提交给 L1 可确保链下最终性,但会显著增加运营成本。

因此,当前的设计将链下最终性直接与即时 DA 发布结合在一起,从而迫使在延迟、安全性和成本之间进行权衡:安全性要么以高 DA 成本为代价,要么以高延迟为代价。

图像
图片1424×1054 34.2 KB

随着时间的推移,对 blob 的需求一直在稳步增长,如下图所示的每日 blob 数量图表所示(最近的飙升是由 pectra 升级中的新 6 个 blob 目标引起的)。

图像
图片1110×448 27.7 KB

随着时间的推移,随着以太坊生态系统对吞吐量的需求不断增加,对来自多个 rollup 的 blob 的需求将持续稳步增长,同时,由于拥堵导致的 blob 价格也将上涨,从而加剧 DA 成本与链下最终确定性之间的权衡。

引入子承诺

子承诺打破了这种权衡,它无需在链上发布 DA,即可提供快速的链下最终确定性。子承诺是常规、频率较低的承诺(会在链上发布 DA)的补充。子承诺包含 L2 账本的简洁表示,因此,在本地持有与 L2 状态转换对应的数据的用户可以独立验证这些数据,从而实现快速安全的链下最终确定性。

图像
图片1424×1054 61.5 KB

由于消除了 DA 成本、安全性和延迟之间的权衡,子承诺可带来两个主要好处

1. 更便宜的交易费用:

  • 由于无需支付 Blob 费用即可立即获得链下最终确定性,DA 现在仅对链上最终确定性而言是必需的。因此,排序器可以灵活地决定何时在最佳时间提交完整数据,从而利用更低的 Blob 价格和更好的数据压缩率(例如,当 Blob 费用较低时,一个 Blob 中可以同时处理更多交易,这意味着每笔 L2 交易的费用更低,并且/或者Rollup的利润更高)。
  • 预计几分钟/小时内完整交易数据的 L2 交易数量的压缩效率将超线性增长,如果 DA 包括提交 State Diff,那么在大多数情况下更是如此。
  • 此功能对于 zk rollups 至关重要,因为 optimistic rollups 面临着尽快提交完整交易数据的压力,需要尽快启动挑战期,并且不进一步延迟链上最终确定性,而 zk rollups 则不存在这一要求。因此,子提交是 zk rollups 可以用来在价格方面与 optimistic rollups 竞争的新武器,同时获得相同的链下最终确定性延迟,并显著降低链上最终确定性的延迟。

2.更高的安全性:

  • 用户可以通过自行提交子承诺 (DA) 独立地将已验证状态锚定到 Layer-1 上,从而减少对排序器的依赖,或避免受 Layer-2 系统默认的链下最终确认频率约束。虽然用户可以通过适当的设计直接提交 DA 来实现,但对于追求更高安全性和更低延迟的用户来说,收取如此多的额外成本是不合理的。子承诺可以以合理且恒定的成本有效地实现此功能,无论被锚定状态转换的 DA 大小如何。

子承诺如何运作

子提交是简洁的元数据(通常是加密哈希值),它唯一地表示了一次 L2 状态转换(例如,L2 区块序列的哈希值)。排序器会定期(例如,每 30 分钟)提交这些子提交,其频率明显高于完整的 DA 承诺(例如,每 12 小时)。

或者,测序器还可以提供子承诺即服务:通过对子承诺的元数据进行签名并在链下分发元数据和签名,用户可以自由提交由测序器自己签名的子承诺,并获得比系统默认提供的更低延迟的链下最终性(例如,一个应用程序转移了大量资金并且不信任测序器,想要为用户提供他们习惯的安全性和延迟级别,可以决定在前一个子承诺之后 10 分钟进行子承诺,或者比测序器提交的默认子承诺快 3 倍)。

好的情况。因此,在排序器诚实的良好情况下,子提交协议如下:

  1. Sequencer 定期提交子承诺,或者用户提交由 sequencer 在链下分发和签名的子承诺。
  2. 观察 L1 上的子承诺并根据其本地数据进行验证的用户可以放心地信任相关的链下状态。
  3. 完整的交易数据承诺和证明稍后会进行优化,以降低 blob 费用并实现更好的压缩。
图像
图片915×721 20.1 KB

测序器的不当行为。承诺可用于链下最终确定性,因为即使测序器出现故障,它们也能提供安全性保证。因此,为了使子承诺能够提供链下最终确定性,我们需要考虑测序器的不当行为。如果测序器出现故障,它可能会破坏良好的情况,例如:(i) 不提交子承诺;(ii) 提交不正确的子承诺(其数据对任何人都不可用,或仅对测序器可用)。

如果定序器未提交子承诺,则Rollup会按照其通常的承诺频率运行。同样,已知的用于防止定序器出现此类不当行为的机制(强制批次、去中心化承诺ETC)也可用于子承诺。

如果排序器提交了错误的子承诺, Rollup就会面临一个问题:这些错误的子承诺与排序器以外的任何人所知的交易数据都不对应。由于承诺和证明必须与子承诺匹配,因此在问题解决之前, Rollup无法继续进行。这种情况会导致一个关键的边缘情况,即可能需要撤销子承诺

撤销子提交:为了处理错误的子提交,协议必须定义明确的超时期限。如果排序器未能在此超时期限内提交并证明状态转换,则可以安全地撤销有问题的子提交。在正常情况下,由于及时提供了正确的承诺和证明,因此不会达到此超时期限。

图像
图片783×459 11.9 KB

防止序列器滥用:允许子承诺回滚会带来新的风险——恶意序列器(与恶意证明器协作)可能会故意回滚有效交易,从而引发双花问题。为了解决这个问题,协议设置了一个更短的超时期限,任何人都可以在该期限内提交有效的承诺和/或证明。此机制确保即使序列器行为不当,网络依然安全,并且如果子承诺正确,交易仍然可以最终确定。如果序列器未能在去中心化承诺期开始前提交,他还可能会被削减一定数量的权益,这笔钱可以用来补贴甚至奖励去中心化提交者。除了去中心化的承诺和证明之外,强制模式也可以作为一种防范此类攻击的措施。

图像
图片879×629 17.6 KB

这种两层超时结构(分散干预的较短超时和撤销子承诺的较长超时)平衡了安全性和操作稳健性。

结论

子承诺是Rollup技术的重大改进,它为 zk-rollup 带来了一项关键的竞争优势:将 DA 成本与快速的链下最终确定性脱钩。这项创新降低了成本,增强了安全性和灵活性,使 zk-rollup 比其他乐观的替代方案更具优势。最终,子承诺使用户和应用程序能够安全高效地充分利用以太坊扩容的全部潜力。


相关赛道:
来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
2
收藏
2
评论