Arbitrum Stylus:智慧合約可組合性的新標準



Arbitrum Stylus 旨在通過統一 EVM 的執行環境和 WASM 的執行環境來創建智慧合約可組合性的新標準。

撰寫:Rachel Bousfield、Jay Yu

編譯:深潮 TechFlow

注:此文來自於斯坦福區塊鏈評論,深潮 TechFlow 為斯坦福區塊鏈評論合作夥伴,獨家獲授權編譯轉載。

Arbitrum Stylus:智慧合約可組合性的新標準插图1

介紹

從在 Etherscan 上處理位元組碼到防範 Solidity 中各種代碼漏洞,區塊鏈開發的 EVM 技術棧與許多開發者熟悉的 Web2 技術棧(如 Rust、C++或 Python)相比,存在著很大的差異,因此在 Solidity-EVM 技術棧和主流語言之間形成了“鴻溝”。隨著區塊鏈領域的不斷發展,迫切需要彌合這一開發者差距,實現更加可組合的 Web3 開發。

在本文中,我們將介紹Offchain Labs 的最新專案 Arbitrum Stylus,該專案在 Stanford 區塊鏈週期間的 Blockchain Applications Stanford Summit(BASS)會議上首次亮相。Arbitrum Stylus 是一個具有里程碑意義的專案,旨在通過統一 EVM 的執行環境和 WASM 的執行環境來創建智慧合約可組合性的新標準。首先,我們將討論該專案背後的一些動機,然後深入探討一些專案的實施細節,最後討論該專案在 Web3 領域的影響。

Arbitrum Stylus 的動機

Arbitrum Stylus 的開發旨在解決區塊鏈開發中的兩個關鍵問題:(1)區塊鏈開發的可訪問性,以及(2)智慧合約的執行效率。

讓區塊鏈開發變得更簡單

Arbitrum Stylus:智慧合約可組合性的新標準插图3

根據 Electric Capital 的開發者報告,目前每月活躍的區塊鏈開發者約為20,000人。儘管這個數位在過去幾年有了很大增長,但與主流通用語言(如 Rust 或 C++)的數百萬(甚至數千萬)開發者相比,仍然相差甚遠。隨著區塊鏈領域的不斷發展,需要簡化吸引數百萬新智慧合約開發者的過程。

其中一種最佳方法是將智慧合約開發過程與現有的主流語言(如 Rust 或 C++)整合在一起。許多非 EVM 生態系統,如 Solana 和 Cosmos,採用了這種方法,Rust 成為了這些生態系統的事實上的智慧合約語言。然而,到目前為止,EVM 生態系統主要依賴於其自己獨特的編程語言 Solidity 來編寫智慧合約。然而,Arbitrum Stylus 旨在通過允許區塊鏈開發者使用 Rust 等主流語言編寫智慧合約,然後部署在相容 EVM 的區塊鏈上來改變這種情況。

讓智慧合約執行更高效

在過去的幾年中,隨著去中心化應用的普及,對鏈上計算的需求大幅增加,特別是在以太坊網路上。網路需求的激增導致了高昂的 Gas 費用。這進一步推動了公共區塊鏈交易吞吐量的提高方面的創新,而 Arbitrum 是這一領域最突出的專案之一。這包括旗艦專案 Arbitrum One L2 鏈以及 Arbitrum Nitro 技術棧。

Arbitrum Stylus 是所有這些的自然延伸,也是 Arbitrum 工具包的最新解決方案。與之前的解決方案不同,這些解決方案側重於優化交易之間的效率(如通過 Rollups 批量處理交易),Stylus 側重於優化交易內部的執行級別,特別是每個交易的執行方式。通過允許合約在 WebAssembly(WASM)中執行,Stylus 合約執行速度更快,承諾較低的 Gas 費用,並且訪問內存的成本比使用 EVM 便宜 100-500 倍。

Stylus:提供 WASM + EVM 可組合性

WebAssembly 和 Arbitrum Nitro

要理解為什麼 Stylus 比傳統的 EVM 引擎更高效和可組合,首先需要了解 WebAssembly 或 WASM 的作用。WASM 是一種組合語言,這意味著它基本上是機器可讀的二進制代碼,而不是像 Rust 或 C++這樣的人類可讀語言。這些人類可讀語言需要一個“編譯器”將它們轉換為機器可讀的“組合語言”,然後才能執行。

