本文將帶着以下兩個問題進行分析:
問題1:市場已對"高速公鏈"徹底脫敏,爲什麼說Somnia可能與衆不同?
問題2:號稱速度最快、成本最優並行EVM Layer 1,Somnia是否吹牛?
➡️➡️➡️ 簡 • 潔 • 版 ⬅️⬅️⬅️
這一部分,從技術、背景和生態三個維度對Somnia進行概括,讓大家可以瞭解Somnia這個項目的亮點和優勢。
?Somnia的技術亮點
?多流共識算法:數據鏈+共識鏈,有利於防MEV、減少冗餘、降本同時增效。
?創新EVM編譯器:實現指令級的並行EVM,解決極端情況下的高頻交互。
?自研的IceDB數據庫引擎:提升數據讀寫速度與網絡穩定性。
?數據壓縮技術:提升數據傳輸效率。
?Somnia的背景優勢
?團隊:開發團隊來自Improbable,Improbable是一個2012年成立的跨國科技公司,總部位於英國倫敦。曾經開發過軟件、遊戲、Web3元宇宙產品。
?融資:由MSquared、a16z、軟銀、Mirana等知名機構共投資2.7億美元。
?Somnia的生態進展
?生態版圖:Somnia測試網已經入駐了4款AI/社交產品、7款遊戲、4個NFT項目和6個Defi應用,另外還有2款AI/社交產品、11款遊戲和1個Defi應用即將上線。
?生態數據:2025年2月下旬上線至本文寫作時(2025年6月26日),Somnia測試網共生產區塊超過1億個,平均每個區塊的生產時間爲0.1秒。共有96,878,557個錢包地址參與測試網,最近1天的交易量2643萬筆。
在區塊瀏覽器上,經常可以看見交易數和區塊數不停在閃動,Somnia稱"亞秒級",是肉眼可見的。
?爲什麼說Somnia可能與衆不同?
?高頻交互:儘管市場已對"高速公鏈"概念徹底脫敏,但Somnia不只是追求技術指標,而是着眼於如何讓Web3技術真正服務於應用場景,特別是在遊戲和社交等高頻關聯交互領域。
?Web3與Web3融合:Somnia的獨特背景可能在Web3與Web2的融合方面發揮關鍵作用。Somnia有潛力爲Web2用戶提供無縫進入Web3世界的通道,從而可能帶來真正以用戶體驗爲中心的應用生態。
➡️➡️➡️ 詳 • 解 • 版 ⬅️⬅️⬅️
上一部分介紹了【WHAT】Somnia的亮點、優勢和生態進展,這一部分將對Somnia的技術進行深入解讀。讓大家瞭解,【HOW】Somnia是如何在技術上實現高頻交互,如何做到低成本、高性能的,【WHY】Somnia爲什麼與其他並行EVM項目有所不同。
?多流共識算法:數據鏈+共識鏈
?概述:數據鏈+共識鏈結構
Somnia採用了一種新的多流共識(MULTISTREAM)算法。
所謂多流,Somnia在多條數據鏈上記錄交易信息,每個數據鏈由1個驗證者進行記錄,每個驗證者無法干擾其他驗證者的數據鏈。
所謂共識,Somnia在共識鏈上執行共識,對交易進行排序,並將對交易的引用記錄在共識鏈上。共識鏈由所有的驗證者共同執行與維護。
?概述:Somnia多流共識的工作流程
a 用戶向Somnia網絡發出請求後,收到請求的驗證者,將交易分別寫入數據鏈。
b 共識鏈每隔一個時間週期(例如30秒、1秒等),數據鏈的驗證者分別與其他的數據鏈驗證者上傳並下載數據鏈頂部的數據分片。
C 驗證者將包括所有數據鏈頂部數據分片的集合作爲一個完整的數據切片寫入共識鏈。
d 驗證者對交易進行排序,根據排序後的交易更新狀態,所有驗證者同步寫入Somnia的IceDB數據庫。
?亮點:Somnia的交易排序有利於防MEV
Somnia使用了確定性僞隨機函數,對交易進行排序。
我們知道,計算程序中其實是沒有真正的隨機,而是通過算法實現的僞隨機。確定性僞隨機函數有兩個特點:一是隨機性,不能預測下一個生成的隨機數是多少,但是每個驗證者執行時,都會按固定的順序生成同樣的隨機數。
這樣,所有的驗證者運行同樣的確定性僞隨機函數,會生成一系列一模一樣的隨機數,並按照隨機數對數據鏈進行排序。在此基礎上,對這一週期的交易進行排序。
例如,排序後的數據鏈是B、A、C……
那麼交易排序就是數據鏈B的交易在前,然後是數據鏈A、數據鏈C……當然,這一過程會根據哈希值去掉重複的交易。
當然,數據鏈的排序是固定的,但是不同數據鏈中的交易順序可能不同。例如數據鏈A中,可能是交易1在前、交易2在後,而數據鏈B中,可能是交易2在前、交易1在後。由於數據鏈的排序是B在A前,因此最終的交易排序是交易2在前、交易1在後。
這一排序方式的優勢是,MEV攻擊者很難去賄賂驗證者,因爲他不知道驗證者對應的數據鏈會是怎樣的排序。假如網絡上一共有100個驗證者節點,假設MEV攻擊者即使賄賂50個驗證者,只要有一個沒有被賄賂的驗證者(且包含被攻擊的交易)排在這50個驗證者的前面,共識鏈就會按照正確的交易順序記賬,MEV攻擊失敗。
?亮點:減少冗餘、降本增效
一方面,Somnia每個驗證者單獨記錄一條數據鏈,沒有驗證者之間的數據驗證過程。而在傳輸快照時,僅傳輸各數據鏈的快照信息,快照信息不包括具體的交易信息,因此減少了交互的冗餘。
另一方面,Somnia各個數據鏈並不需要同步其他數據鏈的信息,共識鏈上也不記錄交易信息,而是每隔一個時間週期,記錄數據鏈信息快照以及排序後的交易引用(哈希值)。這樣,減少了存儲的冗餘。
由於減少了交互的冗餘,因此Somnia在工作時可以更加高效。
由於減少了存儲的冗餘,因此Somnia在工作時需要的成本更低。
?補充:數據鏈的防篡改
雖然沒有數據鏈的信息驗證,但是驗證者並不能篡改交易信息。因爲驗證者一旦篡改交易信息,就會影響交易的哈希值以及其後續交易的哈希值,導致其信息與共識鏈存儲的信息出現衝突。
?指令級的並行EVM
?痛點:交易並行難以改善高頻交互的擁擠
Somnia的並行EVM與Monad、Reddio不同,這三個鏈的EVM並行是交易並行,也就是把交易進行並行,從而提升交易的速度。
其中Monad是樂觀的允許交易並行,檢測到衝突再去糾正。而Reddio是對不衝突且無依賴關係的交易進行並行。
但是,當大量關聯交易出現時,交易無法並行,因此很容易發生擁擠。有兩個極端的例子,例如網絡上突然出現大量的用戶在使用USDC交易某代幣,這些交易因爲要與LP池子交易,不能並行,只能順序執行。
另一個極端的例子是無數人搶着Mint同一個NFT,同樣不能並行,因爲NFT數量是有限的,必須順序執行,才能確定哪些人可以成功Mint,另一些人失敗。
Reddio解決這個問題的方法是,使用GPU,利用GPU強大的計算能力去解決這種高頻交互的擁擠。雖然可以提高交易效率,但同時增加了交易的成本。
?亮點:指令級並行EVM
爲了解決大量關聯交易同時進行,交易並行難以解決的擁擠問題,Somnia創新研發了一個EVM編譯器。
在標準的EVM執行過程中,只能逐一按順序的解釋執行交易中的指令。但是,Somnia支持將交易拆分爲若干指令集,不衝突、且無依賴關係的指令集可以並行。
以Swap交易爲例,按照功能可以劃分爲幾個指令集:參數驗證、參數處理、餘額檢查、授權檢查、池狀態檢查、價格計算、費用計算、轉移輸入代幣、更新池狀態與費用記錄、轉移輸出代幣、事件發射。其中,不衝突、且無依賴關係的指令集,可以並行,從而提高交易的執行效率。
指令集並行EVM的關鍵是Somnia其獨創的EVM編譯器,將EVM的字節碼編譯成x86機器碼。現代CPU是多線程內核,每一個CPU核心可以在多線程上並行機器碼,因此可以將EVM的若干個指集令進行並行,從而提高單個交易的執行速度。因此,Somnia也可以稱其爲硬件級的並行EVM。
?亮點:成本與效率雙重優勢
標準EVM的解釋執行:交易1→解析爲字節碼→順序解釋執行→交易2→解析爲字節碼→順序解釋執行→交易3→解析爲字節碼→順序解釋執行……
Somnia的EVM編譯執行:合約代碼→解析爲字節碼→動態編譯爲機器碼→並行執行交易1的指令集→並行執行交易2的指令集→並行執行交易3的指令集……
對比可以看出,交易越多,Somnia的EVM編譯執行越有優勢。
因此,對於普通的非高頻交易,Somnia仍然使用標準的EVM解釋執行,每次執行EVM,將智能合約代碼解析爲EVM字節碼,在按順序解釋執行。
對於集中的高頻執行的交易,Somnia啓用EVM編譯器,將EVM的字節碼編譯成x86機器碼。然後按照參數重複執行機器碼即可快速完成集中的高頻交易,這是交易級的並行EVM無法達到的效果。
因此,Somnia可以在成本和效率之間實現雙重優勢。
?IceDB數據庫引擎
?概述:使用LSM樹取代默克爾樹數據結構
絕大部分區塊鏈使用默克爾樹(Merkle Tree)的數據結構。默克爾樹的葉子節點存儲着交易數據的哈希值(或者交易數據本身,然後對其進行哈希),非葉子節點存儲的是其子節點哈希值的哈希值,逐層兩兩結合計算哈希值,最終計算出一個默克爾根(Merkle Root),從而可以安全地驗證區塊內數據的完整性,並防止數據被篡改。
以ERC20代幣合約的數據存儲默克爾樹爲例,默克爾樹的葉子節點包括:
• 存儲代幣總量(TotalSupply)、代幣符號(NameSymbol)等屬性,每一個屬性對應着一個鍵(屬性名)和一個值(屬性值);
• 該代幣所有的持幣地址的持幣情況,每一個地址對應着一個鍵(地址哈希)和一個值(持幣數量);
• 該代幣所有的授權情況,每一個授權地址對應着一個鍵(地址哈希)和一個值(授權數量);
……
假如一個ERC代幣有4個屬性,32000個持幣地址,2764個授權地址。這個數量顯然不多。但這共有32768個葉子節點,寫入該代幣的默克爾權,需要計算65535次哈希。
Somnia自研的IceDB數據庫引擎,並沒有使用常用的默克爾樹數據結構,因此其區塊信息中也沒有哈希根。
IceDB使用LSM樹(Log-Structured Merge-Tree,日誌結構合併樹)。這是一種基於日誌的樹形數據結構,其主要特徵是數據追加寫入,而不是原地修改,因此不存在篡改問題。
IceDB數據庫的寫入,先會寫入內存的MemTable。當MemTable寫滿時,它會被刷新到磁盤,形成一個 SSTable。LSM定期對SSTable進行合併,同時刪除重複的鍵。
這個過程不需要計算哈希,只需要向MemTable寫入新的數據即可,因此無論是數據寫入內存、緩存還是磁盤,IceDB數據庫的寫入速度明顯更快。
?亮點:更高速的讀寫
LSM樹數據結構,明顯在寫入數據方面具有性能優勢。除此以外,Somnia技術文檔中提到“創建了一個可以同時優化讀取和寫入的數據緩存,使得 IceDB 的平均讀寫時間在 15 到 100 納秒之間"。
?特色:讀寫性能報告與公平有效的Gas
在大部分區塊鏈網絡中,雖然最終驗證者節點會趨於存儲同樣的數據。但是在短時間內,不同的驗證者節點內存與磁盤中存儲的數據具有一定的出入。這導致用戶在讀寫數據時由於訪問不同的位置,會消耗不同的Gas。另一方面,由於訪問位置不同,用戶讀寫數據耗時可能較長,在這個時間窗口內,網絡Gas可能會發生變化。因此,很難確定公平有效的Gas。假如低估Gas,節點可能會由於收益低而消極怠工、影響網絡效率。假如高估Gas,用戶支付不必要的額外費用,甚至有可能爲MEV攻擊提供機會。
在IceDB數據庫引擎下,用戶在每次讀寫數據時,在緩存中沒有找到所需的數據,因此分別需要從內存和SSD中讀取據數據,統計從內存和SSD中讀取數據的頻率,並返回一份"性能報告"。"性能報告"爲計算用戶所需的Gas提供確定性的依據,因此使網絡Gas更加公平和有效,有利於網絡穩定幣。
?數據壓縮技術
根據Somnia技術文檔中的介紹的信息量與頻率分佈冪率理論,根據信息發生概率進行彙總,可以使數據獲得高倍壓縮率。
Somnia每一條數據鏈由一個驗證者負責,驗證者不需要發送整個區塊,只需要發送信息流即,而流式壓縮具有更高的壓縮率,因此有利於提升網絡傳輸能力。
此外,Somnia 使用 BLS 簽名來提高簽名的傳輸與驗證速度。
在Somnia的多流共識算法下,數據鏈的驗證者節點之互相發送數據鏈的數據分片,沒有一個集中的領導者進行集中的數據上傳與下載,驗證者之間可以均衡的分配帶寬。每一個驗證者要將數據分片發送給其他驗證者,同時要下載其他驗證者發送來的數據分片,因此每個驗證者的上傳和下載所需要的帶寬是對稱的。因此,Somnia網絡傳輸能力會比較均衡且穩定。
?寫在最後
Web3雖然表面上看比Web2更高端,但實際上Web2的技術體系往往更爲複雜成熟。當Web2開發者參與Web3開發時,他們的技術背景能夠爲區塊鏈世界帶來更多創