Optimism Bedrock Vs. Arbitrum Nitro,谁更胜一筹?

Lee Bousfield热度: 21216

本文在博文《Optimism Bedrock vs Arbitrum Nitro》的基础上,详述了为什么选择Arbitrum。

原文标题:comparing Optimism Bedrock to Arbitrum Nitro,we made the choices Arbitrum

原文作者:Lee Bousfield

原文来源:Twitter

编译:Kate, Marsbit

一位 Optimism 开发人员 @norswap发表了一篇很棒的博文,将 Optimism Bedrock 与 Arbitrum Nitro 进行了比较!

我想我会解释为什么我们@Arbitrum做出了这样的选择,并在这边进行了更详细的说明。我建议阅读这篇博客文章

(A) 固定与可变区块时间

我们并没有完全做到每个块1tx。实际上,我们目前每秒最多创建4次区块,但如果没有新交易,我们会跳过创建区块。这最大限度地减少了获取交易收据的延迟。

我们是如何处理使用 block.number 进行智能合约的计时呢?在Arbitrum上,block.number 实际上返回*L1*块号。如果需要,可以从ArbSys预编译中获取L2块编号。

(B) Geth 作为库或作为执行引擎 + 状态存储

正如博文中提到的,这是因为Arbitrum 有更多的 L2 特定状态,例如 L1 和 L2 的 gas 定价,以及可重试系统。我们稍后再讨论!

(C) L1 到 L2 消息包含延迟

我们可以在必要时重组 L2(delayed_seq_reorg_test.go 演示了这一点),但我们真的希望尽可能避免它,因为它会伤害用户体验。我们的目标是永不重组 L2,为用户提供良好的稳定的体验。

(D) L1-to-L2 消息重试机制

重试机制肯定更复杂,但原因是:它们不依赖于 L1 上可信的L2 gas价格预言机来计算要收取多少费用。相反,你可以按L2 gas价格收费,如果价格太高,可以稍后重试。

(E) L2 费用算法

有了可变的区块时间,就需要更复杂的gas定价方案。不过,我们仍然深受EIP-1559的启发!

(F) L1 费用算法

我们想要避免的是测序仪过度收取费用,仅在 gas 价格低时发布批次,但使用所有 L1 gas 价格的移动平均值来收取费用。我们的 L1 定价器会跟踪批量提交者(poster)为防止这种情况而支付的费用。

(G) 防欺诈指令集

因为没有扩展的WASM没有线程,所以我们不需要对并发做任何额外的修剪。go编译器通过绿色线程直接处理单个WASM线程。

这种差异是让我们能够证明完整的 geth 的部分原因,而不是像 Optimism 的 Cannon 那样精简的 minigeth。我们只需要为 WASM 主机实现 Go 期望的 API,我们在这里的 WASM 模块中执行此操作:

https://github.com/OffchainLabs/nitro/blob/master/arbitrator/wasm-libraries/go-stub/src/lib.rs

(H) Bisection 游戏结构

这不仅是更少的哈希,你实际上不需要在 WASM 中执行任何没有争议的块!无论如何,我们仍然执行它们以确保安全,但没有必要参与rollup。

说到这一点,WASM 的一个优点是可以重新执行安全检查,我们可以使用现成的 WASM JIT 代替我们自定义的 WAVM 解释器。这使得检查WASM块的执行是否正确非常快!

JIT 验证器:https://github.com/OffchainLabs/nitro/pull/1079 添加一个更快的、JIT 加速的验证器,以确保有限硬件上块的正确性。

(I)原像预言机(Preimage Oracle)

我们实际上并没有明确地使用Preimage Oracle来解析任何 L1 数据。相反,因为我们在网桥中记录了每个批次的哈希值,所以我们有一个ReadInboxMessage操作码,它既可以检索该哈希值,又可以在一条指令中提取原像。

(J) 大原像

正如博文中提到的,我们通过简单地确保我们的原像足够小来避免这个问题。例如,我们对数据可用性批次进行默克尔化,以确保任何给定的原像都足够小,即使整个批次都不会如此。

(K) 批次和状态根

我们实际上并没有将我们的排序器批次与状态根绑定。排序器将每个批次发送到排序器收件箱,该收件箱将它们存储在网桥中,然后验证器将在使用一些批处理后发布一个RBlock来断言状态。

(L) 杂项

(i) 我很好奇,在处理之前,Optimism是如何知道它是否包含任何垃圾的。我假设“垃圾”包含一个发送者无法支付的tx,这取决于之前的状态。但是,在实践中没有人发布垃圾。

(ii) 如 (B) 中所述,我们有更多的状态,因此我们需要预编译,以使用户能够轻松访问该状态。

(iii) 我不确定这是否是我们为bisection估算 gas 成本的方式,但 hardhat-gas-reporter 对报告 gas 成本很有帮助。

总之:这是一篇很棒的博文,也是一个非常有趣的对比。一路走来,我学到了很多关于 Optimism Bedrock 的知识,我对rollup的未来感到非常兴奋!如果你和我一样兴奋,并且你读过了这个帖子,我们正在招聘

责任编辑:Kate

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。