作者:Yiping, IOSG Ventures
本文為IOSG原創(chuàng)內(nèi)容,僅做行業(yè)學習交流之用,不構(gòu)成任何投資參考。如需引用,請注明來源,轉(zhuǎn)載請聯(lián)系IOSG團隊獲取授權(quán)及轉(zhuǎn)載須知。本文所提及所有項目均不構(gòu)成推薦及投資建議。
隨著像 zkSync 和 StarkNet 這樣的 ZKRUs 推出主網(wǎng),Layer2格局正在迅速演變。傳統(tǒng)上,OPRUs 如 Arbitrum 是首個進入市場的,因而擁有更強大的生態(tài)系統(tǒng)。與之相反,ZKRUs 在技術(shù)上有所突破,提供更高的吞吐量和更低的費用。
近幾個月,更多的活動從Layer1遷移到了Layer2,以尋求更快、更便宜的交易。以太坊的TVL過去一年中從近 400 億美元降至 200 億美元。然而,Layer2的 TVL 呈現(xiàn)出不同的畫面,巨大的增長表明Layer2的采用正在加速。
Arbitrum 憑借超過 50% 的Layer2 TVL 市場份額領先,盡管 ZKRUs 也付出了努力。Arbitrum 的先發(fā)優(yōu)勢使其能夠保持主導地位。
分析每日交易數(shù)量顯示,像 zkSync 和 StarkNet 這樣的 ZKRUs 在吞吐量上略微超過 OPRUs。然而,Arbitrum 的生態(tài)系統(tǒng)優(yōu)勢依然存在,盡管在每日 TPS 上稍微落后。
OPRUs 出現(xiàn)的時間比 ZKRUs 長。然而,ZKRUs 正在推出他們的主網(wǎng),并從其他生態(tài)系統(tǒng)吸引用戶。作為 OPRU 領域的領導者,Arbitrum 預計將通過他們的新更新來對抗 ZKRUs 的崛起。
Arbitrum:Stylus
隨著開發(fā)者優(yōu)化零知識技術(shù)和成本,由于其可擴展性優(yōu)勢,ZKRUs 可能會繼續(xù)獲得市場份額。但是,Arbitrum 的網(wǎng)絡效應提供了盡管有競爭壓力也能保持穩(wěn)健的能力。通過像 Stylus 這樣的創(chuàng)新解決方案,Arbitrum 可以用獨特的技術(shù)能力補充其領導地位,并繼續(xù)在Layer2競賽中保持領先。
簡而言之,Stylus 是一個為 Arbitrum 設計的革命性新智能合約環(huán)境,它允許開發(fā)者用像 Rust、C++ 和 Solidity 這樣的編程語言編寫高效、互操作的程序。
它向區(qū)塊鏈開放了通用計算,并歡迎使用不同技術(shù)棧的開發(fā)者。
WASM
Stylus 通過添加一個與現(xiàn)有的以太坊虛擬機(EVM)并行運行的 WebAssembly(WASM)虛擬機來工作。編寫在可以編譯為 WASM 的語言的智能合約可以以比 Solidity 快 10 倍或更多的速度原生執(zhí)行,大幅降低燃氣費用。EVM 依然完全功能性,所以現(xiàn)有的 Solidity 合約仍然如同今天一樣正常運行。兩個 VMs 同步操作,允許用不同編程語言編寫的合約相互調(diào)用,同時還能修改相同的底層區(qū)塊鏈狀態(tài)。
自定義預編譯
此外,Stylus 也支持自定義預編譯(Precompiles)。
預編譯是 Ethereum 和 Arbitrum 上用于非常高效地執(zhí)行特定加密或?qū)嵱煤瘮?shù)的底層模塊。例如,有用于 ECDSA 簽名驗證和計算 SHA256 哈希的預編譯。
要添加新的預編譯需要所有驗證者協(xié)調(diào)升級 EVM,因此門檻很高。而使用 Stylus,開發(fā)者可以輕松地部署他們自己用 Rust 或 C++ 編寫的預編譯。
例如,一個團隊可以使用用 C 語言編寫的加密庫,并未經(jīng)修改地將其部署到 Arbitrum。這將允許這些加密原語以超快的本地速度執(zhí)行。
其他合約可以調(diào)用這個 Stylus “預編譯”,就像它們調(diào)用原生預編譯一樣,來利用該加密技術(shù)。所有的燃氣計量和欺詐證明都會自動工作。
這使得團隊能夠在沒有任何特殊鏈支持的情況下,原型自定義加密、特殊的基于配對的曲線和其他新型原語。以太坊研究者甚至可以通過在 Arbitrum 上以 Stylus 預編譯的形式部署它們,先行迭代 EIP 提案。
通過賦予開發(fā)者在鏈上原生地引入新的加密原語的能力,Stylus 大大拓展了可以構(gòu)建的內(nèi)容的范圍。預編譯不再僅限于 EVM 支持的功能。
Stylus 的工作原理
在深入探討 WASM 在區(qū)塊鏈宇宙中的更廣泛角色之前,理解 Arbitrum 如何協(xié)調(diào) EVM 和 WASM 的共存是至關(guān)重要的。這不僅僅是擁有兩個獨立的引擎;這是一種增強兩者優(yōu)勢的協(xié)同關(guān)系。
Arbitrum 的獨特架構(gòu)允許 EVM 和 WASM 之間進行無縫和同步的操作,這要歸功于其統(tǒng)一的狀態(tài)、跨 VM 調(diào)用和兼容的經(jīng)濟模型。
用 Solidity 或其他 EVM 語言編寫的智能合約會像往常一樣編譯為 EVM 字節(jié)碼。當執(zhí)行時,這些合約在 EVM 上運行,就像它們今天一樣。
對于編譯為 WASM 的語言,例如 Rust、C++ 和 C,工作流程是:
- 開發(fā)者使用現(xiàn)成的 WASM 編譯器,如 Clang 或 Rustc,將他們的智能合約編譯為 WASM。
- WASM 字節(jié)碼以壓縮形式上傳到 Arbitrum 鏈。
- 合約所有者調(diào)用 `ArbWasm` 預編譯的 `compileProgram` 方法,該方法為 WASM 進行安全工具設置,對其進行Gas成本計量,并將其編譯為針對驗證器硬件優(yōu)化的本地代碼。
- 當合約被調(diào)用時,它在像 Wasmer 這樣的 WASM 運行時上運行,比 EVM 快得多,從而節(jié)省了Gas Fee。
WASM 計量在每個基本塊之前收取Gas,而不是像 EVM 那樣按操作碼收費。這更為高效,確保合約不會失控。
EVM 與 WASM
這兩個虛擬機(VM)同步運行,允許它們在共享相同的全局狀態(tài)的同時互相調(diào)用。一個交易可能部分在 EVM 中執(zhí)行,部分在 WASM 中執(zhí)行,并且結(jié)果無縫地組合在一起。
等一下,兩個 VM 怎么能無縫地和同步地工作呢?
Polkadot 通過 XVM 實現(xiàn)這一點。與 Polkadot 不同,WASM 和 EVM 出于幾個關(guān)鍵原因可以在 Arbitrum 上無縫地和同步地工作:
- 單一狀態(tài):兩個 VM 都訪問相同的底層數(shù)據(jù)結(jié)構(gòu)和狀態(tài)Trie。一個 VM 中的合約可以讀/寫到另一個 VM 中的合約相同的位置。這提供了對鏈狀態(tài)的統(tǒng)一視圖。
- 跨 VM 調(diào)用:當一個交易與 EVM 合約交互時,Geth 處理它并提供一個結(jié)果。如果 EVM 合約隨后調(diào)用了一個 WASM 程序,WASM VM 接管以計算該部分的結(jié)果。
- 共享上下文:像區(qū)塊數(shù)據(jù)、發(fā)送者地址等系統(tǒng)信息對兩個 VM 都是可用的。一個 WASM 合約可以像 Solidity 合約一樣獲取區(qū)塊號。
- 單一共識:驗證者運行兩個 VM 以驗證交易并就正確的鏈狀態(tài)達成共識。爭議將調(diào)用統(tǒng)一的欺詐證明系統(tǒng)。
- 兼容的經(jīng)濟學:像Gas計量這樣的概念延伸到各個 VM,確保在任一環(huán)境中都有適當?shù)挠嬎愠杀竞唾Y源。
對于欺詐證明,驗證者會在 EVM 和 WASM 執(zhí)行中進行細分(bisect),以必要時識別任何無效的步驟。WASM 的結(jié)構(gòu)允許系統(tǒng)保證終止并強制證明的有效性。
區(qū)塊鏈 | WASM
Arbitrum 并不是唯一認識到 WebAssembly(WASM)變革潛力的平臺。Polkadot 和 Cosmos 也都將 WASM 整合到了他們的生態(tài)系統(tǒng)中,每個平臺都提供了一組獨特的優(yōu)勢和功能。
Polkadot 允許用戶用 WASM 開發(fā)智能合約,并支持兩種語言:一種嵌入式 DSL 的 AssemblyScript 和類似于 Rust 的 Ink!。
另一方面,Cosmos 使用 CosmWasm 作為其智能合約運行時,允許開發(fā)者用 Rust 編寫合約。
在深入研究區(qū)塊鏈行業(yè)為何如此接受 WASM 之前,有必要先了解 Cosmos 和 Polkadot 突出的具體優(yōu)勢:
Cosmos 強調(diào) WASM 的以下優(yōu)勢:
- 與 Rust 庫的兼容性
- 多樣化的開發(fā)者社區(qū)
- 增強的安全性,包括防止重入攻擊
- 易于測試
- 高性能
Polkadot 的 WASM 運行時具有這些特點:
- 高性能
- 與 EVM 的互操作性
- 平臺不可知性
- 緊湊的二進制大小
- 同時支持 Rust 和 AssemblyScript(TypeScript 風格)
盡管 Polkadot、Cosmos 和 Arbitrum 共享 WASM 提供的一些共同優(yōu)勢,但每個平臺也都有其自己獨特的屬性。
這些主要區(qū)塊鏈平臺對 WASM 的廣泛采用證明了其在行業(yè)中日益增長的重要性,這使得理解為何這項技術(shù)正在迅速成為現(xiàn)代區(qū)塊鏈架構(gòu)基石變得至關(guān)重要。
為什么選 WASM
WASM 是什么
為了理解區(qū)塊鏈和 WebAssembly(WASM)之間的協(xié)同作用,首先必須了解 WASM 是什么以及其發(fā)展背后的推動力。
WebAssembly 是一種二進制指令格式,使代碼能夠在 Web 瀏覽器內(nèi)以接近本機速度執(zhí)行。它作為一系列編程語言(包括 C 和 Rust)的編譯目標,旨在快速、高效且安全。WASM 有效地彌合了基于 Web 和系統(tǒng)級編程之間的鴻溝,從而提高了 Web 性能和功能。
“Web” 在 WebAssembly 中突出了其在 JavaScript 環(huán)境(通常在瀏覽器中找到)中運行的能力。在這些設置中,開發(fā)者可以完全訪問 WASM API,并且具有全面的 Web API 支持,賦予他們相當大的控制 Web 行為的能力。
WASM 歷史
遵循“一次編寫,到處運行”的原則,WASM 出現(xiàn)作為一組長期挑戰(zhàn)的有力解決方案。截至 2016 年,許多程序通過領域特定語言(DSL)引入新功能,這通常涉及維護、效率和安全之間的權(quán)衡。有越來越多的需求尋求一種解決方案,該方案可以在不影響這些方面的前提下,為無數(shù)服務器提供新功能。
評估了各種現(xiàn)有解決方案的不足:
- 系統(tǒng)虛擬機
- 頻繁啟動和關(guān)閉帶來過多的開銷
- 缺乏代碼可見性以確保安全
- 對性能需求過于抽象
- 容器
- 缺乏代碼可見性以確保安全
- 由于高級抽象而效率低下
- 頻繁操作帶來顯著的開銷
- 語言級虛擬機
- 需要頻繁修改以確保安全
- 嵌入式 VM,如 V8,資源密集型
- 適應新語言到安全模型緩慢
- 仍然過于抽象
- 指令集體系結(jié)構(gòu)(ISA)
- 難以有效沙箱
- 以前的 Google 項目從其轉(zhuǎn)向 WASM
- 缺乏成熟的實現(xiàn)
到 2018 年,WASM 開發(fā)獲得了動力,重點是在各種架構(gòu)、服務器、嵌入式硬件上運行,甚至支持多種語言。與 Java 不同,WASM 的設計沒有妥協(xié)安全性。到 2019 年,引入了一個組件模型以提升 WASM 模塊,實現(xiàn)跨語言互操作性。這允許了像一次編寫 HTTP 庫并在多種語言中使用它這樣的解決方案。
至今,WASM 擁有一系列功能,并在云原生場景(包括區(qū)塊鏈)中越來越多地被采用。其優(yōu)點包括:
- 高性能
- 緊湊的二進制大小
- 跨平臺可攜帶性
- 支持多種語言,如 C/C++、Rust、AssemblyScript 等
- 在 JavaScript 引擎中執(zhí)行
- 帶有內(nèi)存和 CPU 限制的強大沙箱
- 極快的啟動時間,通常在毫秒或更短時間內(nèi)
WASM 社區(qū)繼續(xù)努力實現(xiàn)跨語言的更大集成和性能。
了解 WASM 的歷史演變?yōu)槲覀兲峁┝擞袃r值的背景,用于了解其在各種設置(包括像 Stylus 這樣的區(qū)塊鏈項目)中的當前和潛在角色。這一背景讓我們在探索有關(guān) WASM 在區(qū)塊鏈生態(tài)系統(tǒng)中實現(xiàn)的問題和疑慮時,具備了細致的理解。
Stylus Q&A
語言支持
WASM 的發(fā)展歷程揭示了為什么 Stylus 是 Arbitrum 生態(tài)系統(tǒng)的一個令人興奮的補充,但它也突出了一些局限性和疑慮。其中一個疑慮就是語言支持。雖然 Stylus 確實擴大了 Arbitrum 開發(fā)者社群以包括像 C++ 和 Rust 這樣的語言,但它在接納流行語言如 JavaScript 和 Python 方面還有所不足。
雖然有初步的項目旨在將 Python 和 JavaScript 帶到 WASM,但由于垃圾收集和性能問題的挑戰(zhàn),這些努力尚未準備好廣泛采用。
語言兼容性
目前,Stylus 支持 C/C++ 和 Rust SDK,與這些語言的工具鏈無縫集成。開發(fā)者甚至可以在構(gòu)建智能合約時整合第三方庫,比如原生加密實現(xiàn)。做這樣的事的主要限制是相關(guān)的 gas 費用。
雖然 Rust SDK 還處于初級階段,Rust 和 C SDK 都有一些缺失的功能。例如,C SDK 不支持 ABI 導出函數(shù),而修飾符在兩個 SDK 中都還未得到支持。
目前,沒有本地 Stylus 測試環(huán)境,但開發(fā)者可以直接在 SDK 內(nèi)運行測試。對于部署智能合約,目前只有測試網(wǎng)是唯一的選項,并且它還不支持智能合約驗證。目前正在進行努力,以將各種 ERC 代幣和 **[Uniswap V2](https://twitter.com/evmcheb/status/1697537852522049990)** 引入 Stylus 生態(tài)系統(tǒng)。
語言選擇的困境
在領域特定語言(DSL)、嵌入式 DSL(eDSL)和通用語言之間做選擇需要在低級控制和高級抽象之間權(quán)衡。開發(fā)全新的 DSL 需要在工具鏈和生態(tài)系統(tǒng)開發(fā)上做出重大投資。與此相反,作為通用語言的子集,eDSL 允許更容易地與現(xiàn)有工具集成,并有更低的學習曲線。例如,在像 JavaScript 或 Python 這樣的流行語言中創(chuàng)建 eDSL 將是有益的。
通用語言需要使用 SDK,這引入了額外的工具,增加了冗長性,并減少了代碼的表達性,同時伴隨著更長的 API 調(diào)用和對象操作。
在語言選擇和 eDSL 開發(fā)之間找到正確的平衡可能是吸引更廣泛開發(fā)者社區(qū)的關(guān)鍵,同時提供用戶友好的工具。根據(jù)當前數(shù)據(jù)顯示,頂級加密開發(fā)者社區(qū)仍集中在以太坊周圍。然而,利用 Rust 進行智能合約的平臺,如 Polkadot、Cosmos 和 Solana,也在獲得關(guān)注,并在其開發(fā)者社區(qū)中快速增長。
性能
WASM 顯著提高了執(zhí)行速度并減小了包大小。雖然 Stylus 還未在主網(wǎng)上部署,但其他網(wǎng)絡的基準測試可以作為有用的參考。觀察到的執(zhí)行時間快了4-8倍,編譯后的大小減少了大約50%。
Stylus 目前對其合約設有大小限制,未壓縮時上限約為 128KB。這一限制使得將大型智能合約從其他語言(如 Solidity)移植過來變得具有挑戰(zhàn)性。在 Stylus 代碼庫中,該限制如下所述:
值得注意的是,WASM 在啟動和關(guān)閉時會產(chǎn)生一些開銷。對于輕量級操作,EVM 實際上可能比 WASM 更具成本效益。
與 EVM 的互操作性
EVM 和 WASM 共享相同的存儲槽和狀態(tài)樹,這有助于 Stylus 與 EVM 的互操作性。這是通過在 WASM 中實現(xiàn)的 EVM API 來實現(xiàn)的,使用流行的 Host I/O 模式。支持的 EVM API 的全面列表表明互操作性得到了全面支持。
自定義預編譯合約
這個方面尤為令人興奮,因為它代表了未知的領域。自定義預編譯合約有潛力以更低的執(zhí)行成本將額外的加密原語引入鏈上。它們還可以通過引入張量計算作為預編譯合約來降低推理成本。然而,目前似乎還沒有與自定義預編譯合約相關(guān)的現(xiàn)有代碼。雖然 EVM 組件存在預編譯合約,但它們不是熱插拔的。
這個功能可能仍在開發(fā)中,利用 WASM 的能力。EVM 可以調(diào)用用 WASM 編寫的函數(shù),然后將其編譯為機器代碼。
可重入功能
與 CosmWasm(采用沒有可重入功能的 Actor 模型)相反,Stylus 的 Rust SDK 默認情況下關(guān)閉了可重入功能作為一個功能標志。開發(fā)者有選擇手動啟用此功能的選項。
激活可重入功能將需要進行一些 API 調(diào)整。特別是在調(diào)用過程中刷新存儲緩存等安全預防措施方面,開發(fā)者需要小心謹慎。
洞見
Stylus 開放了一些在僅使用 EVM 時太耗費 gas 的新用例,如高性能加密、游戲和 AI。它還允許自定義預編譯合約,使開發(fā)者可以添加自己的加密和其他基礎功能,而無需等待升級。在過去,我們看到一些非以太坊生態(tài)系統(tǒng)采用了 WASM,如 Cosmos 和 Polkadot。這是以太坊社區(qū)首次采用 WASM??傮w而言,Stylus 代表了智能合約開發(fā)的重大進化,將有助于以太坊和 Arbitrum 實現(xiàn)擴容,同時與所有現(xiàn)有應用保持互操作性。
將 Stylus 集成到 Arbitrum 的Layer2 SDK 可為第三層開發(fā)者提供更大的靈活性。他們現(xiàn)在可以將以前超過 gas 限制的密集計算移到鏈上,從而打開新的可能性。開發(fā)者不再僅限于使用 Solidity,如果 Rust 或 C++ 更符合他們的需要和專長,也可以選擇這些語言。自定義預編譯合約允許無縫地將首選的加密、實用程序和其他助手函數(shù)遷移到鏈上以獲得最佳性能。以適應每個用例的語言直接編寫低級邏輯會導致更加流暢的開發(fā)。開發(fā)者可以專注于核心產(chǎn)品功能,而不是為了避免 gas 成本而采取權(quán)宜之計。通過消除語言和 gas 限制,Stylus 使第三層構(gòu)建者能夠從一開始就使用適合其領域的正確工具,構(gòu)建最高效的用戶體驗。
Stylus 也證明了 Arbitrum 有能力進行大規(guī)模革新,并且集成新的虛擬機。Ed Felten, Co-founder & Chief Scientist of Arbitrum & Offchain Labs 提到 Arbitrum 基于業(yè)界熱門工具和編程語言開發(fā)。他們可以更加迅速地編寫測試以及在原用系統(tǒng)之上開發(fā)新功能。OP 在 ZK 化的道路上走的更遠,已經(jīng)逐漸走向了混合 Rollup 的思路。Optimism 目前和 Risc0 合作,使用 Zeth 為 OPRU 生成零知識證明。使用這套解決方案,Optimism 并不用對 OPRU 進行額外的修改。如果你對 Zeth 感興趣,可以看我之前寫的[推特](https://x.com/glazecl/status/1709947992168710174?s=20)。
我們非常期待在 Arbitrum 上看到 AI 應用。目前,在鏈上進行機器學習非常耗費 gas,使得開發(fā)成本高昂。零知識 ML 可以降低成本,但也會為開發(fā)者帶來顯著的額外復雜性。如果我們能通過 Stylus 實現(xiàn)張量操作作為自定義預編譯合約,并以一小部分的成本原生執(zhí)行它們,那么就會為高性能的在鏈上機器學習打開新的可能性。通過讓開發(fā)者用他們熟悉的語言(如 Python)快速構(gòu)建和部署 ML 算法作為易于集成的預編譯合約,Arbitrum 可以推動 DeFi、GameFi 等領域的下一代 AI 創(chuàng)新。Stylus 的性能和靈活性將使我們能夠?qū)W⒂趧?chuàng)新的 ML 架構(gòu),而不是 gas 優(yōu)化。我們期待看到社區(qū)的創(chuàng)造力應用于這一新興范式。
免責聲明:本文不構(gòu)成投資建議,用戶應考慮本文中的任何意見、觀點或結(jié)論是否符合其特定狀況,及遵守所在國家和地區(qū)的相關(guān)法律法規(guī)。
歡迎轉(zhuǎn)載分享!
轉(zhuǎn)載請注明本文地址:
如有文章侵犯了您的權(quán)利,請聯(lián)系本站站長,我們將在第一時間刪除相關(guān)內(nèi)容,謝謝!