Foresight Ventures:「合久必分」模組化區塊鏈與數據可用性層
作者:msfew,Foresight Ventures
Rollup 的瓶頸
如果你讀了上一篇我所寫的 Rollup 的文章,那麼很可能會發現在 Optimistic 和 zk Rollup 的終局對比部分,有意無意地被留了一個坑。
當時得出的結論是: 因為沒有 Proving Overhead,Optimistic Rollup 在長遠視角下會遠勝於 zk Rollup。但是其實在不同時間段的發展上,Optimistic 和 zk Rollup 的性能實際上會交替領先:
不同階段不同類型的 Secured Rollup 有不同的瓶頸,而現在對它們來說,最主要的問題還是以太坊目前所提供的數據可用性方案限制了它們頂峰的理論性能。
為了解決現階段 Rollup 的這個性能問題,我們有兩種方法:
- 提升以太坊的主網,等它升級成功,缺點是無法掌握主動權,這或許需要很久時間。
- 切換 Rollup 的類型(如換成 Validium),直接使用性能更優秀的數據可用性方案,缺點是部分犧牲了安全性。
區塊鏈的模組化
我們現在所指的那些 Secured Rollup(Arbitrum 等),其實就是模組化區塊鏈的一種實現,未來會有更多不同的模組化區塊鏈實現,或者說不同變種的 Rollup。
以太坊的 Rollup 路線體現了區塊鏈的模組化趨勢,讓區塊鏈的層級分離,各司其職,讓網絡能夠 Rollup 起來。
之前 Rollup 的文章提到了擴容的兩條路線,一條是升級區塊鏈本身,另一條是用 Rollup 的方式來更好地使用區塊鏈。
模組化區塊鏈組合了兩條路線,1+1 > 2,徹底切換了區塊鏈的單體架構,讓新的模組化區塊鏈網絡成為 Rollup 最適合生長的土壤,且賦予這些 Rollup 方案更多的模組選擇和更高的性能。
a) 兩個層級,四個模組
一個區塊鏈可以拆分為兩個層級,共包括四個模組:
安全層: 保證區塊鏈的安全性。
- 數據可用性模組(後文中稱為 DA): 保證交易數據可以被使用(保證存儲且可驗證與可用)。
- 共識模組: 決定交易的順序等(PoW 等是防攻擊的機制,是共識的基礎而不代表共識的全部)。
執行環境層: 提供區塊鏈的執行環境。
- 結算模組: 結算出狀態承諾。
- 執行模組: 計算出單獨的狀態轉換。
其中對於每個層級來說,兩個模組採用同一方案的安全性更高,信任假設更少,如結算和執行均採用以太坊的安全性 > 僅結算採用以太坊,執行採用 Arbitrum 環境的安全性。
單體區塊鏈的代表有 Ethereum 本身,Solana,Binance Smart Chain 等,Secured Rollup 的代表有 Arbitrum,Optimism 等,DA 層的代表有 Celestia 的 DA,Polygon Avail 等。
如果將區塊鏈的模組和計算機結構進行類比,那麼:
- 區塊鏈的執行模組 ⇒ 計算機的操作系統(真正執行指令的環境)
- 區塊鏈的 DA 模組 ⇒ 計算機的內存(實現短期數據存取)
- 區塊鏈的結算與共識模組 ⇒ 計算機的 CPU(硬件保證指令執行的正確性)
後續文章中,我們會稱這些 "模組" 為 "層",但是它們實際上是模組。
b) 從 Web 的發展中預測模組化趨勢
我們可以從 Web 的發展中借鑒出區塊鏈未來的模組化發展路線:
區塊鏈網絡其實是一個更去中心化和更穩定的集群,讓節點集合算力,形成遍布全球的大型可信計算機。
而區塊鏈的模組化劃分非常像 Web2 中的分佈式系統(不等於分佈式數據庫的分佈式)。它本質上是把業務進行拆分,與下圖 Uber 的架構類似,模組各司其職。
Web2 的分佈式系統和 Web3 的區塊鏈的模組化帶給我們兩個需要思考的問題:
- 拆分: 區塊鏈網絡已經被簡約地拆分為了前文中提到的兩個層級和四個模組。
- 連接: 保證模組之間的通信以及安全性。這也就是為什麼同源的模組安全性更高,因為不需要額外連接,避免了過程中所暴露的危險。
拆分的問題已經被清晰定義,但連接的問題對模組化架構有所影響。該如何將安全性和用戶體驗提升或許是模組化區塊鏈需要解決的問題。
c) 為什麼模組化?
模組化區塊鏈將單體區塊鏈解耦後,新網絡結構 = 多個類似 Arbitrum 和 StarkEx 的不同 Rollup + 一個類似以太坊的底層主網。
它們提升的重點主要是,不用再通過因為共識與 DA 耦合的傳統單體區塊鏈導致的 Proof of Replication 來驗證和保證 DA(限制性能和極大程度上提升全節點大小影響去中心化)。
這意味著模組化區塊鏈網絡不用再去卷單體區塊鏈的共識了,而是解耦後直接使用專門層處理 DA,在主網安全的優先級下,減少多餘算力和存儲的浪費,提升吞吐量,跳過共識問題瓶頸,從而將千級或萬級的 TPS 進一步提升。
除了整體性能可以突破瓶頸,跨越到下一個時代,模組化區塊鏈還有什麼顯著的好處?
更好的區塊鏈
- 安全性: Rollup 層借用 Ethereum 等底層安全層的安全性。
- 執行性能: 可靈活採用更快的執行或/和結算模組。
開發上的可組合性
- 迭代: 模組解耦。模組可以進行更激進的提案和更快速的創新。
- 可插拔: 更多的鏈開發方案和技術棧選擇。
d) 模組化的不同實現?
模組化的區塊鏈網絡其實可以構建出非常多類型的 "鏈" 的實踐,主要有三個大類和無數細分小類:
- Rollup(包含 Sovereign 或 Secured Rollup 等,見上一篇文章。如 Ethereum/Celestia 安全層 + 執行環境/或僅執行模組。)
- Multi-Monolithic(如 Tendermint/Substrate 安全層 + Cevmos 標籤與 Recursive Rollup 的執行環境。Celestia 本身其實屬於這個架構,是 Cosmos 生態的。)
- Subnet(組裝最自由的模組化區塊鏈,並非能繼承安全性,更偏重部署和開發效率。)
這三個模組化區塊鏈和單體區塊鏈的大方向不同,特色也各不相同:
- Rollup: 天下武功唯快不破,但是技術進度最慢,最不成熟。
- Multi-Monolithic: 共享安全性,通信可組合和可互操作,應用鏈具有主權,但是性能不一定行。
- Subnet: 秒速部署,方案成熟,但是安全性和去中心化程度不一定行。
- Monolithic: "完全的" 自由度,但是方案太重,整個系統或許過於耦合。
e) 模組化概念的影響?
模組化區塊鏈的時代到來之後,L1 和 L2 的傳統概念或許要被重新定義。
- 單體區塊鏈: L1 指以太坊等單體區塊鏈,L2 指基於以太坊的安全層與執行模組組合成的 Rollup。
- 模組化區塊鏈: L0 指社會共識與對 L1 的信任假設,L1 指模組化區塊鏈的安全層(DA 與 Consensus),L2 指模組化區塊鏈的執行環境層(Settlement 與 Execution)
除此之外:
- 性能衡量: 從共識的 TPS 和 TTF 轉變成 DA 的吞吐量的對比。
- 定義: 需要注意的是,對於如 Arbitrum 的 Rollup 來說,Arbitrum 網絡 = Arbitrum 的執行環境 + 以太坊的安全層與結算模組。對於以太坊本身來說,以太坊網絡 = 以太坊執行環境 + 以太坊的安全層與結算模組。當方案可以被模組化解構時,它們都可以被稱為是模組化區塊鏈的一種實踐。而如以太坊這樣適合做 L1 的網絡,可以被稱之為模組化區塊鏈網絡。
- 趨勢: 當應用想要更多功能,減少運營成本或加強安全性,更大的主權時,應用可以在一籃子的模組中,選擇適合自己的方案,從而發展 App-chain 或 App-rollup 或 App-subnet。
未來,或許每個應用會選擇成為一個模組化的區塊鏈。
DA 層
既然 Rollup 不僅保證安全性,還提升性能,那何不讓區塊鏈成為 Rollup 的最佳土壤?模組化區塊鏈就是讓區塊鏈成為 Rollup 的更好基礎層。
Rollup 讓大家關注了 DA 層對性能的影響,同時 Rollup 的出現也啟發了以多個 Rollup 生態為重點的模組化區塊鏈網絡概念。 模組化區塊鏈讓區塊鏈跨越單體時代的共識瓶頸,進入到模組化概念以 DA 為重點的時代。
"Rollup 是將執行層 off-chain,下一步是將 DA off-chain。"
a) DA 是什麼?
對於模組化的區塊鏈和 Rollup 網絡來說,完整數據需要在那里和保證可以被使用,從而確保網絡的去中心化和安全性:
Current Data Availability: 為什麼出塊時需要最新的狀態根和 tx 數據可用?
因為要出新的塊,就需要在 L1 揭露所有這些數據,以便其他節點重新執行從而做到驗證,同時這個過程要保證輕客戶端的安全(它們只檢查區塊頭!不拒絕無效交易)。
Archive Data Availability: 區塊有效後,tx 數據是否還需要被保留保證可用?
需要。比如你想查看幾個月前的一筆交易,或你想從頭運行一個節點。
Rollup 與模組化區塊鏈: 對於 Rollup 和未來不同的模組化區塊鏈實踐來說,Current Data Availability 意味著什麼?
Optimistic Rollup: 出新塊時需要狀態根數據可用,來被驗證,挑戰期內需要 tx 數據可用來使挑戰 Sequencer 可行,保證安全性。
zk Rollup: Sequencer 跑路情況下,需要狀態根數據來重建狀態和取出資金。
b) Current Data Availability
最新數據的可用性影響著網絡本身的安全性和性能。
當我們說到 DA 時,通常所指的都是它。
單體區塊鏈時代:
- DA 方案: 由於共識與 DA 沒有解耦,因此靠全節點 Proof of Replication。
- 數據在那里: 通過一堆全節點複製完整數據來保證。
- 數據可用: 通過線性複雜度下載完整數據來驗證數據可用。
- tx 有效性: 通過重新執行來驗證 tx 的有效性。
- 問題: 冗餘過多,且若節點平均只存儲一部分數據,丟數據的概率很大(和生日悖論類似)。
模組化區塊鏈時代:
- DA 方案: 專門的獨立 DA 解決方案。
- 數據在那里: 通過糾刪碼(CD 和衛星所採用的數據保護方案)保證數據可用。
- 數據可用: 通過數據可用性採樣來在 sublinear 時間內驗證,如只需下載 1% 的區塊數據即可得到 99% 的區塊可用保證。
- tx 有效性: 通過錯誤編碼證明(類似 Optimistic 機制)或者多項式承諾甚至直接上有效性證明(我們通常稱之為 zk 證明)確保糾刪碼編碼正確,tx 有效。
c) Archived Data Availability
存檔數據的可用性僅影響網絡本身外的如區塊鏈瀏覽器等的基礎設施,可能對網絡本身來說是個可選項,但是對用戶的使用來說必須具備。
我們首先要說明的主要是,Arweave 或 Filecoin 的 Web3 存儲方案無法為 Current Data Availability 提供直接的 DA:
- Arweave: SPoRA。實質上是種摩爾定律假設和經濟模型下的概率性存儲(當然一切皆概率…)。使用中通常需要等十多個區塊才能確認數據 "永存",無法很好保證即時 DA。
- Filecoin: PoSt。點對點的分佈式存儲網絡。進行數據存儲的礦工可以扣留數據,無法保證去中心化以及 DA。
- IPFS: 主要還是作為基礎設施存在,在 Polygon Avail 和 Celestia 的 DA 的網絡層中都有使用。
除此之外,Arweave 和 Filecoin 依然是單體區塊鏈的多副本冗餘模式保證數據可用,難以建立高效的採樣機制。
雖然它們不適合作為 "內存" 為最新數據提供可用性,但適合作為 "硬盤" 為存檔數據提供可用性。目前 Web3 仍然缺少一個更模組化更專注的專用 "硬盤"。
模組化區塊鏈的選擇
我們現在就作為一個萬級 TPS 項目的架構師,來為我們的應用做一些抉擇,組合出合適的應用鏈。
a) DA 層生態
DA 層是最近大家非常關注的方向。但是從我們的抉擇圖來看,其實沒有很大概率去連續做 "對" 那麼多先置選擇,最終進行到 DA 的選擇。
除了項目最可能採用的自建私有 DAC(性能 + 主權)或側鏈 DA 方案以外,DA 方案基本有三種選擇思路:
- 最高的安全性: 與共識層一致,比如 DA 與共識均採用以太坊或 Celestia。
- 極致的吞吐量: 犧牲安全性,增加額外信任假設,比如鏈下數據委員會(安全性和多簽一樣,差)。
- 兩者兼具: 通過 Restaking 模式,得到高安全性與高吞吐量,比如 DataLayr。
DA 方案的商業格局基本會是這樣:
- 商業模式: 面向應用鏈,通過提供 DA 收取應用鏈支付的 "保護費"。
- 競爭: DA 的方案強弱其實就是兩個層面的對比: 安全性與吞吐量。且吞吐量的更優者很容易獲得壓倒性的勝利。
- 價值捕獲: 由於實際中並沒有太多實例來進行分析對比,因此我們可以思考以下問題: 如果 DA 層市值遠低於應用鏈(像 Chainlink 和 DeFi 應用的關係),整個協議是否因此有安全性短板?單單 DA 層無法形成完整應用生態,代幣如何捕獲價值?
b) 執行層生態
如果把模組化區塊鏈比作一個高度分工化的廚房,區塊鏈的性能是上菜速度,那麼吞吐量更大的 DA 層就是更大的鍋,更好的執行環境就是更熟練以及會做更多菜系的廚子。
執行層方案也基本上有這麼幾種選擇:
- 現有成熟方案: EVM 及其 ZK 或 OP 變種,WASM 及其各種變種等。
- 未來前沿方案: FuelVM(工作流程如下圖中下方,因此更快),AltLayer 等。
對於執行層來說,我認為 EVM 依舊會因為生態優秀而保持未來的主導地位。
對於前沿執行層方案的價值捕獲來說,它們自己可以被很容易組合成 Optimistic Rollup,形成應用生態,因此在價值捕獲上,它們相比 DA 層有天然的優勢。
c) 共識層生態
對於模組化區塊鏈來說,共識層需要:
- 安全性優先: 保證底層的穩定和安全性。
- 智能合約環境: 方便鏈上驗證各種輸出。
- 社會與經濟共識: 需要是 "德高望重" 的大公鏈,這樣才不用額外的信任假設。
於是我們剩下的合適的選擇不多了:
- 完全合適: Ethereum, Cosmos 等。
- 勉強合適: Bitcoin, Arweave(兩者鏈上無圖靈完備的智能合約,結算在應用鏈進行)等。
- 不太合適: Solana(網絡不是特別穩定)等。
- 可能最合適: 未來的 Celestia,未來的 Ethereum。
模組化方案的思考
a) 進一步探索
DA 層: 狀態爆炸問題讓網絡的準入門檻過高,削弱了網絡的去中心化。我們在 DA 那一段所闡述的 statelessness 僅僅是 weak statelessness,也就是只有出塊者需要存儲狀態數據,後面還需要更多優化,讓所有的節點都不需要存儲全部狀態數據。
執行層: 目前的模組化分工僅僅是開了許多個執行層(Sharding),而當某個執行層滿載後,它的性能依然無法滿足 Web3 需求。那麼我們所需要拓展的就更多是單個執行層的性能(Parallelization),如 Fuel 和 Solana。
b) 需求與供給
App-chain 的需求到底有多少?
目前只有熱門應用才會有 App-chain 的需求。我們或許需要 onboard 更多用戶,才會激發對模組化方案的真正大量需求。
同時,我們也看到了無數多的模組選擇,最後到底哪些能真正被積極使用也是一個需要探索和篩選的過程。
c) 安全性
模組化有兩個方面,拆分和連接:
- 拆分是否會導致整個區塊鏈網絡具有短板?將攻擊其短板所需的資金大量降低,作為像 Curve 池的引線角色一樣引爆 Luna 那樣的慘劇?
- 一個系統越複雜,所暴露的可被攻擊的地方也就越多。模組間的 "連接" 是否存在被攻擊的可能(當然 Rollup 橋其實比 IBC 橋還要安全)?(之前的文章中我們對可組合性的危險發表了看法)
d) 體驗
一個分散的模組化系統可能僅僅因執行層不同就導致用戶體驗與資金的割裂,同時它是否會由於開發工具的不同,導致開發者體驗的割裂?MEV 如何處理?
e) 分久必合
類似 Apple 從 Intel 芯片到 m 系列 SoC 的轉變,模組化區塊鏈較為割裂的架構是否會在幾年之後因為生態或體驗等問題重新統一,單體區塊鏈是否會重回主導地位?模組化區塊鏈是否會出現類似 Cosmos IBC 一樣的互通協議?
總結
目前模組化區塊鏈只跑出了冰山一角,但已經非常繁榮,有各種基於以太坊的 Secured Rollup,Cosmos,Polkadot,Subnet 等。
比特幣是區塊鏈的概念,以太坊是區塊鏈的實踐,而模組化區塊鏈會是區塊鏈被廣泛工程化與實踐的基礎。