跳至內容
0%

Optimistic Rollups 如何運作(完整指南)

Alchemy team headshot

作者 Alchemy

發布於 2023年8月9日閱讀時間 4 分鐘

曾經被視為邊緣構想的 Ethereum——世上第一個智能合約平台——多年來已大幅成長,如今每天承載近 3,000 個去中心化應用程式、超過 4,000 個智能合約,以及超過 90,000 筆交易。

但 Ethereum 活動量的增加也帶來了代價:可擴展性。

區塊大小與區塊時間的限制,雖然對去中心化與安全性而言是必要的,卻降低了 Ethereum 擴大規模、接納更多使用者的能力。結果就是大多數 Ethereum 使用者都熟悉的一系列問題——也就是高昂的 gas 費用與緩慢的交易速度。

要安全地擴展 Ethereum,需要在不引入信任假設的情況下提升網路吞吐量與延遲的可擴展能力。這正是第 2 層 Rollups 與側鏈等多種擴展方案所嘗試達成的目標。

本文將探討 Optimistic Rollups(ORUs),這是一類旨在讓使用 Ethereum 更便宜、更快速的 L2 Rollup 解決方案。

什麼是 optimistic rollups?

Optimistic rollups 是一種第 2 層(L2)架構,透過將運算與資料儲存移至鏈下,來提升 Ethereum 基礎層的吞吐量與延遲表現。 Optimistic rollup 在 Ethereum Mainnet 之外處理交易,藉此減輕基礎層的壅塞情況,並提升可擴展性。

「optimistic」這個標籤指出了 optimistic rollups 的一項顯著特徵:它們在鏈上只公開少量交易資訊,並自動假設所有交易皆為有效。之所以稱為「rollups」,是因為它們會在提交至 Mainnet 之前,將數千筆交易彙整(「roll up」)成一個批次。

Optimistic rollup 的架構

1. 進入 optimistic rollup

Optimistic rollups 使用部署在 Ethereum 上的智能合約,來管理 L2 鏈與 L1 區塊鏈(Ethereum)之間的互動。Rollup 使用者必須先將資金存入其中一個智能合約,才能在 rollup 上解鎖等額的資金。

第三方(稱為 sequencer)在收到使用者於 rollup 合約中存款的證明後,會在 rollup 上將等值資金撥入該使用者帳戶。此後,使用者便可在 rollup 上自由交易,直到用盡餘額為止。

optimistic rollup 的架構
資料來源

2. 使用 optimistic rollup

在 rollup 上,使用者簽署交易並將其提交給 sequencer,由 sequencer 負責排序與執行交易。sequencer 會驗證交易、將資料壓縮成區塊,並以單筆交易的形式將批次提交至 Ethereum。

這也是 rollup 合約發揮作用的另一個環節。鏈上合約會儲存一個「state root」,也就是 rollup 狀態的 Merkle root。讓我們進一步拆解說明:

State

State(狀態) 是指某個網路在特定時間點上可取得的資訊集合。「rollup 的 state」描述的是 L2 鏈目前的狀況,並具體說明現有帳戶、餘額、智能合約等細節。

在 rollup 上執行的每一筆交易,都會導致其 state 發生變化——舉例來說,當 Alice 傳送 5 ETH 給 Bob 後,她的餘額就會減少。因此,交易被稱為 state transitions(狀態轉換),因為 rollup 在執行一筆交易後,會從舊的 state 移動到新的 state。

Merkle root

Merkle root 讓使用者能夠利用加密雜湊值來編碼大量資訊。Merkle root 也讓檢查某筆資料(例如一筆交易)是否屬於較大資料集(例如一批交易)的一部分變得更容易。

因此,儲存在 rollup 合約中的「state root」是一種加密承諾,用來驗證 rollup 在不同時間點的狀態。當 sequencer 向 rollup 合約提交一批交易時,必須同時包含一個 pre-state root 與一個 post-state root。

  1. Pre-state root:舊的 state root,描述提交的交易執行前,rollup 的狀況。

  2. Post-state root:新的 state root,描述提交的交易執行後,rollup 的狀況。

當 sequencer 提交該批交易後,合約會驗證 pre-state root 是否與現有的 state root 相符。若兩者相符,合約便會捨棄舊的 state root,並儲存 sequencer 所提出的新 state root。

這代表 post-state root 中所參照的交易已經最終確定,無法被逆轉。請注意,sequencer 不需要提交批次交易有效性的證明。

唯一需要提交證明的情況,是當某位 verifier 透過 fraud proof 舉報某筆 rollup 交易為詐欺交易時。我們會在本文後續章節說明 fraud proof 的運作機制。

Merkle tree 產生 optimistic rollup state root 的示意圖
資料來源

3. 退出 optimistic rollup

