Arbitrum Nitro 白皮書速讀:如何更兼容 EVM 和降低交易成本?

Foresight News
2022-08-28 11:42:44
收藏
Arbitrum One 主網將於 8 月 31 日遷移至 Nitro,這是 Arbitrum 的對吞吐量、交易成本、效率改善的一次重大迭代,將與半個月公開發布的 Arbitrum Nova 共存。這意味著此前備受關注的 Odyssey 活動也可能會並行重啟。

來源:Offchain labs

編譯:Karen,Foresight News

Offchain Labs 在最新發布的 Arbitrum Nitro 白皮書中,將 Arbitrum Nitro 視為第二代 Optimistic Rollup,相比之前的 Rollup,Nitro 能夠提供更高的吞吐量、更快的最終確定性和更有效的爭議解決方案。

Arbitrum Nitro 技術的核心是一個新的證明器(prover),可以在 WASM 代碼上進行 Arbitrum 的互動式欺詐證明。也就是說, L2 Arbitrum 引擎可以在 WASM 上運行,取代一直定制設計的 AVM(Arbitrum EVM)架構,可以使用標準的語言和工具來構建和編譯。

將 Geth core 直接編譯到 Arbitrum 中是 Nitro 最酷的地方,Geth 實際上定義了以太坊標準的 EVM 引擎。所以本質上,Nitro 是在以太坊之上的 Layer2 運行 Geth,並且可以證明對編譯為 WASM 的 Geth 核心引擎的欺詐。

Arbitrum 此前也表示,Nitro 有著優化過後的批處理和數據壓縮組件,能進一步降低 Arbitrum 的交易成本,並且具有以太坊 L1 Gas 兼容性等,除此之外,欺詐證明、排序器、代幣橋也是 Nitro 的組件。由於 Nitro 建立在 WASM 和 Geth 等標準技術之上,因此它更兼容 EVM。根據白皮書,改進過後的 Nitro 相較 Arbitrum One,效率更高,延遲性更低,激勵兼容性也更好。

Arbitrum 實現這些屬性的設計原則包括:

  • 將事務排序與確定性執行分開;
  • 將現有的以太坊模擬軟體與擴展相結合,並實現跨鏈功能;
  • 分別編譯執行和證明;
  • 使用基於互動式欺詐證明的 Optimistic Rollup 協議將交易結果放置在 Layer1。

一、排序和確定性執行

Nitro 分兩個階段處理提交的交易,排序器(Sequencer)進行交易排序,並將訂單作為實時流和壓縮數據批次發布在 Layer1 鏈上。這些交易會按確定性狀態轉換函數一次處理一個有序交易,該函數更新鏈狀態並生成 Layer2 區塊,這些區塊稍後會結算到 Layer1 鏈。

具體來說,排序方面,排序器受信任且誠實地對傳入交易按照先後順序進行排序,目前以兩種方式發布其事務排序,首先發布一個排序交易的實時流,代表排序器最終以特定順序記錄交易的承諾;其次,Sequencer 在收集一批交易後,然後使用通用算法 brotli 對其進行壓縮來降低成本,並將結果傳遞給 Nitro 鏈的 Inbox 合約(在 L1 以太坊上運行)。一旦 Sequencer 到 Inbox 的交易在以太坊上具有最終性,Nitro 鏈的交易順序就是最終的。

目前排序器是由 Offchain Labs 运营的集中式組件,未來打算使用公平分佈式排序協議過渡到基於委員會的排序器。

確定性執行方面,在對傳入交易進行排序後,Nitro 鏈會使用鏈的狀態轉換函數(STF)對其進行處理,輸出更新的狀態並生成 Layer2 區塊。

二、軟體架構:Geth at the Core

Nitro 將 Geth 編譯進來是 Nitro 的第二個關鍵設計理念,Geth 指的是以太坊節點軟體 go-ethereum。Nitro 中的 core 執行和狀態維護功能由開源 go-ethereum (geth)package 代碼處理,確保其執行和狀態與以太坊高度兼容。

構成 Nitro 節點的軟體可以被認為是內置在三個主要層中,分別為基礎層------Geth core(模擬 EVM 合約執行和維護構成以太坊狀態的數據結構)、中間層(ArbOS)以及頂層,其中,ArbOS 是一個軟體層,實現了管理 Layer2 鏈所必需的功能,包括記帳功能、支持 Nitro 和 Layer1 以太坊之間的雙向安全跨鏈調用以及特定於 Layer2 的費用跟蹤和收集。

跨鏈交互方面,Nitro 的跨鏈消息傳遞功能還可用於創建代幣橋,這是一個允許在以太坊和 Nitro 鏈之間有效轉移資產的應用。Offchain Labs 團隊已經實施並發布了一個非正式代幣橋,提供對可替代代幣的存入或提款功能。另外,新的和改進的批處理和壓縮系統也能最大限度地降低 L1 成本。

頂層則由節點軟體組成,處理來自客戶端的連接和傳入的 RPC 請求,並提供操作與以太坊兼容的區塊鏈節點所需的其他功能。

三、執行與證明分開

Nitro 通過對執行和證明使用相同的源代碼,但針對這兩種情況將其編譯為不同的目標。在編譯 Nitro 節點軟體執行時,使用的是普通的 Go 編譯器,為目標架構生成原生代碼,當然對於不同的節點部署會有所不同。

另外,狀態轉換函數部分的代碼由 Go 編譯器編譯為 WebAssembly(WASM),這是一種類型化的、可移植的機器代碼格式。然後,WASM 代碼經過簡單的轉換和修改,轉換成稱為 WAVM 的格式。

白皮書指出,WAVM 在三個主要方面與 WASM 不同,分別為去除了 WASM 的一些 Go 編譯器沒有生成的特性;限制了 WASM 的一些功,包括去除了浮點指令和不包含嵌套控制流;添加了一些操作碼以實現與區塊鏈環境的交互等。

如果對計算狀態轉換函數的正確結果存在爭議,則通過參考 WAVM 代碼的互動式欺詐證明協議來解決。

四、具有互動式欺詐證明的 Optimistic Rollup

在最初的 Arbitrum 設計的基礎上,Nitro 使用改進的 Optimistic Rollup 協議,該協議使用優化過後的互動式欺詐證明協議。

這個 Rollup 協議是 Nitro 用於確認 Layer2 鏈狀態和 Layer1 以太坊上的相關數據的方法。 Layer2 用戶通常不會等待 L1 確認,而是依賴確定性狀態轉換函數,該函數允許從記錄的交易序列中得出交易結果。

該 Rollup 協議產生了一條 Rollup Blocks(RBlock)鏈,與 Layer2 區塊不同,一個 Rollup Block 通常包裝(encapsulate)了一系列 Layer2 區塊,因此 RBlock 的數量遠少於 L2 塊。最初一個 RBlock 代表某方聲稱 RBlock 的數據是正確的。最終,每一個這樣的聲明要麼被協議確認,要麼被拒絕後從 RBlock 鏈中刪除。這組已確認的 RBlock 將從創世 RBlock 開始形成一條鏈。

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
banner
ChainCatcher 與創新者共建Web3世界