理想的區塊鏈應追求更極致的精簡,執行層若想要實現突破,必須進行根本性的變革。
原文:Long-term L1 execution layer proposal: replace the EVM with RISC-V
作者:vitalik.eth
編譯:Azuma,Odaily 星球日報
在這篇文章中,我將提出一個關於以太坊執行層未來的激進想法,其宏大程度與共識層的 Beam Chain 計劃不相上下。該計劃的目標是大幅提升以太坊執行層的效率,解決主要的擴展瓶頸之一,同時也能極大簡化執行層的複雜性 —— 事實上,這可能是實現簡化的唯一途徑。
本文的核心觀點是,用 RISC-V 取代 EVM 作為智能合約的虛擬機語言。
重要說明:
- 賬戶、跨合約調用、存儲等概念將完全保留。這些抽象機制運作良好且開發者已習慣使用。類似 SLOAD、SSTORE、BALANCE、CALL 等操作碼將成為 RISC-V 的系統調用。
- 開發者仍可選擇 Solidity 或 Vyper。雖然理論上可用 Rust 編寫智能合約,但預計大部分開發者會繼續使用 Solidity(或 Vyper),這些語言將通過適配 RISC-V 作為後端編譯目標 —— 這是因為 Rust 編寫的智能合約可讀性較差,而 Solidity 和 Vyper 更易理解。開發體驗幾乎不會改變,開發者可能完全感受不到差異。
- 新舊合約將實現雙向互操作。傳統 EVM 合約將繼續運行,並能與新型 RISC-V 合約完全交互。具體實現方式後文將詳述。
- 已有先例可循:Nervos CKB VM 本質上就是基於 RISC-V 的實現。
為何需要這種變革?
短期內,以太坊 Layer 1 擴容的主要瓶頸將通過即將推出的 EIP(如區塊等級訪問列表、延遲執行、分佈式歷史存儲以及 EIP-4444)得到解決;中期內,我們將通過無狀態性和 ZK-EVM 來解決更多問題;但長期來看,限制以太坊 Layer 1 擴容的主要因素將變為:
- 數據可用性採樣與歷史存儲協議的穩定性;
- 維持區塊生產市場競爭性的需求;
- ZK-EVM 的證明能力。
本文將論證,用 RISC-V 替代 ZK-EVM 能突破第 2 點及第 3 點中的關鍵瓶頸。
以下是 Succinct ZK-EVM 用於證明 EVM 執行層各環節所需的週期數統計表:

四個主要耗時環節為:“deserialize_inputs”(數據反序列化)、“initialize_witness_db”(見證數據庫初始化)、“state_root_computation”(狀態根計算)和 “block_execution”(區塊執行)。
“見證數據庫初始化” 和 “狀態根計算” 都與狀態樹有關,而 “數據反序列化” 指的是將區塊和見證數據轉換為內部表示的過程。因此,實際上超過 50% 的時間與見證數據的大小有關。
通過將當前的 “keccak 16-ary Merkle patricia tree”(keccak 十六叉 Merkle Patricia 樹)替換為使用證明友好型哈希函數的 “binary tree”(二叉樹),這些環節可以得到大幅優化。如果我們使用 “Poseidon”,我們可以在筆記本電腦上每秒證明 200 萬次哈希(相比之下,keccak 為每秒約 15000 次哈希)。除了 “Poseidon” 之外還有許多其他選擇。總的來說,有機會大幅削減這些環節的耗時。此外,我們還可以通過去除 “accrue_logs_bloom” 來進一步簡化流程。
現在只剩下了 “區塊執行”,它大約佔用了目前證明週期的一半。如果我們想將總體證明效率提高 100 倍,就必須至少將 EVM 證明效率提高 50 倍。現有兩種路徑:一是嘗試創建更高效的 EVM 實現,以減少證明週期;二是直接讓開發者使用 ZK-EVM 底層已採用的 RISC-V 虛擬機。
部分數據顯示,特定場景下效率提升可超 100 倍:

實踐中,剩餘證明時間將主要消耗於預編譯合約(precompiles)。若將 RISC-V 設為主虛擬機,gas 費用機制將反映實際的證明耗時,經濟壓力將促使開發者減少使用高成本的預編譯。儘管實際收益可能不及理論值,但預期仍將非常顯著。
值得注意的是,常規 EVM 執行中也存在類似的 “EVM” 與 “其他環節” 50/50 的耗時分配,我們直觀地認為,移除 EVM 作為 “中間層” 應能獲得相近幅度的效率提升。
實現方法
有多種方法可以實現上述提案。
破壞性最低的方法是支持兩種虛擬機,允許合約選用任一種虛擬機編寫。兩種類型的合約都可以訪問相同的功能:持久存儲(SLOAD/SSTORE)、ETH 餘額管理、發起和接收調用等。EVM 與 RISC-V 合約可自由互調:從 RISC-V 視角調用 EVM 合約將被視為攜帶特殊參數的系統調用(syscall),而接收調用的 EVM 合約則將其解析為普通 CALL 指令。
更激進的方案會將現有 EVM 合約轉換為調用 RISC-V 編寫的 EVM 解釋器合約來執行其原有的 EVM 代碼。具體而言,假設某 EVM 合約包含代碼 C,且 EVM 解釋器位於地址 X,則該合約將被替換為頂層邏輯:當外部以調用參數 D 發起調用時,該邏輯會向 X 發送(C, D)請求,等待返回值並轉發。若 EVM 解釋器自身需要調用合約以執行 CALL、SLOAD 或 SSTORE 等操作,合約將直接響應。
折中方案則是在第二種方案基礎上,通過協議層明確支持"虛擬機解釋器"概念 —— 即要求解釋器邏輯必須用 RISC-V 編寫。EVM 將作為首個官方解釋器,未來可能引入其他類型(例如 Move 語言解釋器)。
第二和第三種方案的核心優勢在於大幅簡化執行層規範。考慮到即使像移除 SELFDESTRUCT 這類漸進式簡化都困難重重,此類變革可能是實現簡化的唯一現實途徑。Tinygrad 項目嚴格規定代碼量永不超 1 萬行,理想的區塊鏈基礎層應追求更極致的精簡。Beam Chain 計劃為以太坊共識層的簡化指明方向,而執行層要實現類似突破,或許唯有通過此類根本性變革。
免責聲明:作為區塊鏈信息平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。
歡迎加入 Web3Caff 官方社群:X(Twitter)賬號丨微信讀者群丨微信公眾號丨Telegram訂閱群丨Telegram交流群




