並行不止 EVM,高性能 L1(Sui)大戰乙太坊 L2 ? 花開花落樹之常,能上能下人中強。

作者:佐爺歪脖山

封面:SUI

上期視頻已經做好啦:一口氣瞭解 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 可以從以下三個層次去進行分類和理解:

  1. 並行是計算機領域的通用做法,任意公鏈和 L2 都可使用。 比如 Aptos、Sui 和 Solana 等 Alt L1,或者 Sei 這個宣稱自己是第一個相容 EVM 的 L1,以及 Scroll(2024 路線圖)、Lumio、Eclipse 等乙太坊 L2 專案,還有 Neon EVM 等異構鏈上的相容 EVM 解決方案,Neon EVM 就屬於 Solana 生態,也宣稱自己是第一個相容 EVM 的。
  2. 並行 EVM 狹義上指能夠相容 EVM 的 L1/L2,理論上乙太坊自己也可以實行並行化改造,這是最符合定義的並行 EVM,但是動作太大幾乎不可能存在;
  3. 並行 EVM 廣義上可以擴展,任意並行計算鏈,無論自身是否相容 EVM,只要可以打通和 EVM 的連結,就可以歸屬在內,比如將 Aptos 作為乙太坊的「加速器」。。

考察非 EVM 相容的 Alt L1 也具備特殊意義,它們可以被接入 EVM 生態,此外,Aptos 所開創的 Block-STM 方案也成為眾多新興並行 EVM 方案事實上的模版和思路來源,下文會詳述。

前置:線程、進程、並行和併發和 EVM 的通俗說明

我沿著並行 EVM 拆解的思路將其歸類,但是對並行概念說明仍不完備,如果接下來直接講專案實現的邏輯,會讓人不得其解,簡直是以其昭昭使人昏昏。

同樣,諸如「進程是資源分配的最小單位,線程是 CPU 調度的最小單位」之類的解釋雖然專業,但也對大多數人不甚友好,我想以買瓜為例來說明這個過程。

先鋪墊一下,我們的計算機最底層是物理硬體,其上才是操作系統和各類應用,計算機在處理任務時,就是根據優先順序將軟硬體資源分配出去,我們以華強買瓜來說明這個過程:

線程、進程、並行和併發的關係
  1. 華強騎車要去買一個西瓜,這是個單一行為,也是最小單位,是一個線程,一個西瓜此時就是能調用的物理硬體資源,多了沒有;
  2. 兩個華強要一起去買一個西瓜,這是個複合行為,因為有兩個華強要吃瓜,但是要注意,此時仍然只有一個西瓜,多了也沒有。 並且兩個華強約好了一起去砍西瓜,誰不去誰就不是兄弟,那麼此時兩個華強買瓜就是一個進程,每個華強吃瓜仍然是一個線程,因此一個進程里包括了兩個線程。

這個時候,只有一個西瓜但是要多個人吃的情況就是併發,這裡的重點是大家一起吃西瓜,要保證每個人都能最起碼吃上一口,因為不論吃瓜的人有多少,他們之間如何分座位、先後,都不影響一瓜多吃的最終結果。

聰明的你一定看出問題來了,為啥非得這麼多人一起吃西瓜,開西瓜攤的老闆本質上是水果店老闆,你還可以吃香蕉啊,說的對,這就是需要供給側改革的原因,現在老闆宣佈,香蕉也上市了,那麼此時物理資源(水果)就增加了,華強可以分為兩列分別取吃不同的水果,這就是並行,兩行並列,各吃所愛。

(防杠聲明:上面的解釋比較通俗但不專業,如有爭議,以程式師認知為準,我是半吊子出身)

下一步將它們和 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

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。