原文: 《Foresight Ventures: 第二代Optimistic Rollup》
撰文:msfew@Foresight Ventures

0.為什麼還需要看Optimistic Rollup?

a) OP 還是ZK?

儘管Vitalik 早在幾年前就認定了zkEVM Rollup 是未來, 同時各家zkEVM (Scroll, zkSync, Hermez, Consensys) 也如雨後春筍一般冒出來, 但Optimistic Rollup 仍是目前Rollup 生態的絕對主力, 擁有80 % Layer2 的市場佔有率以及前十Layer2 方案的半壁江山。

為什麼說第二代Optimistic Rollup是Layer2的未來?

zkEVM Rollup 的終局性擴容方案的存在,會讓Optimistic Rollup 完全被淘汰嗎?

  • Optimistic Rollup 和zkEVM Rollup 並非水火不容的存在, 而是在長期內( 甚至永久性的時間內) 會是互補的方案。
  • 對於App-rollup 來說, Optimistic 機制在開發與部署上仍然是最簡潔易用的方案。

b) OP 和ZK 未成熟

Optimistic Rollup 的開發進度領先zkEVM Rollup 兩年左右。但我們Optimistic Rollup 的標杆Arbitrum 與Optimism 都沒有在主網完全上線開放的正式版Fraud Proof。

據Vitalik 所說, 以太坊基金會PSE 的zkEVM 電路有34469 行代碼。這龐大的代碼量需要非常漫長的開發和持續的測試來進行打磨。我們在幾年內都無法完全依賴ZK 系統所帶來的安全性。

c) OP + ZK

早在半年以前,Optimism 的Kelvin 就開始在推特上頻繁地討論Optimism 結合zkVM 的可行性。

他說Optimism 的Bedrock 不會只是Optimistic Rollup 的客戶端, 而是Rollup 客戶端。為了完全保證Rollup 的整體安全性, 客戶端( 或許和Arbitrum 最近的收購有關係?) 與證明的多樣性(Validity Proof 與Fraud Proof) 才是Rollup 真正的未來。

Vitalik 則完善了Kelvin 的方案, 認為可以通過(OP + ZK) + Governance 的2 + 1 組合來實現可靠的Rollup。

為什麼說第二代Optimistic Rollup是Layer2的未來?

在zkEVM 完全穩定和成熟前, 工作流程如下:

  • 發佈區塊
  • 等待24 小時
  • a) 如果期間沒有欺詐挑戰, 發布ZKP, 完全Finalize 區塊。 b) 如果有挑戰, 則引入Governance 通過2 of 3 的模型來裁定最終結果。

在zkEVM 穩定與成熟後:

  • 發佈區塊
  • 定期發布ZKP。
  • a) 如果ZKP 在指定期間正常發布, 則依其為準。 b) 如果ZKP 並未在期間正常發布(Prover failure 或有bug), 則先引入Optimistic 機制, 直到ZK 機制恢復。

這兩種方案都需要Optimistic 機制的存在, 從而保證整個Rollup 系統的liveness 和safety。

因此Optimistic 機制的發展仍然是Rollup 宇宙版圖中的重頭戲。

1.第二代Optimistic Rollup

第二代Optimistic Rollup 一詞源於Arbitrum Nitro 的白皮書標題。略早與Nitro 發布的Optimism Bedrock 也算是第二代Optimistic Rollup。

兩者的整體差異其實不大( 如果你讀Arbitrum 和Optimism 的blog, 甚至會覺得是不是一樣的), 本質上都是與自己的一個新的major release。第二代與第一代的差別也無外乎是如下優化:

  • 開發者體驗: 更強的EVM 等效性和兼容性, L1 互操作性…
  • 用戶體驗: 更高的吞吐量, 更低的gas…

但是在設計細節上仍然有取捨的不同, 我們可以在這些差異上看到Arbitrum 與Optimism 在構建下一代Optimistic Rollup 上的推敲。

為什麼說第二代Optimistic Rollup是Layer2的未來?

2.第二代Optimistic Rollup 設計選型對比

Arbitrum 與Optimism 的開發人員分別對兩者的架構進行了比較和對比, 這裡我們就僅討論與用戶或應用開發者有關的點:

a) 區塊時間

區塊時間設計的選擇主要是兩種: 固定時間或者可變時間。可以理解成PoS 和PoW 的以太坊的區別。

Optimism: 固定時間(2 秒)

固定時間可以保證使用區塊(block.number) 來作為時間戳的合約的穩定性, 比如Sushiswap 的Masterchef 合約。這些合約不用時間戳可能是考慮到礦工對時間戳有控制權( 算是Selfish mining 或者MEV?)。

第一代的Optimism 採用了可變時間+ 1 tx/block 的設計, 因此由於時間計算的問題, Stargate 的獎勵發放就出現了一些問題。

對於1tx/block 的老設計, Optimism 認為由於區塊頭的存在, 存儲鏈的開銷太大了, 除此之外狀態根也需要頻繁更新, 成本過高。

Arbitrum: 可變時間

