Foresight Ventures: Rollup 的現在, 阻礙, 競賽, 和未來
作者: msfew,Foresight Ventures
這篇文章著眼於以太坊的 Layer2 Rollup 宇宙 (僅包括 Secured rollup), 會從簡單易懂的核心概念與機制設計出發, 探討目前 Rollup 的好與壞, 暢想它們未來在去中心化, 進一步擴容, 可組合性, 以及隱私等附加功能上的潛在路線與方案各自的優劣.
一個 Secured Rollup 就是像 Arbitrum 或 Optimism 這樣模式, 結算, 共識, 數據可用性均依賴以太坊等 L1, 自己僅負責執行的 Rollup.
如果 Rollup 中結算, 共識, 數據可用性使用了除 L1 以外的方案, 那麼它就不是一個純粹的 Secured Rollup, 也就不是狹義的 Rollup.
0. Rollup 的本質與原理
a) Rollup 的本質
給區塊鏈擴容有兩種方式: 一種是優化區塊鏈本身, 另一種是以更好的方式使用區塊鏈.
Rollup 就是第二種, 它真正的本質很簡單, 是更快更便宜且 "可信" 地使用區塊鏈, 來擴容區塊鏈 (基本特指以太坊).
Rollup 是: 鏈上的智能合約 + 鏈下的聚合器.
就這麼簡單. 而這兩個特性結合起來就定義了 Rollup 也豐滿了它的概念.
- 鏈上智能合約, 表示了它的信任模型就是以太坊上的一個智能合約, 借用了以太坊的安全性, 而不是像 Alt L1 一樣需要建立新的信任共識. 我們可以像信任 Uniswap 的協議 (核心是智能合約) 一樣信任 Arbitrum 的協議.
- 鏈下聚合器, 表示它會鏈下執行並聚合交易, 將大批量的交易壓縮, 最終放上以太坊主網, 達成更快更便宜的目的.
以太坊的原理是, 每個節點都存儲且執行用戶提交給它的每筆交易, 所以這麼一個去中心化網絡非常昂貴.
後文是以 Aribitrum 和 Optimism 為代表的 Optimistic Rollup, 與以 zkSync 和 StarkNet 為代表的 zk Rollup 兩大 Rollup 的機制原理, 可供讀者簡單理解.
b) Optimistic Rollup 的原理
Optimistic Rollup 顧名思義是樂觀的, 採用的類似是無罪推定, 大家會默認相信每個執行是正確的, 通過每個批次狀態可被通過欺詐證明挑戰而保證安全性.
用戶在 Arbitrum 提交交易, Arbitrum 的 sequencer 對交易進行執行, 分批次將狀態根與交易數據完整提交到以太坊主網上的智能合約中.
Optimistic Rollup 執行產生錯誤了怎麼辦?
Optimistic Rollup 有一個爭議驗證周期, 也就是說上了鏈之後的數據還要過比如一周的時間才會真正地被敲定 Finalized, 期間任何人都可以對它進行挑戰, 證明批次不正確.
c) zk Rollup 的原理
zk Rollup 顧名思義是用了 zk 零知識證明技術 (實際上是 Validity Proof), 採用的類似是有罪推定, 大家會默認質疑每個執行都是錯誤的, 通過每個批次所包含的證明保證安全性.
用戶在 zkSync 提交交易, zkSync 的 sequencer 對交易進行執行和存儲, 分批次將狀態證明和新狀態完整提交到以太坊主網上的智能合約中.
zk 如何證明自己的執行不是錯誤的?
Prover (大多數情況下就是 sequencer) 會對交易的執行生成無法偽造的證明, 證明這些新的狀態和執行是正確的. Sequencer 會把證明等數據壓縮後提交到以太坊主網中的智能合約進行驗證.
它們如何壓縮數據, 從而減少 gas fee?
Rollup 可以在每個交易的字節數上進行壓縮, 包括 Nonce 和簽名等. 對於 zk Rollup 來說, 它可以進一步壓縮, 不用將與狀態更新無關的數據上鏈,因為 zk 證明已經可以證明狀態更新的正確性, 而 Optimistic Rollup 卻由於需要能夠被挑戰, 因此沒法忽略這部分數據.
它們倆為什麼都要完整狀態?
因為為了防止 sequencer 跑路, 我們可以通過以太坊上的數據來重建整個 Layer2. 這就是數據可用性的概念.
d) 兩種 Rollup 的區別
如果實在還是理解不了, 可以查看下面的圖解.
Optimistic Rollup 的設計更像是 Arweave, 通過經濟學和博弈來設計機制, 性能好但其實無法保證 100% 的正確.
zk Rollup 的設計則更像是 Filecoin, 通過密碼學和數學來設計機制, 可以保證 100% 的正確但永遠會有額外的計算和時間開銷.
它們的區別就是一個用了挑戰期來保證發生錯誤可以被糾正, 一個用了密碼學來保證錯誤不可能發生.
我們在後文會通過兩者的終局表現來詳細對比它們.
1. Rollup 很優秀
首先我們來盤點一下 Rollup 網絡整體的優秀之處:
- 生態: Arbitrum 跑出了 NFT 和元宇宙生態; Optimism 發了幣, 有了治理和社區; StarkNet 酝酿著各種 GameFi 的創新; zkSync 有不少 DeFi 的新項目. 每個 Rollup 單拿出來都自成一派.
- 擴容: TPS 確實優異, 雖然沒有理論峰值那麼高, 但是 L2 的快速確認提供了一個快速且便宜的 Web3 體驗.
- 體驗: 對開發者和用戶來說, 切換到 Rollup 上都是一件簡單的事, 且體驗與以太坊幾乎無異. 各種跨鏈橋, 錢包, Uniswap 等基礎設施也為用戶的流暢體驗服務. 這個也是良好的生態所撐起的.
- 創新: Rollup 已然是以太坊應用創新的優秀土壤, 同時也比 Polygon 的 "大型測試網" 式網絡更加具有想像力.
除此之外, 如果對子網與 Rollup 的對比感興趣的話, 可以參考我們之前的研究, 以及 Toghrui 的觀點.
更細化地說, 各大 Optimistic Rollup 和 zk Rollup 分別給出了如下的表現:
- Arbitrum: TVL 在 24 億美元左右. Nitro 升級已經上線測試網, 之後會用 WASM-Geth 替掉 Arbitrum 現有的 VM, 優化性能和適配性. (之後的文章我們可以詳細聊聊 WASM 的各種潛力)
- Optimism: 發幣了, 在此基礎上做出了很多 "開創性且無比 Optimistic 的實驗" (出各種岔子, 隱瞞著事實且無動於衷, 最近經常被失望的用戶質疑為是 "以太坊基金會的廢太子"). Bedrock 升級會讓 VM 變成 MIPS-Geth, 做到 EVM 等同性. Optimism 的開發人員也一直在說 zkMIPS 的概念, 不知道他們會不會在之後往這個方向努力呢?
- StarkNet: 目前跨鏈橋還沒完全開放. 特製語言 Cairo 和 StarkNet 開發生態打造得不錯, 遊戲生態值得關注. StarkEx 的 Validium 模式也做出了 dYdX, ImmutableX 等應用. 而且 StarkNet 自己也可以做結算層, 搭建 L3.
- zkSync: 最早地做出了比較完善的 zkEVM. 2.0 版本的 Volition 模式可以讓用戶靈活選擇 zkPorter 或以太坊的數據可用性方案.
- Aztec: UTXO 模型的隱私 zk Rollup, 即將支持隱私 DeFi 生態 (但由於交易數據大小過大, 目前還需要額外優化). 儘管不支持通用計算, 但是是為數不多真正 zk 的 zk Rollup.
- Fuel: V1 是一個 Optimistic Rollup, 而且非常去中心化. V2 不走尋常路, 沒有去適配 EVM, 而是通過一個 UTXO 模型的高性能 VM 來支持並行 tx 處理, 致力於打造最快的執行層.
除了以以太坊為主網的 Rollup 以外, 還有這些:
- everPay: Arweave 上基於 SCP 範式的 Layer2.
- Milkomeda: Algorand 上的 EVM Rollup.
- Orbis: Cardano 上的 Validium 模式的 Rollup.
Rollup 方案不同的設計有非常多的獨到之處, 真正地服務了無數的用戶, 帶來了更好的 Crypto 與區塊鏈體驗.
2. Rollup 有待提高
上面一章的表揚後, 我們會在本節指出 Rollup 一些需要解決的問題:
a) 中心化
Rollup 網絡絲滑的用戶體驗是通過對安全性的妥協而得到的, 網絡很多組成部分是中心化的, 雖然有以下三點可以對這個問題進行 "狡辯":
- zk Rollup 中 zk 證明從數學上無法伪造.
- 用戶可以通過 L1 的 DA 來重建所有狀態.
- 信任模型本身就是中心化的智能合約.
但是 Rollup 的中心化仍然會導致 censorship 與安全性極低等問題. 目前它的中心化主要體現在:
- 中心化 sequencer: 大部分的 Optimistic Rollup 和 zk Rollup 的 sequencer 都是中心化的形式存在. 也就是類似 tx 的執行, 排序, 和出塊都是靠一個中心化的伺服器來支撐. 之前 Arbitrum 就因為 sequencer 的硬體問題所以整個網絡宕機了…
- 中心化升級: 大多數 Rollup 網絡的升級是中心化的, 意味著實際上去黑掉整個 Rollup 的成本與網絡上十幾億的 TVL 相比簡直渺小到可以忽略. 比如 zkSync 就是以一個 security council 來管理升級. 回想之前 Ronin 被黑事件, 讓十幾億的資金依賴於這麼幾個人的多簽, 絕對是不安全的.
- 閉源組件: 部分 Rollup 的一些關鍵組件是閉源的. 比如 StarkNet 的幾乎所有關鍵組件均未開源, 依然是中心化開發, 且沒有開放的開源許可證. 這不那麼 Web3.
在我的設想中, 作為一個網絡或者協議, 最終必須是去中心化且開源的, 否則就違背了 Crypto 和 Web3 的精神.
b) 真实性能
Rollup 目前所展現出來的超高性能是 "假的", 真的 Finality 並沒有那麼優秀, 且性能依然有提高空間. 這是一把雙刃劍.
當用戶在 L2 提交交易後, 馬上會得到交易成功或者失敗的反饋, 但是其實這個即時的用戶體驗僅是在 L2 上的 Finality.
在數據沒有被提交到 L1 或 Prover 還在證明或仲裁窗口期的期間, 這些數據並未取得 L1 Finality. 所以 Rollup 的用戶體驗那麼優秀, 其實是因為用戶通過 Rollup 借用了一些時間, 讓用戶先拿到一個 soft confirmation.
由於以上的設計, 導致如下問題:
- 假的 Finality:數據上了以太坊等真實的區塊鏈才是真正的 Finality, 那麼 Rollup 的真實 Finality 是多快呢, 換句話說 (當然真的要計算 TPS 的話, 一批次數據所包含的 tx 個數也應該納入考量), 它們每隔多長時間會提交數據上以太坊呢? 這裡有一個通過鏈上數據真實的分析.
- 吹過頭的 TPS: 我個人認為 TPS 是一個極其糟糕的指標, 現在應該被淘汰掉. 各種 Rollup 或者公鏈都通過無數的預設條件以及混淆的概念來計算出一個超高或者至少比競爭對手高的 TPS, 從而體現自己的強大. 但實際使用中, 它們的性能仍然沒有那麼 "Web3". 我理想中真正的 Web3 體驗需要是完全無感的, 同時整個網絡也必須去中心化.
c) 經濟機制
我們以 Optimism 的代幣為例, 管中窺豹地來研究 Layer2 Rollup 的商業和經濟機制, 代幣模型, 與 MEV.
商業模式: Rollup 的利潤 = Layer2 費用 - Layer1 區塊空間費用 (在 L1 上存儲和驗證證明等數據的安全成本) - 節點伺服器等計算成本. 其中, Layer2 費用 = gas 費用 + MEV + Layer2 收取的一些 premium. 但這個商業模式用戶無法作為節點參與, 只有 Rollup 開發者能夠賺取. 以下是 Arbitrum 與 Optimism 在 Layer2 費用與 Layer1 區塊空間費用上的收益與成本.
代幣機制: Optimism 的網絡雖然不錯, 但代幣經濟仍然較弱. OP 有以下三個比較致命的問題: 1. 沒有任何 utility, 比如無法支付網絡 gas 或 PoS 質押 (當然這兩個並不是好的 Rollup utility), 僅用於治理. 2. 無法捕捉網絡收益和區塊空間的價值, sequencer 賺多少錢都與持幣者無關. 3. 流通數量非常少, 拋壓很大, 做市時的事故更是讓這個情況雪上加霜. 這些問題不僅僅是 Optimism 的問題, 其他 Layer2 Rollup 也很有可能需要面臨這些考驗.
MEV:由於現在 Rollup 均是中心化 sequencer, 因此這些收益都可以被 sequencer 捕捉. MEV 是一個兩面性的東西. 往好裡看, Rollup 網絡可以擁抱 MEV 對於網絡的價值, 讓其成為網絡去中心化之後經濟機制和礦工激勵的重要組成部分; 往壞裡想, Rollup 網絡需要杜絕任何 MEV 的存在, 因為它經常被認為是對用戶的一筆額外的稅務. Arbitrum 選擇 "忽視" MEV, 採取先到先得的機制, 但這對節點性能有更高要求, 且降低了 DDoS 的成本.
開放網絡的商業模式, 改善代幣機制, 處理 MEV 會是 Rollup 網絡在發幣與去中心化的必經之路上的三座大山.
3. Optimistic Rollup 與 zk Rollup 的終局性能對比
我不太想和其他文章一樣去對比 Optimistic 和 zk Rollup 兩個陣營的 TPS 等紙面性能 (如果好奇的話可以詳細閱讀文末更多參考資料), 而是會從它們的本質和特性, 以及長期終局表現來對比:
對這張圖的詳細解讀和值得關注的點如下:
- EVM 等同性實現難度: 其實無論是從 EVM 兼容, 節點配置要求, 還是優化來說, zk Rollup 整體的實現難度都是比 Optimistic Rollup 要高的. 這其實也是額外證明開銷的一種存在方式… 額外證明開銷不僅讓網絡的性能永遠有一個多出來的包袱, 同時對 EVM 兼容的技術實現上來說也是一個巨大阻礙.
- 可以更方便地做隱私等需求: 既然已經使用 zk 了, 那麼在做一個真正隱私的 zk-zk Rollup 的開發難度會比 zk-Op Rollup 簡單很多. 當然也有 ZKOPRU 這樣的 zk-Op Rollup 項目已經上線.
- 優化方向: 對於 Optimistic Rollup 來說, 並行化的 tx 處理是很直接且很有效的一種優化, 而 zk Rollup 用同樣的方案的話 (StarkNet 下個版本的 sequencer 可以並行了), 長遠來看還是會輸給 Optimistic Rollup (又是額外的證明開銷的緣故), 因此 zk Rollup 會採取 Fractal L3 scaling 的替代方案, 也就是在 Rollup 上面繼續搭 Rollup. 递歸的超能力不僅可以讓 L2 驗證 L3 的證明是正確的, 同時也能讓 L1 驗證 L2 對 L3 的驗證的正確與否.
- 具體優化方向: 均是從路線圖與預想的設計方案中得來, 目前並無實踐. 個人認為需要很長的時間才能完成這些升級. 其中一些升級是有副作用的, 比如引入一種新機制就需要額外的信任假設.
雖然這張圖得出了 Optimistic Rollup 的性能會在長遠角度高於 zk Rollup 的結論, 但是由數學所保證的信任是更強的. 我認為 Rollup 性能的終局是 Optimistic, 但是真正總體的終局會是 zk.
設計上很完美, 工程實現的難度依舊巨大, 上面的對比其實依然和 TPS 的對比一樣, 比較紙上談兵. 我們還是要從實際出發, 去從一個 Rollup 網絡的安全性, 去中心化, 和實際的表現與生態來觀察.
4. Rollup 的未來
對比了 Optimistic Rollup 與 zk Rollup, 我們其實也全面了解了它們未來對性能的優化方案. 那麼在其他角度, Rollup 未來的發展會是怎麼樣呢?
a) 去中心化
在去中心化角度, 我們聚焦了 sequencer 和合約升級的問題, 未來, 一個 Rollup 必須是去中心化的, 那麼就需要如下的去中心化設計:
- 去中心化 sequencer: Optimistic Rollup 的 sequencer 的機制基本會是各種魔改的 PoS (leader election, MEV auction, rotation mechanism) ; 以及 zk Rollup 的類似 Hermez 的 Proof of Efficiency 或者 Proof of Validity Proof 或者 Tendermint PoS 這樣的機制. 當然如果網絡是一個 PoS 的機制, 那麼其實就需要額外的資金成本.
- 去中心化合約升級: 合約升級不應該由多簽管理, 而是由去中心化的治理管理 (涉及代幣) 或完全放棄合約升級權限 (如 Uniswap V2 升級 V3 這種非強制性的升級).
- 多語言客戶端:像以太坊一樣, 多語言的客戶端也是去中心化中的必要條件, 能保證網絡的 100% uptime.
這裡補充一個小的資料, 通過對 Arbiturm 和 Optimism 文檔的對比, 可以體會出它們對去中心化略有不同的態度.
b) 可組合性
Rollup 的可組合性就是不同 Rollup 上的智能合約直接互相讀寫的能力.
對於以太坊上的 Rollup 來說, 其實以太坊作為 settlement layer 是 Rollup 們的共享橋樑. 未來 Rollup 間的可組合性很可能大多是通過 L2 ⇒ L1 ⇒ L2 這樣來形成一個調用 (比如 StarkNet 設計的 dAMM).
而真正的可組合性卻由於 Rollup 間機制不同, 無法互相驗證的問題而難以被實現, 需要更多探索.
c) 功能
對於功能上的拓展, zk Rollup 更加有潛力. L3 的概念讓 App-specific Rollup 特別有吸引力, Immutable X 也已經宣布自己會在 StarkNet 上額外進行協議部署, 讓其能作為一個 L3 存在.
L3 的吸引力在於:
- 讓應用蛻變為一個協議, 開放自己的接口與服務, 實現更大的可組合性
- L1 作為時針, L2 作為分針, L3 作為秒針. 在不影響 L1 脈搏的情況下進一步提升網絡整體性能.
我預想中 L3 最有趣的功能會是:
- 隱私 L3
- 純支付 L3
- NFT 市場 L3
- 遊戲引擎 L3
- DEX 與 DeFi L3
但 L3 的挑戰是 DA 到底如何處理. 我們可能會採用以下幾種不同的模式:
- Secured Rollup: 依然算 Rollup, 像 L2 一樣將 DA 放上 L1, 但可能涉及到更複雜的退出機制.
- Validium/Optimistic Chain: 放上 L2 或 Celestia 等額外 DA 層, 需要額外信任假設.
5. 總結
以上就是我們對 Rollup 所需要的理解.
除此之外, Rollup 創造了無數的新話題: L3, 模塊化區塊鏈, 數據可用性方案, 賬戶抽象所帶來的 UX 提升, 新的技術棧, 新的編程語言, 新的開發者, 新的審計機構…
Rollup 的一切都那麼嶄新, 那麼光鮮, 但又那麼稚嫩…
如何去像 Rollup 這樣, 更好地 "使用" 區塊鏈, 是一個值得探索的問題.