Alt L1 的競爭已經白熱化,Near 推出 DA 解決方案,Sui 的 TVL 一路攀升,只有以太坊還在不緊不慢搞主網升級,L2 浮現並行 EVM 和去中心化排序器兩大競爭點。
在當下和未來,一個基本事實是以太坊的地位已經很難撼動,模塊化的概念將會泛化,如果 Vitalik 對 Celestia 的打壓不成功,那么市場會擇優選擇,組合和模塊化不止發生於同一體系內,市場原則會促使項目方自由組裝各要件,比如各公鏈、L2 和比特幣間組合可用性,BTC L2 的火熱即是明證。
如果 Near 能幹 DA 的活,那么 Aptos、Solana 和 Sui 等高性能公鏈也就能被「 L2 化」,最終被以太坊兼容和吞並。
並行 EVM 可以被理解爲並行化的 EVM 兼容鏈 /L2,可以從區塊鏈速度入手,理論上解決區塊鏈運行緩慢只有兩個辦法:
- 加碼硬件,不斷調優。比如 Solana 的硬件配置獨一檔的高,「機房」的管理和配置可以讓 Solana 享受超高網速和提升吞吐量;
- 多核並行,多线並發。硬件提升後,多核心便可真正實現多任務,此外,不斷將任務切分細化也可提升效率,這也是計算機通用做法。
默認硬件利用已經達到極致,那么並行 EVM 可以從以下三個層次去進行分類和理解:
- 並行是計算機領域的通用做法,任意公鏈和 L2 都可使用。比如 Aptos、Sui 和 Solana 等 Alt L1,或者 Sei 這個宣稱自己是第一個兼容 EVM 的 L1,以及 Scroll(2024 路线圖)、Lumio、Eclipse 等以太坊 L2 項目,還有 Neon EVM 等異構鏈上的兼容 EVM 解決方案,Neon EVM 就屬於 Solana 生態,也宣稱自己是第一個兼容 EVM 的。
- 並行 EVM 狹義上指能夠兼容 EVM 的 L1/L2,理論上以太坊自己也可以實行並行化改造,這是最符合定義的並行 EVM,但是動作太大幾乎不可能存在;
- 並行 EVM 廣義上可以擴展,任意並行計算鏈,無論自身是否兼容 EVM,只要可以打通和 EVM 的鏈接,就可以歸屬在內,比如將 Aptos 作爲以太坊的「加速器」。
考察非 EVM 兼容的 Alt L1 也具備特殊意義,它們可以被接入 EVM 生態,此外,Aptos 所开創的 Block-STM 方案也成爲衆多新興並行 EVM 方案事實上的模版和思路來源,下文會詳述。
前置:线程、進程、並行和並發和 EVM 的通俗說明
我沿着並行 EVM 拆解的思路將其歸類,但是對並行概念說明仍不完備,如果接下來直接講項目實現的邏輯,會讓人不得其解,簡直是以其昭昭使人昏昏。
同樣,諸如「進程是資源分配的最小單位,线程是 CPU 調度的最小單位」之類的解釋雖然專業,但也對大多數人不甚友好,我想以买瓜爲例來說明這個過程。
先鋪墊一下,我們的計算機最底層是物理硬件,其上才是操作系統和各類應用,計算機在處理任務時,就是根據優先級將軟硬件資源分配出去,我們以華強买瓜來說明這個過程:
线程、進程、並行和並發的關系
- 華強騎車要去买一個西瓜,這是個單一行爲,也是最小單位,是一個线程,一個西瓜此時就是能調用的物理硬件資源,多了沒有;
- 兩個華強要一起去买一個西瓜,這是個復合行爲,因爲有兩個華強要喫瓜,但是要注意,此時仍然只有一個西瓜,多了也沒有。並且兩個華強約好了一起去砍西瓜,誰不去誰就不是兄弟,那么此時兩個華強买瓜就是一個進程,每個華強喫瓜仍然是一個线程,因此一個進程裏包括了兩個线程。
這個時候,只有一個西瓜但是要多個人喫的情況就是並發,這裏的重點是大家一起喫西瓜,要保證每個人都能最起碼喫上一口,因爲不論喫瓜的人有多少,他們之間如何分座位、先後,都不影響一瓜多喫的最終結果。
聰明的你一定看出問題來了,爲啥非得這么多人一起喫西瓜,开西瓜攤的老板本質上是水果店老板,你還可以喫香蕉啊,說的對,這就是需要供給側改革的原因,現在老板宣布,香蕉也上市了,那么此時物理資源(水果)就增加了,華強可以分爲兩列分別取喫不同的水果,這就是並行,兩行並列,各喫所愛。
(防槓聲明:上面的解釋比較通俗但不專業,如有爭議,以程序員認知爲准,我是半吊子出身)
下一步將它們和 EVM 組合到一起,組裝出並行 EVM 的真正涵義。
EVM 雖然經常被提起,但是其真正指向卻含混不清,尤其是虛擬機(VM,virtual machine)總是給人一種脫實向虛的感覺,其實,不較真的說,虛擬機就是特化的操作系統,程序員不需要面向物理實體搞开發,只需要在軟件層面適配就行。
簡化一下 EVM 的作用就是交易,用戶提交指令,隨後 EVM 會按照用戶的需求,如轉账、SWAP、質押還是其他需要和智能合約交互的行爲都會被一一執行。這裏的重點是指令和一一執行,EVM 可以理解用戶的需求,但是執行需要排隊,不能隨意改變順序。
所以並行 EVM 本質上就是改變了執行順序,允許多個智能合約(指令)同時進行,相當於掛攤老板僱工,他賣西瓜,小弟賣香蕉,最終掙錢了還是老板的。
EVM 說明
最典型的就是我前一篇文章提到的 BTC L2 們,現在的 BTC L2 基本上都是想給比特幣接入 EVM 生態,其實他們自己就是個比特幣上的虛擬機,开發者面向他們开發,就不需要考慮比特幣自身架構和編程語言的限制,可以用熟悉的 EVM 开發流程一步到位。
EVM 與此同理,極端一點說,如果你是個前端,那么甚至可以在完全不了解硬件、操作系統原理、以太坊原理的基礎上面向文檔开發,只需要看懂 EVM 开發工具和接口的說明,比如寫出某個 DEX 的前端界面(只做理論說明,實際上非常復雜)。
一言以蔽之,虛擬機(VM)是摒除硬件和原理後的加工作坊,比如是華強买瓜要做西瓜汁,那么虛擬機就是榨汁機,一杯西瓜汁只需要三步:开蓋、放入西瓜、榨汁,完事。
同理,EVM 就是以太坊的榨汁機,兼容 EVM 就是 L1/L2 买的拼多多平替榨汁機,雖然存在一些瑕疵,但是也能用,而並行 EVM 就是多個榨汁機一起工作。
不是手工用不起,而是榨汁機更有性價比。
最後,並行 EVM 概念重出江湖,本質上是以太坊只能依次處理單筆交易帶來的速度限制,其主網 TPS 只能穩定在 10 左右,BNB Chain(BSC) 等較爲中心化的 EVM 兼容鏈也只能提到到 200 左右,在物理硬件沒有革命性突破,以及以太坊自身無法改造爲並行機制的前提下,並行 EVM 賽道將長期火熱,畢竟,沒有人會嫌速度快。
現狀:樂觀驗證成爲共識,Move 系漸有救駕之勢
並行和 VM 的概念早已有之,但是引入到區塊鏈,尤其是並行 EVM 概念,其實是以 2022 年爲起點,Aptos 發布了《Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing》的論文,隨後 Polygon PoS 鏈便在當年底嘗試加入了該功能,不僅如此,Aptos 在這篇論文中提出的諸多方案和思路也成爲行業共同選擇,需要予以介紹。
並行 EVM 相關項目及分類
夢想起點:Block-STM
可以這樣說,Aptos 是區塊鏈並行化的集大成者,雖然 Solana、Near 已經有所探索,但是 Aptos 在區塊鏈中應用的的 STM(軟件事務內存,Software Transactional Memory)重新對交易進行排序,核心思路是先假設排序後的交易都是對的,並行執行後發現有不對的,單獨解決個別不對的,按照二八定律,這樣大部分的交易都可以得到加速執行,此所謂樂觀驗證機制,和 Rollup 中的樂觀驗證機制思路基本一致。
Block-STM
具體而言,Block-STM 將區塊鏈的執行過程分爲兩個階段:排序階段和執行階段。
- 排序階段,Block-STM 使用 STM 來對交易進行排序,以確保交易的順序性;
- 執行階段,Block-STM 利用排序結果來並行執行交易,從而提高執行效率。
自此之後的並行 EVM 基本上都與此類似,只不過排序和執行上存在實現差別,以及要增加對 EVM 的兼容,比如 Neon EVM 和 Polygon PoS 都屬於此類。
Sui 改造:一切皆對象
Sui 和 Aptos 師出同門,二者高度相似,但是最大差別在於 Sui 以對象(Object)爲核心,比如在 Alice 給 Bob 的轉账流程中,作用方式如下:
- Aptos:Alice 账戶減去 1 USDT,Bob 账戶加上 1 USDT,涉及到兩個账戶的記账信息和余額變動;
- Sui:1 USDT 保持不變,只改變其所有權屬性,將所有權由 Alice 變動爲 Bob,這樣只涉及 1 USDT 的信息改動;
如你所見,Sui 的出發點不是考察交易雙方的账戶,而是涉及對象的屬性變化,由此推廣,不僅是代幣轉移,也可以是 NFT 等資產。
再延伸一下,如果一個資產只涉及點對點之間的屬性變化,其實並不需要同步全節點,只要雙方認可該交易即可,如此一來,此類交易都可並行處理。
當然,二者的具體實現要復雜的多,並行也會帶來很多問題,但是了解到此處已經足夠。
Solana 和 Neon EVM:借殼上市
Solana 本身的並行處理是通過 Sea Level 機制來實現,和 Block-STM 類似(其實應該顛倒,Sea Level 提出於 2019 年,Block-STM 提出於 2022 年),都是需要對交易排序,然後再執行。
Solana 的「創新」在於對硬件資源的專項優化,理論上不僅可以對所有指令進行排序,並且優化後的多线程可以發揮處理器的全部效能,達到高並發的效果,TPS 理論值 5 萬,實測高峰可達 5 千左右。
那么這和 Neon EVM 的關系在哪裏呢?
Neon EVM 花費
Neon 要做的就是同步 EVM 的交易信息,然後用 Solana 來運算,這樣既可以利用 EVM 生態的 dApp 豐富度和安全保障,也可以利用 Solana 來提速降費,相較於以太坊主網的昂貴和緩慢,Neon 的授權、轉账、存借基本上在 0.1 甚至 0.01 美元以下。
不太恰當的說,Neon 把 Solana 變成了以太坊的另類 L2,觸類旁通,L1/L2 EVM 不僅可以自己實現並行,其實也可以當中介,自身只負責兼容 EVM 或者只做 L1/L2,而把剩下的部分外包出去。
這也是开頭我說,泛化的模塊化的真正含義,L1/L2 並行 EVM 完全可以是三個項目的組合產物,甚至是跨鏈組合,如此一來,玩法就多種多樣了。
Sei V2 和 Monad:一起开心,字節兼容
從技術實現上而言,Sei V2 和 Monad 非常相似,兩者都是對以太坊的字節級兼容 EVM,其實在並行思路上,都不約而同選擇了熟悉的樂觀驗證,先排序,能執行的就執行,出錯了,再單獨解決依賴項。
Sei V2 並行方案說明
當然,成熟的產品和思路大家都能用,但是要注意,如同 BTC L2 一樣,真正的技術創新並不多,仍然是以「組合」爲主,Solana 是唯一大規模實踐並行,並且軟硬件搭配跑出高並發效果的 L1,其他的更多是「兼容 EVM+ 並行」的套餐裝。
大家肯定能想到,既然 Solana 能被當做加速器,那么 Aptos 等也可以,事實上,Lumio 也是這么想的,只要自己作爲中介,一面兼容 EVM,一面實現並行,那么都可以被稱爲並行 EVM,故此,不對 Lumio 再做過多說明。
結語:並行 EVM 的困境
在本文中,我着重強調的是並行 EVM 的核心是硬件資源的調配和任務的排序執行,兩者缺一不可,軟件優化的上限是物理硬件的參數限制,畢竟博爾特也沒法超越光速,但是並行 EVM 目前主要都是對 Aptos 的 Block-STM 的改造和模仿,這也是基本事實。
此外,目前不需要過度探索以太坊 L2 上的並行實踐,它們更需要解決排序器的中心化問題,效率已經足夠高。
參考文獻:
Sealevel — Parallel Processing Thousands of Smart Contracts
awesome-parallel-blockchain
Parallel Computing
Introduction to Parallel Computing Tutorial
Sei v2 - The First Parallelized EVM Blockchain
https://docs.monad.xyz/
MT Capital: Understanding Parallel EVM: Project Overview and Future Perspectives
Parallel Power Unlocked
https://neonevm.org/whitepaper.pdf
Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing
https://github.com/MystenLabs/sui/blob/main/doc/paper/sui.pdf
Built for Speed: Under the Hoods of Aptos and Sui
Innovating the Main Chain: a Polygon PoS Study in Parallelization
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。