可變時間設計主要是為了減小tx 確認的延遲。目前一秒最多可以創建4 個區塊, 如果沒有tx 則跳過, 因此是可變時間。

對於以block。 number 進行計時的合約, Arbitrum 上block。 number 會直接返回以太坊的區塊編號, 因此不會有穩定性和適配上的問題。除此之外Arbitrum 也提供了相應的預編譯來提供L2 的區塊編號。

b) Geth 的定位

Geth 是以太坊的執行客戶端, 佔據了約80% 的節點總量。

Optimism: 作為獨立引擎

將Geth 作為獨立執行引擎, 而非庫處理。好處就是可以完全重用之前的基礎設施, 同時可以無縫切換到其他執行客戶端。

Arbitrum: 作為庫

由於Arbitrum 有更多的L2 特定狀態, 例如L1 和L2 的gas 定價, 以及retryable ticket, 因此將Geth 作為庫處理, 使用hooks 進行調用。

c) L1-L2 消息inclusion 延遲

Optimism: ~2 分鐘

Bedrock 的延遲是幾個L1 塊的長度, 最壞的情況是延遲十分鐘。

Bedrock 的架構更像一個L1, 極端情況下可以通過reorg 自己來應對L1 的reorg。

超過10 分鐘沒被L2 包含的tx 就直接被判定為無效了。

Arbitrum: 10 分鐘

Nitro 延遲十分鐘處理, 如果超過十分鐘, 可以通過L1 調用來強制包含tx。

Nitro 的目標是為了用戶體驗, 讓L2 永遠不需要reorg。

兩者都是在不同角度對用戶體驗進行了取捨。

d) L1-L2 消息重試機制

消息重試機制主要就是為了解決L1-L2 跨鏈過程中, L1 確認了, L2 失敗的問題。

Optimism: 合約中實現

開發者可以參考L1 Optimism Portal 的實現, 或者在合約內定義自己的重試機制。

Arbitrum: 節點中實現

重試機制在ArbOS 節點中實現。

e) L2 費用算法

L2 的gas 計算基本上就是L2 execution gas + L1 calldata cost。

Optimism: 重用EIP-1559

好處就是錢包和其他基礎設施可以無縫接入。

Optimism 對L2 gas 的計算基本上是將L2 execution gas 的成本壓到了最低(99% 都是calldata cost)。

Arbitrum: 使用定制系統

由於之前提到的可變區塊時間設計, 因此gas 定價更加複雜, 所以沒有採用EIP-1559。

f) L1 費用算法

Optimism:

L1 gas 水平到L2 的傳輸幾乎是即時的。目前Sequencer 的收益基本完全來源於L1 gas 費用的乘數, EIP-4844 後, 它們的收入會來自MEV。

未來會通過L1-L2 的消息傳遞來傳輸這部分數據, 從而保證安全性( 成為協議一部分, 且可被挑戰)。

Arbitrum:

Arbitrum 的L1 費用算法通過L1 gas 的平均值來收取費用, 且通過自己的控制系統來從實際支付的費用中來獲取反饋, 從而保證L1 gas 收取和支出的穩定。

整體策略中也包括, 為了避免Sequencer 過度收費, 因此在gas 價格低時才發布batch。

除此之外, 兩者也探討了很多具體架構和技術細節上的區別, 但內容過於domain-specific 且與用戶和應用開發者無關, 因此大家可以自行觀看。

3.Rollup 的未來依然是Optimistic 的

最近zkEVM Rollup 以及整個ZK 生態的熱度確實非常高(Devcon Bogota 基本是ZK + MEV + 其他), 以至於大多數以太坊研究者或多或少忽視了Optimistic Rollup 的發展, 以及在第二代中這些有趣的設計細節。

Optimistic 作為Rollup 的領頭部隊, 正在L2 UX 和DX 上進行試驗性的開拓和開創性的創新。它們所做的可以為zkEVM Rollup 鋪好地基。

在未來兩到三年, 甚至更長的時間內, zkEVM Rollup 完全可用之前, Rollup 的主導地位仍會是由Optimistic 佔據, 且80% 的新Rollup (App-rollup) 則會採用更為成熟和可用的Optimistic 機制。

即使是在長期zkEVM Rollup 成熟後, 為了Rollup 的整體liveness 和safety, Optimistic 依舊會是整個系統中的重要基石。

The future of rollup is (still) optimistic.

Links:

0:

https://hackmd.io/@vbuterin/zk_slides_20221010#/1

https://twitter.com/kelvinfichter/status/1553323106030260224

https://hackmd.io/@vbuterin/zk_slides_20221010#/7

1:

https://github.com/OffchainLabs/nitro/blob/master/docs/Nitro-whitepaper.pdf

https://medium.com/offchainlabs/arbitrum-nitro-one-small-step-for-l2-one-giant-leap-for-ethereum-bc9108047450

https://dev.optimism.io/introducing-optimism-bedrock/

2:

https://twitter.com/PlasmaPower0/status/1578804117027184641

https://norswap.com/bedrock-vs-nitro/

https://twitter.com/yaish_aviv/status/1555445520646250496