假設 Alice(使用者)受夠了這種 rollup 的麻煩事,想要從 Ethereum Mainnet 上的 rollup 合約中提領她的資金。要做到這一點,她需要一份 Merkle proof——沒錯,你猜對了——用以證明她的交易已被納入 rollup 的 state root 之中。

要建構這份 Merkle proof,需要取得最初的交易資料,而這些資料應由 sequencer 提供。若一切順利,Alice 便能取得資料、建立 Merkle proof,並將其提交給 rollup 合約。

但依賴 sequencer 提供交易資料,會引入信任假設。sequencer 有可能作惡,執行一筆將 Alice 的代幣轉入自己錢包的交易,並拒絕提供她證明資金所有權所需的資料。即使是較不惡意的情況,例如 sequencer 離線,也仍可能威脅 optimistic rollups 的去中心化與安全性。

Optimistic rollups 藉由要求 sequencer 在 Ethereum 主要執行層上公開完整交易資料,來解決這個問題。這些資訊會以「calldata」的形式發佈在 Ethereum Mainnet 上,其成本比儲存於 Ethereum Virtual Machine 的 memory 或 storage 中要低(進一步降低了 rollup 費用)。

這樣做達成了兩個目標:

  1. 若某個 sequencer 離線,另一個 sequencer 可以利用該交易資料重建 rollup 的 state,並繼續產出區塊。

  2. Alice(使用者)可以自行下載該資料,並用它來建立 Merkle proof。

正是這種鏈上資料可用性的做法,使得 optimistic rollups 比其他擴展方案安全得多。由於交易資料儲存在 Ethereum 上,只要 Ethereum 持續正常運作,使用者的資金便始終安全無虞。

因此,無論透過哪種方式,Alice 最終都能建立 Merkle proof 來證明資金所有權。然而,她必須等待 dispute period(爭議期) 結束後才能提領資金。在 optimistic rollups 中,dispute period 是指從提交提領請求到取得所請求資金之間,1 到 2 週的間隔時間。

在此期間,任何人都可以發布 fraud proof,聲稱某筆特定交易或某批交易無效。若該 fraud proof 成立,sequencer 的保證金(作為誠實行為的擔保)將被沒收,Alice 的「資金」交易將被還原,而舉發者(稱為 verifier)則會因其努力獲得獎勵。

若無人對 Alice 的提領請求提出異議,她便能在 1 到 2 週後從 rollup 合約中取得資金。

什麼是 fraud proof?

Fraud proof 是一種聲稱某筆 state transition(即交易)無效,因而整批交易應被還原的主張。雖然機制複雜,fraud proof 的運作高度依賴前文提到的 state root。

這個流程始於某一方(verifier)發現 L1 鏈上 state root 所參照的 rollup state,與 rollup 鏈的實際 state 之間出現不一致。

舉例來說,sequencer 提交的 post-state root 顯示 Alice 的餘額減少了 5 ETH、Bob 的餘額增加了同樣數目,但 Alice 實際上從未進行過這筆轉帳。

verifier 可以對此 state transition 提出「挑戰」,並證明其無效性。之所以能做到這點,是因為 verifier 會下載每一筆交易的資料,將其套用到自己所持有的 rollup state 副本上,並自行計算出 post-state root。

若 sequencer 的 post-state root 與 verifier 的相符,就不會有任何後續動作。但若 sequencer 的 post-state root 不同——很可能是因為其中包含了如 Alice 案例中所描述的偽造交易——那麼 verifier 便可觸發 fraud proof 的計算流程。

用於爭議 optimistic rollup 交易的 fraud proof 流程示意圖
Source: https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/#disputing-transactions

Fraud proof 如何運作?

以下是 fraud proof 流程的高層次描述:

  1. verifier 發起挑戰,並提供以下資訊:

    a. 有爭議的 state transition

    b. pre-state root

    c. Rollup state 資料

    d. 他們版本的 post-state root。

    1. 該筆交易會在 L1 鏈上的一個沙盒環境中重新執行,過程中會使用挑戰者所提供的資訊等資料。

這個「沙盒環境」其實是一個運行在 Ethereum 上的智能合約,同時也扮演虛擬機器(VM)的角色。

  1. 若計算結果所得出的 post-state root 與挑戰者所提出的一致,那麼便可確認 sequencer 確實發佈了一個包含無效 state transition 的批次。

該無效批次(以及此後發佈的其他批次)將被還原,使 rollup 恢復至先前的狀態。

我們必須說明,fraud proof 機制實際上比這裡所描述的更為複雜。

這篇關於 rollups 中 fraud proofs 的文章,或許能提供更多背景資訊。

Fraud proof 與 validity proof 有什麼差別?

Fraud proof 與 validity proof 的主要差異在於前者是在鏈上進行計算。Validity proof(也稱為零知識證明)則是在鏈下(即 rollup 上)計算,並在 Ethereum 上進行驗證。

