上個月,我們宣布了Optimistic Ethereum 歷史上最重大的升級—— OVM 2.0。最近,我們將Optimistic Kovan 遷移了,使其真正能夠一鍵部署以及提高了其穩定性。並且,將在未來的三週內上線主網,
但是本文並不是關於一鍵部署或者漸進式改善。
本文主要介紹了EVM Equivalence (完全與以太坊虛擬機規範相一致) 將如何成為L2 領域的下一個通用標準。
Optimistic 爭議協議的簡史
首先,一起來回顧一下rollup 的發展歷史。
Rollup 的開端
Optimistic L2 解決方案都與爭議有關。如果你認為以太坊是一個全能的、去中心化的法庭,那麼L2 擴容的核心觀點便是:“不要去法庭兌現支票—— 如果支票被退回再去。”
實際上,可擴展性的研究在過去六年可以歸結為一件事:什麼樣的“拒付支票”可以被強制執行。首先,只有一組預先商定的參與可以在彼此之間進行交易(狀態通道)。接著就是,任何人都可以交易,但也有可能被審查(plasma)。終於,我們把審查問題也解決了(rollups)。
在rollup 之前,我們已經知道如何在所有這些模型上運行智能合約—— 只是沒有任何意義。畢竟誰想要在幾個朋友之間運行Uniswap 或者要被審查一周呢?而rollup 能夠承諾給我們提供真實的、類似於以太坊交互體驗的L2。
兼容時代
當然,僅僅“承諾”提供一個真實的、類似於以太坊交互體驗的L2,並不代表能夠真正創建實現。在構建首個L2 AMM Unipig 時,我們必須使用與rollup 爭議合約兼容的自定義代碼重新創建Uniswap —— 而不是利用EVM 本身來構建。
由於Uniswap 的設計相對簡單,上述的構建方式是可行的。然而連Solidity 這麼基礎的東西都不能再用了,實在不是一個好兆頭。對於非開發者來說,Uniswap 是目前最簡單的DeFi 智能合約之一,如果連Uniswap 也要大改一番才能方便地實現兼容rollup,這真不是一個好現象。
到目前為止,以太坊的發展速度之快,早已超過了逃逸速度(escape velocity)。呈指數級增長的以太坊生態系統根本無法圍繞非EVM 接口進行重新架構。因此,L2 除了要提供“原始”規模之外,它還要確保L1 的法院系統與EVM 的差異最小化。這迫使rollup 同時在以下兩個方面開創先河:
構建可擴展的、產品級別的rollup 基礎設施
解決長期以來就讓人難以接受的的EVM-in-EVM (在EVM 裡構建EVM) 問題。
以太坊的圖靈完備性( Turing-completeness) 意味著它確實可以解決這些問題,但在我們的研究過程中,我們發現,如果想要在合理的時間範圍內將以太坊遷移到L2 上,我們需要犧牲一些東西,做出妥協。
這種妥協也就是我們後來所稱的EVM 兼容性(EVM “Compatibility”)。
EVM 兼容性的論點很簡單:只要以太坊的應用程序可以合理地移植到rollup 上運行—— 不管這是如何在幕後完成的—— 我們就可以追上以太坊的逃逸速度。
“這算是兼容性嗎?”
乘風破浪
起初,這種妥協取得了一些成功。在2020 年,由於許多用戶從以太坊轉移到了其他L1 競爭鏈上(這些鏈打著“費用低廉”的幌子而罔顧安全性和價值),我們競相推出了OVM。在今年1 月份,Optimism 上線主網,10 個月過去了,我們已經處理了數百萬筆交易,為用戶節省了數億美元的交易費。
但是以太坊網絡效應產生的逃逸速度有多種形式,並從以太坊L1 的交易活動飆升這個現象可以看出,其他L1 鍊和L2 所缺乏的是:以太坊L1 所擁有的基礎設施。過去六年來,遍布世界的以太坊社區成員合力將以太坊從一個簡化的原型變成一個更加完善的系統:
成千上萬的開發工具已深度集成到EVM 中。
價值數十億美元的公司的出現,只為了給以太坊的節點軟件提供服務以及完善其運行。
以太坊本身的交易處理速度越來越快了。
以太坊網絡效應的浪潮只會越來越大。由於一切都是開源的,人們可能會期望這些巨大的勝利同樣也能在L2 上發生。
然而並沒有達到大家的預期。
EVM 兼容性(EVM compatibility) 與EVM 等同性(EVM equivalence) 是有區別的,僅僅滿足於兼容性意味著你被迫修改(甚至需要完全重新實現) 以太坊的基礎設施也依賴的低級代碼。如果L2 想要從以太坊基礎設施網絡效應所帶來的浪潮中獲得一些好處,它們必須要具有EVM 等同性。
在Optimistic Ethereum 上線並運行發展之後,我們發現越來越多以太坊工具難以部署在Optimistic Ethereum 系統上,這是由於我們老舊的EVM 兼容性設計理念造成的。
我們知道我們能做得更好。為了真正讓大眾用上OE,我們需要的不僅僅是與EVM 合約兼容;相反,我們要做到從根本上實現與EVM 本身等同。
EVM 等同性能夠幫助填補以太坊L1 的基礎設施網絡效應和以太坊L2 的執行環境之間的缺口。
EVM 等同性: 借助以太坊的EVM 應用浪潮
什麼是EVM 等同性?
簡而言之:EVM 等同性也就是與以太坊黃皮書的規範(該協議的正式定義) 完全相符。根據定義,L1 以太坊軟件必須符合該規範。
深入到最本質來說,這意味著現有的以太坊堆棧也將要與L2 系統集成。每一個調試器、每一個工具鏈以及每個節點實現都要和L2 集成。我們相信,任何提供任何EVM 開發體驗的L2 都必須滿足這一標準—— 一丁點達不到標準都不可接受。
為什麼需要EVM 等同性?
從最開始,我們就在以太坊最具有魯棒性和最普遍的實現“Geth” 上構建了我們的軟件—— 這是我們實現產品級的以太坊L2 的唯一可行途徑。 OVM v1 引入了一種容器化系統(containerization system),它基於Geth 的EVM 構建,有助於避免在L1 上繁瑣地重新實現整個EVM。
這種組合在早期取得了一些勝利,但由於EVM 並不原生地支持容器化,所以這不是免費的。即使對於我們以Geth 為中心的團隊,這些變化也開始上漲起來。隨著Optimistic Ethereum 的發展,EVM 等同性的力量不容忽視:
像Solidity、Vyper 和Hardhat 等項目無私地致力於開發OVM 版本的開發工具,但我們這樣做冒著將這些已經資源受限的團隊去中心化的風險。這給我們上了一課,團隊需要投入相當的人力來維護非EVM 等同的代碼庫。
隨著每一行代碼的改變,採用像Erigon 這樣的實驗性實現變得更加困難。也就是說,我們總是需要花人力來負責集成未來的客戶端實現
與現有的超級優化版本相比,重新實現部分EVM 帶來了一些gas 開銷。這告訴我們,最小化gas 成本需要EVM 等同性的設計方案。
是時候尋求更優的解決方法了,儘管這需要單調乏味的工作。
如何實現EVM 等同性?
幸好,比起在EVM 中繁瑣地重新實現EVM,我們找到了更好的辦法。這就是你要做的。
將區塊產生和執行分離
在實踐中,我們確實需要對L2 化的以太坊進行一些更改:尤其是如何產生區塊。在L1 上,節點通過PoW 共識機制來確定區塊;在L2 上,通過將批量交易的batches 發送到“父鏈” (L1 以太坊) 上來應用這些交易。如果某個L2 使用它自己的PoW,那麼它將變成一個L1所以,從這個層面來說,這種“等同性”毫無意義。
區塊鏈模塊化的一個核心模式就是將共識與執行分離—— 也就是說,確定和執行下一個區塊的過程不同。我們可以藉用這個模式在L2 中使用。基本上,我們只需定義一個函數:接收L1 區塊,對其中的rollup 交易進行處理,然後產生L2 區塊—— 與L1 區塊的格式完全相同。這之後,L2 的執行便可以定義為等同於L1。
Eth2 Merge API
那麼,現有L1 客戶端實現中的共識/執行模塊化的現狀如何?好吧:它即將要在所有以太坊實現中標準化。
事實證明, ETH2 合併和具有EVM 等同性的rollup 需要同一種抽象:信標鏈之於PoW 鏈的“父鏈”角色與L1 之於rollup 的角色完全相同。這將使得在L2 中使用L1 客戶端變得非常簡單。
執行標準
好了,我們已經介紹了為什麼EVM 等同性能夠讓我們實現一個強大的、模塊化概念以及完成一個及其簡單的客戶端實現。但我們如何在鏈上執行這種操作呢?首先,這種模塊化的強大之處在於其靈活性—— 只要某個解決方案等同於EVM,我們就能夠用它。這意味著不管是對欺詐證明的改進,還是EVM 等同的零知識證明(如果可行的話),都可以輕鬆地嵌入現有的鏈下堆棧中。
然而,在短期內,我們目前需要一些可行的方案—— 我們找到了。有一個方案是這樣的,在Solidity 中實現一個完美的EVM 等同實現,但是EVM 十分複雜, 含有許多VM 指令,因此這是一項十分浩大的任務。此外,未來對EVM 的更新也必須在Solidity 中重新實現。
我們的解決方案是:不是在Solidity 中實現EVM,而是實現一個具有更小、更簡單指令集的VM,並在欺詐證明期間在該VM 中運行EVM。為此,我們必須簡單地編譯一個現有的EVM 編譯器,例如geth,以便在更簡單的VM 中運行。
太長不讀:我們允許Geth 本身在一個爭議友好的環境中運行。由於Geth 具有EVM 等同性,它的環境也如此。這樣的話,我們就不用在鏈上重新實現EVM,並針對EVM 未來的升級對系統進行未來驗證。
我們正在與我們最喜歡的編譯器專家George Hotz 合作,共同構建首個EVM-等同證明系統。進展令人興奮—— 自倫敦硬分叉以來,系統已經可以運行所有L1 塊。通過欺詐證明運行L1 區塊是一個有趣的、反直覺的想法—— 但這正式EVM 等同性所需要的
哇—— 關於這種方案還有很多令人興奮的事情要說,但我們必須把剩下的內容留給以後的帖子
展望以太坊的未來
如果以太坊要實現其以rollup 為中心的願景,那麼rollup 必須以以太坊為中心。
這便是EVM 等同性所提供的。
欺詐證明永垂不朽
這種以Geth 為中心的模塊化設計不僅是供我們使用的優雅實現—— 這將朝著大眾化欺詐證明基礎設施的目標邁出一大步。目前,想要安全地設計並推出一款rollup,需要深入了解L2 的爭議博弈設計,以及它們如何與節點軟件協同運作。這極大地限制了大家的創新空間—— 想像一下,如果每個web 開發者還必須成為IP 網絡、系統管理和微芯片製造方面的專家,這多讓人崩盤啊。
未來的rollup 將非常簡單,以至於不需要L2 專家來部署。這意味著,L2 將不再在“如何”或“是否”提供安全性上競爭,而是在它們提供的安全性內容方面競爭。競爭的內容包括:
性能、穩定性和正常運行時間
網絡效應、生態系統專門化和社區
抗MEV 性以及定序工具
總而言之,這意味著具有EVM 等同性的各個rollup 會就其去中心化的程度競爭。這是整個生態系統民主化的巨大勝利,這也將使得整個行業更加反脆弱和抗審查。
這也意味著我們的團隊終於可以專注於我們的核心能力—— 這也是最重要的部分—— 構建世界上最快、最可靠、最安全的L2 Geth。
以太坊兼容性的束縛已經解除。
讓以太坊成為標準
EVM 等同性的的威力歸根到底就是它幫我們實現了標準化。
在一個多鏈的世界中,“一份代碼走天下”變得尤其關鍵。一次性編寫好代碼,就可以在任意鏈上部署,這聽起來不是很吸引嗎?
擁有許多“兼容”的鏈,每條鏈都略有不同,這會導致碎片化:從需要單個EVM 專家團隊處理單個代碼庫,到需要為每條鏈的每個代碼庫組建EVM 專家團隊。
Vitalik 將EVM 比作Javascript (甚至在他第一次公開EVM 的時候就提出了這個概念),這個類比在這種情況下得到了很好的體現。在互聯網的早期,瀏覽器之間的不兼容性(說得就是你,IE 瀏覽器) 困擾著web 開發,並導致開發者和生態系統分裂。
Web3 是關於協調和開源標準的,而等同性讓EVM 有望成為標準 —— 以避免重複過去的錯誤。
即使這個標準不斷發展,我們的L2 也可以毫不費力地協同發展。 L1 和L2 攜手向前發展,鎖死。
這種好處是雙向的—— 幾乎所有的以太坊EIP 都可以在L2 上應用,並且rollup 將成為一個令人興奮的全新創新實時測試環境。想像一個位於激勵測試網和主網之間的rollup,在自然環境下驗證新的交易類型、預編譯和EOFs,在它們廣播至L1 之前測試不可預見的結果。
DeFi 最大的其中一個障礙就是,隨心所欲地測試,沒有東西可以替代DeFi 的實時環境。你無法在一個測試網上“重新創建” DeFi,所以當你想測試更改時,總是需要“在產品中測試”。
EVM 等同性允許我們在實時環境中測試EIP,並對以太坊整體環境進行更安全、長期的改進,而無需進行“硬分叉”。
以太坊是我們永遠的重心
我們最近啟動了關於追溯性公共物品募資機制的首個實驗。 100 萬美元的協議收入將很快分配給有利於以太坊生態發展的公共物品有些人問我們,為什麼這些錢會分配給整個以太坊系統,而不是僅僅分配給Optimistic Ethereum 生態系統。
希望通過本文理解了EVM 等同性後,大家能明白為什麼:我們源自相同的生態系統。
Layer2 長期以來都承諾推動以太坊成為一個多鏈的系統,充滿活力的城市深入探索這個新網絡空間的邊界。雖然我們可以預期這些鍊是多樣化且豐富的,但EVM 等同性為這些鍊和以太坊之間帶來了新的連接—— 不僅僅是作為結算層,而是成為其組成的最深層次部分。
來源| Optimism PBC Blog
資訊來源:由0x資訊採集自互聯網。版權歸作者“ETH中文”所有,未經許可,不得轉載