特別是,WASM 是一種為 Web 瀏覽器優化的組合語言,旨在提高主要基於 Javascript 的 Web 應用程式的執行速度。通過成為一種便攜、模塊化和易於執行的組合語言,WASM 允許開發人員直接在各種主流語言(如 Rust 或 C++)中編寫代碼片段。

隨著 Arbitrum 的 Nitro 升級,因為鏈上的所有爭端都在 WASM 中執行,這意味著 Nitro 對任意 WASM 的任何爭端都有一個有效的欺詐系統。由於 Arbitrum Nitro 能夠為任何 WASM 代碼提供欺詐證明,這意味著它可以為任何編譯成 WASM 的程式提供欺詐證明。

Arbitrum Stylus 主要在 Arbitrum Nitro 繼承的 WASM 欺詐證明的基礎上添加了一個 WASM 執行引擎,基於其中一種主要的 WASM 引擎 Wasmer,該引擎執行代碼速度比 Geth 執行 EVM 位元組碼快得多。具有執行引擎和證明引擎,這使得智慧合約可以完全在 WASM 中編寫、執行和證明。鑑於許多主流語言(如 Rust 和 C++)能夠直接編譯成 WASM,這也是 Arbitrum Stylus 允許區塊鏈開發人員在各種主流通用語言中編寫、部署和執行智慧合約的方式。

Arbitrum Stylus:智慧合約可組合性的新標準插图5

EVM +引擎的一致性

Arbitrum Stylus 為開發人員提供了在不放棄使用 Solidity 編寫和執行智慧合約的能力下,使用 Rust 和其他 WASM 相容語言編寫合約的額外選項。通過同時具有 EVM 和 WASM 兩個平行的執行引擎,Stylus 還為開發人員提供了一個選項,可以在應用的一部分中使用 Solidity,另一部分中使用 Rust。

然而,這引發了一個問題:Stylus VM 如何管理兩個不同引擎之間的一致性?它如何知道何時在 EVM 和 WASM VM 之間切換?

首先,Solidity 和其他基於 EVM 的合約被編譯成相同的位元組碼,然後像在純 EVM 引擎中一樣執行。基於 WASM 的智慧合約,比如用 Rust 編寫的合約,將在合約開頭附加額外的“標頭”。因此,當調用這些合約時,Stylus VM 能夠識別哪些合約需要 EVM 引擎,哪些合約需要 WASM 引擎。這種設計也考慮到了很大程度的互操作性,編寫成 WASM 的合約可以調用以 Solidity 編寫的合約,反之亦然。這也是 Stylus 不同於其他採用 WASM 執行引擎的區塊鏈的主要方式:Stylus 確保 WASM 合約與 EVM 合約完全可組合和互操作,允許向後相容性以及 WASM 合約可以利用 EVM 流動性。

從另一個角度來看 Stylus 的 EVM 和 WASM 雙引擎,可以將區塊鏈視為一個"世界狀態機",它根據 EVM 中定義的某些狀態交易而經歷特定的狀態轉換。在以太坊中,鏈上狀態是通過 Trie 結構來表示的,Trie 是一種用於高效存儲和檢索數據的樹形數據結構。Stylus 的 EVM 和 WASM 引擎都使用相同的 Trie 結構來讀取和寫入數據到"世界狀態機"中。兩種引擎都會產生一些給定的狀態變化以更新世界狀態;唯一的區別在於它們如何計算這個狀態變化。

從 EVM +引擎中實現的成本節約

前面我們已經提到,使用 WASM 執行引擎可以實現顯著的成本節約,因為它提高了執行效率。現在我們可以看看如何實現這一點。為此,讓我們考慮一個簡單的 ADD 指令,例如 2 + 3。

在 EVM 中,我們需要執行以下步驟:

  • 支付 Gas 費,需要多次查找內存表;

  • 考慮追蹤,即使禁用了;

  • 從類比堆棧中彈出兩個專案;

  • 將它們相加;

  • 將結果推送。

我們可以看到,只有步驟 4 實際上涉及這兩個整數的加法,而所有其他步驟都是 EVM 系統內的“樣板指令”,與計算本身相比都會消耗高昂的 Gas 費。

另一方面,假設我們使用 WASM 執行這個簡單的 ADD 操作。我們只需要一步:

  1. 執行單個 x86 或 ARM ADD 指令。

Arbitrum Stylus:智慧合約可組合性的新標準插图7

我們可以看到,這比EVM的加法便宜 150 倍。鑑於所有這些 Gas 節約,Stylus VM 甚至引入了一種新的“Gas”子單元,稱為“ink”,目前默認定義為 1/10000 的 1 個 Gas,甚至可以由鏈的所有者進行配置。