正如我們在比較各類零知識證明的文章中所解釋的,SNARK 或 STARK 之類的 validity proof,是用來證明鏈下所執行交易的有效性。這正是零知識 rollup的基礎所在。

在 ZK-rollup 中,每一批交易都會以該筆交易資料作為輸入,產生一份 validity proof。此 validity proof 會與該批交易一併提交至 Ethereum Mainnet,並由鏈上合約進行驗證。這代表交易可以立即被宣告為有效,無需像 optimistic rollups 那樣等待挑戰期。

fraud proof 與 ZK proof 之間另一項差異,在於後者在鏈上驗證起來相對容易一些。智能合約只需執行該 validity proof,即可判定批次交易的有效性。而使用 fraud proof 時,整個 state transition 必須先重新執行過一遍,才能完成 fraud proof 的計算。

Optimistic rollups 與 zk rollups 有什麼差別?

optimistic rollups 與 ZK rollups 之間的主要差異,來自前者對智能合約的支援、延遲提領機制、對加密經濟誘因的依賴,以及安全性特性。

以下是 optimistic rollups 與 ZK rollups 的詳細比較:

Features
Optimistic Rollups
ZK Rollups
Proof
使用 fraud proofs 來證明交易的有效性。
使用 validity(零知識)proofs 來證明交易的有效性。
Capital Efficieny
提領資金前需等待 1 週的延遲期(dispute period)。
由於 validity proofs 能提供不可辯駁的證據,證明鏈下交易的真實性,使用者可立即提領資金。
Data Compression
以 calldata 形式將完整交易資料發佈到 Ethereum Mainnet,這會增加 rollup 的成本。
由於 ZK-SNARKs 與 ZK-STARKs 已能保證 rollup state 的正確性,因此不需要在 Ethereum 上發佈交易資料。
EVM Compatibility
使用 Ethereum Virtual Machine(EVM)的模擬環境,因此能執行任意邏輯並支援智能合約。
普遍不支援 EVM 運算,不過已出現少數與 EVM 相容的 ZK-rollups。
Rollup Costs
由於在 Ethereum 上只發佈極少量資料,且除特殊情況外不需為交易提交證明,因此可降低成本。
由於每個交易區塊都需要產生並驗證證明,因而面臨較高的額外開銷。ZK proofs 的產生需要專用且昂貴的硬體,鏈上驗證成本也較高。
Trust Assumptions
不需要 trusted setup。
運作時需要 trusted setup。
Liveness Requirements
需要 verifiers 持續監控實際的 rollup state 與 state root 中所參照的 state,以便偵測詐欺行為。
使用者不需要有人監看 L2 鏈以偵測詐欺行為。
Security Properties
依賴加密經濟誘因,來讓使用者相信 rollup 的安全性。
依賴加密學上的保證來確保安全性。

有哪些主要的 optimistic rollup 區塊鏈?

就 Total Value Locked(TVL)而言,主要的 optimistic rollup 區塊鏈為 Arbitrum、Optimism、Metis Andromeda 與 Boba Network。 以下是各個 optimistic rollups(ORUs)的概覽:

1. Arbitrum

Arbitrum 是一個 optimistic rollup 專案,透過將運算與資料儲存移至鏈下,來改善 Ethereum 的使用者成本與交易速度。Arbitrum Virtual Machine(AVM)支援與 EVM 相容的智能合約,讓使用者能以 Ethereum 一小部分的成本,使用自己喜愛的應用程式。

2. Optimism

Optimism 是一條與 EVM 相容的 optimistic rollup 鏈,善用了 Ethereum 的安全性保證。Optimism 採用 optimistic rollup(OR)架構,將數千筆鏈下交易彙整起來,為使用者節省 gas 費用。

3. Metis andromeda

Metis Andromeda 是一個基於 optimistic rollups、具有可擴展性、低成本且功能完整的 L2 協議。Metis Andromeda 獨特的技術堆疊可應用於各種使用情境,包括應用程式、DAOs 以及 DeFi。

4. Boba network

Boba Network 是一條採用 optimistic rollup 設計來擴展吞吐量的 Ethereum L2。Boba Network 提供流動性提供者(LP)服務,讓使用者無需等待七天的挑戰期結束,即可立即提領資金。

哪些 optimistic 區塊鏈或專案有代幣?

以下的 optimistic rollup 專案擁有代幣:

  • Optimism(OP)
  • Boba Network(BOBA)
  • Metis Andromeda(METIS)

Optimistic rollup 工具

Optimistic rollups 是一種實用的解決方案,能以更具成本效益且更高效的方式,擴展應用程式規模並與智能合約互動。但在此之前,你需要各種工具,才能安全且輕鬆地使用 optimistic rollups。

以下是提供給開發者與終端使用者的各種 optimistic rollup 工具:

通往 optimistic 第 2 層區塊鏈的跨鏈橋

雖然 optimistic rollups 是建構在 Ethereum 基礎層之上,但兩條鏈上的資產彼此並不原生相容。不過,你可以使用跨鏈橋,將資金從 Ethereum 等 L1 鏈轉移至 optimistic rollup:

以下是連接 L1 鏈與不同 L2 rollups 的橋接範例:

連接 Arbitrum 的橋接

  • Arbitrum Token Bridge
  • cBridge
  • Hop Protocol
  • Synapse Protocol
  • Anyway Bridge
  • DeGate Bridge

連接 Optimism 的橋接

  • Connext
  • Celer Bridge
  • Li.Fi
  • Optimism Bridge
  • Poly Network
  • Via Protocol
  • Synapse Protocol
  • Across

連接 metis andromeda 的橋接

  • Metis Bridge
  • cBridge
  • AnySwap
  • Synapse Protocol

連接 boba network 的橋接

  • Across
  • Boba Standard Token Bridge/Fast Token Bridge
  • cBridge
  • Synapse Protocol

Optimistic rollup 測試網

測試網 是一種模擬相對應主網(Mainnet)行為的公開區塊鏈網路。與真正的區塊鏈不同,測試網不使用真實資金,讓開發者能以最低風險部署並測試智能合約。

部分 optimistic rollups 擁有 Ethereum 測試網的對應版本,例如 Rinkeby,可用來測試你的 dApp:

1. Optimism Ethereum Kovan Testnet

Optimistic Ethereum Kovan Testnet 是一條與 EVM 相容、專為測試用途設計的 optimistic rollup 鏈。就像 Ethereum Mainnet 上的 Optimism 一樣,Optimistic Ethereum Kovan Testnet 也是為了提供比 L1 更快、更便宜的交易而設計。

2. Arbitrum Rinkeby Testnet

Offchain Labs(Arbitrum 背後的團隊)在 Rinkeby 網路上推出了一條與 EVM 等效的 rollup 鏈。Arbitrum Rinkeby testnet 讓開發者無需下載任何軟體,即可將 Solidity 智能合約部署到 Arbitrum rollup 上。它還附帶一個區塊鏈瀏覽器,以及一座用於移動 ERC-20/ERC-721 代幣的橋接。

3. Boba network Rinkeby Testnet

Boba Network 是另一個在 Rinkeby testnet 上擁有與 EVM 相容之 rollup 鏈的專案。你可以透過 Alchemy 的 Rinkeby faucet 請領測試網 ETH,用來建立或測試你的智能合約。

結語

Optimistic rollups 是利用第 2 層架構擴展 Ethereum 的重要一環。Optimistic rollups 建立在 Ethereum 的安全性與去中心化基礎之上,同時提供更低廉的費用與更快速的交易。

Alchemy 支援兩大基於 optimistic rollups 的專案:Arbitrum 與 Optimism。立即免費註冊,看看你如何運用基於 Ethereum 的 optimistic rollups,來擴展你的 dApp。

常見問題

什麼是 optimistic rollups?

Optimistic rollups 是一種第 2 層擴展方案,透過將運算與資料儲存移至鏈下,同時假設所有交易皆為有效(除非受到挑戰),來提升 Ethereum 的吞吐量與延遲表現。

如何將資金存入 optimistic rollup?

使用者將資金存入部署在 Ethereum 上的智能合約,sequencer 在收到存款證明後,會在 rollup 上撥入等值資金給使用者。

Optimistic rollups 中的挑戰期是什麼?

挑戰期是指提交提領請求後的 1 到 2 週間隔期間,在此期間內任何人都可以發布 fraud proof,對無效交易提出異議,之後資金才能被提領。

Sequencer 扮演什麼角色?

sequencer 負責排序與執行交易、將交易資料壓縮成區塊、以單筆交易的形式將批次提交至 Ethereum,並在收到存款後為使用者撥入資金。

Optimistic rollups 與 ZK rollups 有何不同?

optimistic rollups 假設交易皆為有效,僅在遭到挑戰時才使用 fraud proofs;而 ZK rollups 則對每一批交易都使用 validity proofs,並允許使用者立即提領,無需等待期。

什麼是 fraud proof?

fraud proof 是一種主張某筆 state transition 無效的聲明,當 verifier 發現 rollup state 出現不一致時便會觸發,並提交證據以還原該詐欺批次。

為什麼 optimistic rollups 會有提領延遲?

1 到 2 週的提領延遲,讓 verifiers 有時間偵測並挑戰任何詐欺交易,之後資金才會從 rollup 合約中釋出。

主要的 optimistic rollup 區塊鏈有哪些?

按 Total Value Locked 計算,主要的 optimistic rollup 區塊鏈為 Arbitrum、Optimism、Metis Andromeda 與 Boba Network。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。