原標(biāo)題:《Long-term L1 execution layer proposal: replace the EVM with RISC-V》
作者: Vitalik Buterin
編譯:KarenZ,bitget交易所
4 月 20 日,Vitalik Buterin 在 Ethereum Magicians 平臺(tái)提出一項(xiàng)關(guān)于以太坊長期 L1 執(zhí)行層的重要提案。他建議采用 RISC-V 架構(gòu)取代現(xiàn)有的 EVM(以太坊虛擬機(jī))作為編寫智能合約的虛擬機(jī)語言,旨在從根本上提升以太坊執(zhí)行層的運(yùn)行效率,突破當(dāng)前主要的擴(kuò)展瓶頸之一,同時(shí)大幅簡化執(zhí)行層的簡潔性。
bitget交易所 對(duì)該提案進(jìn)行了全文編譯,旨在幫助讀者了解這一技術(shù)設(shè)想。以下為提案原文的編譯內(nèi)容:
本文提出了一個(gè)關(guān)于以太坊執(zhí)行層未來的激進(jìn)想法,其雄心程度不亞于共識(shí)層的 Beam Chain 計(jì)劃。該提案旨在大幅提高以太坊執(zhí)行層的效率,解決主要的擴(kuò)展瓶頸之一,并顯著簡化執(zhí)行層——事實(shí)上,這可能是實(shí)現(xiàn)這一目標(biāo)的唯一途徑。
核心構(gòu)想:用 RISC-V 取代 EVM,作為智能合約編寫的虛擬機(jī)語言。
重要說明:
- 賬戶體系、跨合約調(diào)用、存儲(chǔ)等概念將完全保留。這些抽象設(shè)計(jì)運(yùn)作良好且開發(fā)者已習(xí)慣使用。SLOAD、SSTORE、BALANCE、CALL 等操作碼將轉(zhuǎn)變?yōu)?RISC-V 系統(tǒng)調(diào)用。
- 在此模式下,智能合約可用 Rust 編寫,但我預(yù)計(jì)多數(shù)開發(fā)者仍會(huì)繼續(xù)使用 Solidity(或 Vyper)編寫合約,這些語言將適配 RISC-V 作為新后端。因?yàn)橛?Rust 編寫的智能合約實(shí)際上可讀性較差,而 Solidity 和 Vyper 更清晰易讀。開發(fā)體驗(yàn)可能幾乎不受影響,開發(fā)者甚至可能察覺不到變化。
- 舊版 EVM 合約將繼續(xù)運(yùn)行,并與新版 RISC-V 合約完全雙向兼容。實(shí)現(xiàn)方式有幾種,本文后續(xù)將詳細(xì)探討。
Nervos CKB VM 已開創(chuàng)先例,其本質(zhì)上就是 RISC-V 實(shí)現(xiàn) 。
為何這樣做?
短期來看,即將實(shí)施的 EIP(如 區(qū)塊級(jí)訪問列表 、 延遲執(zhí)行 、分布式歷史存儲(chǔ)及 EIP-4444 )能解決以太坊 L1 的主要擴(kuò)展瓶頸。中期將通過無狀態(tài)性和 ZK-EVM 解決更多問題。長期來看,以太坊 L1 擴(kuò)展的主要限制因素將變?yōu)椋?/p>
- 數(shù)據(jù)可用性采樣和歷史存儲(chǔ)協(xié)議的穩(wěn)定性
- 保持區(qū)塊生產(chǎn)市場(chǎng)競(jìng)爭(zhēng)性的需求
- ZK-EVM 的證明能力
我將論證,替換 ZK-EVM 為 RISC-V 可以解決(2)和(3)中的關(guān)鍵瓶頸。
下表展示了 Succinct ZK-EVM 證明 EVM 執(zhí)行層各環(huán)節(jié)所需的周期數(shù):
圖表說明:四個(gè)主要耗時(shí)環(huán)節(jié)為 deserialize_inputs、initialize_witness_db、state_root_computation 和 block_execution
其中 initialize_witness_db 和 state_root_computation 與狀態(tài)樹相關(guān),deserialize_inputs 涉及將區(qū)塊和見證數(shù)據(jù)轉(zhuǎn)換為內(nèi)部表示的過程——實(shí)際上超過 50% 與見證數(shù)據(jù)大小成正比。
通過將當(dāng)前的 keccak 16-ary Merkle patricia tree 替換為使用使用易于證明的哈希函數(shù)的 binary tree,這些部分可以得到大幅優(yōu)化。如果使用 Poseidon,我們可以在筆記本電腦上 每秒證明 200 萬次哈希 值(相比之下,keccak 約為 15,000 hash/sec)。除了 Poseidon,還有許多其他選擇。總的來說,這些組件有很大優(yōu)化的空間。此外,我們可以通過 移除 bloom 來消除 accrue_logs_bloom。
剩下的 block_execution 約占當(dāng)前證明周期(prover cycles)的一半。若要實(shí)現(xiàn) 100 倍的整體證明效率提升,EVM 證明效率至少需要提升 50 倍。解決方案之一是為 EVM 創(chuàng)建更高效的證明實(shí)現(xiàn),另一方案是注意到當(dāng)前 ZK-EVM 證明器實(shí)際是通過將 EVM 編譯為 RISC-V 進(jìn)行證明,直接讓智能合約開發(fā)者訪問該 RISC-V 虛擬機(jī)。
部分?jǐn)?shù)據(jù)顯示在特定情況下效率提升可能超 100 倍:
實(shí)際應(yīng)用中,剩余的 prover 時(shí)間可能主要由當(dāng)前的預(yù)編譯(precompiles)操作占據(jù)。若將 RISC-V 作為主虛擬機(jī),Gas schedule 將反映實(shí)際證明時(shí)間,經(jīng)濟(jì)壓力將促使開發(fā)者減少使用高成本預(yù)編譯。即便如此,增益也不會(huì)如此顯著,但我們有充分的理由相信,這些增益將非常可觀。
(值得注意的是, 常規(guī) EVM 執(zhí)行 中 「EVM 操作」 與 「其他操作」 的耗時(shí)占比也接近 50/50,因此我們直觀認(rèn)為,移除 EVM 作為「中間層」將帶來同等顯著的增益)
實(shí)施細(xì)節(jié)
該提案有多種實(shí)現(xiàn)方式。破壞性最小的方案是同時(shí)支持兩種虛擬機(jī),允許合約任選其一編寫。兩類合約都能訪問相同功能:持久化存儲(chǔ)(SLOAD/SSTORE)、持有 ETH 余額的能力、發(fā)起 / 接收調(diào)用等。EVM 與 RISC-V 合約可互相調(diào)用——從 RISC-V 視角看,調(diào)用 EVM 合約相當(dāng)于執(zhí)行帶特殊參數(shù)的系統(tǒng)調(diào)用;而接收消息的 EVM 合約會(huì)將其解釋為 CALL。
從協(xié)議角度看更激進(jìn)的方法是將現(xiàn)有 EVM 合約轉(zhuǎn)換為調(diào)用用 RISC-V 編寫的 EVM 解釋器合約,運(yùn)行其現(xiàn)有 EVM 代碼。即,如果一個(gè) EVM 合約有代碼 C,EVM 解釋器位于地址 X,那么該合約將被替換為頂層邏輯,當(dāng)從外部以調(diào)用參數(shù) D 調(diào)用時(shí),調(diào)用 X 并傳入 (C, D),然后等待返回值并轉(zhuǎn)發(fā)。如果 EVM 解釋器本身調(diào)用該合約,要求運(yùn)行 CALL 或 SLOAD/SSTORE,那么合約就執(zhí)行這些操作。
折中方案是采用第二種方案,但通過協(xié)議明確支持「虛擬機(jī)解釋器」概念,要求其邏輯用 RISC-V 編寫。EVM 將是首個(gè)實(shí)例,未來還可支持其他語言(Move 可能是候選方案)。
第二和第三種方案的核心優(yōu)勢(shì)在于,它們可極大簡化執(zhí)行層規(guī)范。考慮到即使是移除 SELFDESTRUCT 這樣的漸進(jìn)式簡化都困難重重,這種思路可能是唯一可行的簡化路徑。Tinygrad 遵循「 代碼不超過 1 萬行 」的硬性規(guī)定,而最優(yōu)區(qū)塊鏈底層理應(yīng)能輕松滿足這一限制,并進(jìn)一步精簡。Beam Chain 計(jì)劃有望大幅簡化以太坊共識(shí)層,而執(zhí)行層若想實(shí)現(xiàn)類似提升,這種激進(jìn)變革可能是唯一可行之路。
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。