上期影片已經做好囉:一口氣了解BTC L2 的發展典範~
https://www.bilibili.com/video/BV1dw411575M/?vd_source=e88bbc11f1ecd88d1c5847538efee51c
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 上的平行實踐,它們更需要解決排序器的中心化問題,效率已經足夠高。
並行EVM 並不神秘,我在行文中省去了各項目的讀寫機制設計、TPS 對比、數據記錄和狀態同步等技術細節,普通人完全沒必要了解這些東西,牢牢記住當前處於樂觀驗證打滿全場,樂觀驗證就是先執行再排錯的想法即可,如果有更新,我會為大家及時補充。
參考文獻:
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