這篇文章著眼於以太坊的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 這樣, 更好地“使用” 區塊鏈, 是一個值得探索的問題。