Optimism Bedrock Vs. Arbitrum Nitro,誰更勝一籌?

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表MarsBit官方立場。

小編:記得關注哦

來源:Lee Bousfield

原文標題:comparing Optimism Bedrock to Arbitrum Nitro,we made the choices Arbitrum

一位 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