然而,所有這些 Gas 節約有一個限制,即需要 Gas 來激活 Stylus VM,目前設置為 114,000,000Gas 的固定費率。此外,調用 Stylus 程式本身目前需要大約 128-2048Gas。因此,僅為了優化兩個整數的單個 ADD 操作而激活 WASM 環境可能並不經濟。然而,對於內存密集型的智慧合約,所有這些節約將相互補償,抵消了這種“激活成本”。例如,在 EVM 中分配 3.8 MB RAM 的調用將花費約 3200 萬 Gas,而在 Stylus WASM VM 中只需要 64000Gas,節省了 500 倍。與此相關的一個推論是,內存密集型應用在純 EVM 上根本不可行,因為很快就會遇到各種 Gas 限制。然而,在 Stylus VM 中,使用 WASM 運行時後,這變得完全可行,因為 RAM 使用 WASM 運行時成本較低。

使用 Stylus 解鎖的新用例

  1. 內存密集型應用

如上所述,Arbitrum Stylus 最令人興奮的部分之一是它在鏈上啟用了內存密集型應用。這為全新的應用類別打開了大門,例如生成式 AI NFT、高頻交易和鏈上游戲。實際上,Stylus VM 可能是一項里程碑技術,允許 AI(以其高內存需求而著稱)在鏈上具有計算性能,並與 EVM 合約完全互操作。

  1. Alt-VM 與 EVM 流動性的可組合性

此外,Stylus 的 EVM 相容性以及允許基於 WASM 的合約與原生 Solidity 合約互操作的能力意味著這些 WASM 合約可以充分利用 EVM 上的巨大流動性和用戶群體。回想一下,我們之前提到許多替代 VM,如 Solana 和 Cosmos,使用了支持 WASM 的語言,如 Rust,來執行他們的智慧合約。Stylus 的 WASM 引擎意味著這些替代 VM 中的開發者可以輕鬆地將他們的合約遷移到 EVM 生態系統,並立即利用 EVM 的流動性。

  1. 通用庫、預編譯和調試基礎設施

Stylus 允許開發者使用像 Rust 和 C++這樣的主流語言來編寫智慧合約的另一個優勢是,開發者可以利用支持這些主流語言的大量通用庫,這些庫包含從鏈上計算到加密原語到檔案 I/O 等各種內容。

更重要的是,開發者可以從為這些主流語言構建的複雜工具基礎設施中受益。這不僅包括先進的包管理器,還包括熟悉的調試基礎設施,比如 C/C++中的 GDB 工具包。所有這些都可能極大地提高 Web3 的開發熟悉度,並使區塊鏈開發和 EVM 堆棧的入門過程變得更加簡單。

  1. 將鏈上計算引入物聯網以用於 DePIN

由於 WASM 的執行效率提高,Stylus VM 可以打開整合鏈上計算與物聯網(IoT)中的便攜設備的大門,包括從交通信號燈到智慧冰箱再到智慧手錶等一切。雖然 WASM 最初是為瀏覽器環境設計的,但它的便攜、模塊化架構和高效執行使它成為物聯網設備的理想選擇,這些設備需要小型和高效的運行時 。

因此,Arbitrum Stylus 的 WASM VM 是日益增長的分散式物理基礎設施網路(DePIN)趨勢的自然選擇,這些網路旨在利用區塊鏈網路和新穎的代幣激勵來維護從 WiFi 系統到太陽能電池等物理基礎設施 。由於 DePIN 的許多方面依賴於將區塊鏈堆棧與物聯網設備集成,Arbitrum Stylus 可以成為重要的入口,允許這些設備既高效地運行基於 WASM 的計算,又通過 Arbitrum 生態系統來獲取 EVM 流動性 。

結論

在本文中,我們深入探討了 Arbitrum 的動機、實施和影響。通過使開發者能夠使用各種主流語言編寫和部署智慧合約,Stylus 使區塊鏈開發變得更加易於訪問和高效,將主流可組合性與 EVM 流動性相結合,以解鎖各種新穎應用,尤其是那些內存密集型的應用。因此,Stylus 可以說是定義可組合智慧合約下一代的里程碑專案,成為一個能夠模糊 web2 和 Web3 開發之間界限的平臺,創建一個更加高效、集成和高性能的區塊鏈開發堆棧。

聯系郵箱:0xniumao@gmail.com