---
title: "樂觀 Rollup"
description: "樂觀 Rollup 簡介：以太坊社群使用的擴容解決方案。"
lang: zh-tw
---

樂觀 Rollup 是設計用來擴展以太坊基礎層吞吐量的第二層 (L2) 協定。它們透過在鏈下處理交易來減少主[以太坊](/)鏈上的運算，從而顯著提高處理速度。與[側鏈](/developers/docs/scaling/sidechains/)等其他擴容解決方案不同，樂觀 Rollup 透過在鏈上發佈交易結果來從主網獲得安全性；或者與[電漿鏈](/developers/docs/scaling/plasma/)不同，後者雖然也使用欺詐證明在以太坊上驗證交易，但將交易資料儲存在其他地方。

由於運算是使用以太坊時緩慢且昂貴的部分，樂觀 Rollup 可以提供高達 10 到 100 倍的擴容性提升。樂觀 Rollup 也將交易作為 `calldata` 或在[資料塊](/roadmap/danksharding/)中寫入以太坊，從而降低使用者的燃料成本。

## 先決條件 {#prerequisites}

您應該已經閱讀並理解我們關於[以太坊擴容](/developers/docs/scaling/)和[第二層 (L2)](/layer-2/) 的頁面。

## 什麼是樂觀 Rollup？ {#what-is-an-optimistic-rollup}

樂觀 Rollup 是一種擴展以太坊的方法，涉及將運算和狀態儲存移至鏈下。樂觀 Rollup 在以太坊之外執行交易，但將交易資料作為 `calldata` 或在[資料塊](/roadmap/danksharding/)中發佈到主網。

樂觀 Rollup 營運商在提交給以太坊之前，會將多筆鏈下交易打包成大型批次。這種方法可以將固定成本分攤到每個批次中的多筆交易上，從而降低終端使用者的費用。樂觀 Rollup 還使用壓縮技術來減少在以太坊上發佈的資料量。

樂觀 Rollup 被認為是「樂觀的」，因為它們假設鏈下交易是有效的，並且不會為發佈在鏈上的交易批次發佈有效性證明。這將樂觀 Rollup 與為鏈下交易發佈密碼學[有效性證明](/glossary/#validity-proof)的[零知識 Rollup](/developers/docs/scaling/zk-rollups) 區分開來。

相反，樂觀 Rollup 依賴欺詐證明機制來偵測交易計算不正確的情況。在以太坊上提交匯總批次後，會有一個時間窗口（稱為挑戰期），在此期間任何人都可以透過計算[欺詐證明](/glossary/#fraud-proof)來挑戰匯總交易的結果。

如果欺詐證明成功，匯總協定將重新執行交易並相應地更新匯總的狀態。成功欺詐證明的另一個影響是，負責將錯誤執行的交易包含在區塊中的定序器會受到懲罰。

如果在挑戰期結束後，匯總批次仍未受到挑戰（即所有交易均正確執行），則該批次被視為有效並在以太坊上被接受。其他人可以繼續在未確認的匯總區塊上進行建構，但有一個警告：如果基於先前發佈的錯誤執行交易，交易結果將被撤銷。

## 樂觀 Rollup 如何與以太坊互動？ {#optimistic-rollups-and-ethereum}

樂觀 Rollup 是建構在以太坊之上運作的[鏈下擴容解決方案](/developers/docs/scaling/#offchain-scaling)。每個樂觀 Rollup 都由部署在以太坊網路上的智能合約集合進行管理。樂觀 Rollup 在以太坊主鏈之外處理交易，但將鏈下交易（分批）發佈到鏈上的匯總合約。就像以太坊區塊鏈一樣，這個交易記錄是不可變的，並構成了「樂觀 Rollup 鏈」。

樂觀 Rollup 的架構包含以下部分：

**鏈上合約**：樂觀 Rollup 的運作由在以太坊上執行的智能合約控制。這包括儲存匯總區塊、監控匯總上的狀態更新以及追蹤使用者存款的合約。從這個意義上說，以太坊充當了樂觀 Rollup 的基礎層或「第一層 (L1)」。

**鏈下虛擬機 (VM)**：雖然管理樂觀 Rollup 協定的合約在以太坊上執行，但匯總協定在獨立於[以太坊虛擬機](/developers/docs/evm/)的另一個虛擬機上執行運算和狀態儲存。鏈下虛擬機是應用程式存在和狀態變更執行的地方；它充當樂觀 Rollup 的上層或「第二層 (L2)」。

由於樂觀 Rollup 旨在執行為 EVM 編寫或編譯的程式，因此鏈下虛擬機結合了許多 EVM 設計規範。此外，在鏈上計算的欺詐證明允許以太坊網路強制執行在鏈下虛擬機中計算的狀態變更的有效性。

樂觀 Rollup 被描述為「混合擴容解決方案」，因為雖然它們作為獨立的協定存在，但其安全屬性源自以太坊。除此之外，以太坊保證了匯總鏈下運算的正確性以及運算背後資料的可用性。這使得樂觀 Rollup 比不依賴以太坊提供安全性的純鏈下擴容協定（例如[側鏈](/developers/docs/scaling/sidechains/)）更安全。

樂觀 Rollup 依賴以太坊主協定來實現以下功能：

### 資料可用性 {#data-availability}

如前所述，樂觀 Rollup 將交易資料作為 `calldata` 或[資料塊](/roadmap/danksharding/)發佈到以太坊。由於匯總鏈的執行基於提交的交易，任何人都可以使用這些錨定在以太坊基礎層上的資訊來執行匯總的狀態並驗證狀態轉換的正確性。

[資料可用性](/developers/docs/data-availability/)至關重要，因為如果無法存取狀態資料，挑戰者就無法建構欺詐證明來對無效的匯總操作提出爭議。由於以太坊提供資料可用性，匯總營運商逃避惡意行為（例如提交無效區塊）的風險得以降低。

### 抗審查性 {#censorship-resistance}

樂觀 Rollup 也依賴以太坊來實現抗審查性。在樂觀 Rollup 中，一個中心化實體（營運商）負責處理交易並將匯總區塊提交給以太坊。這會帶來一些影響：

- 匯總營運商可以透過完全離線，或拒絕產生包含特定交易的區塊來審查使用者。

- 匯總營運商可以透過隱瞞所有權默克爾證明所需的狀態資料，來阻止使用者提取存入匯總合約的資金。隱瞞狀態資料還可以向使用者隱藏匯總的狀態，並阻止他們與匯總進行互動。

樂觀 Rollup 透過強制營運商在以太坊上發佈與狀態更新相關的資料來解決這個問題。在鏈上發佈匯總資料有以下好處：

- 如果樂觀 Rollup 營運商離線或停止產生交易批次，另一個節點可以使用可用資料來重現匯總的最後狀態並繼續產生區塊。

- 使用者可以使用交易資料建立默克爾證明來證明資金的所有權，並從匯總中提取其資產。

- 使用者也可以在第一層 (L1) 上提交交易，而不是提交給定序器，在這種情況下，定序器必須在特定時間限制內包含該交易，才能繼續產生有效的區塊。

### 結算 {#settlement}

在樂觀 Rollup 的背景下，以太坊扮演的另一個角色是結算層。結算層錨定整個區塊鏈生態系統，建立安全性，並在另一條鏈（在此情況下為樂觀 Rollup）上發生需要仲裁的爭議時提供客觀的最終性。

以太坊主網為樂觀 Rollup 提供了一個驗證欺詐證明和解決爭議的中心。此外，在匯總上進行的交易只有在匯總區塊被以太坊接受_之後_才具有最終性。一旦匯總交易被提交到以太坊的基礎層，它就無法被回滾（除非在極不可能發生的區塊鏈重組情況下）。

## 樂觀 Rollup 是如何運作的？ {#how-optimistic-rollups-work}

### 交易執行與聚合 {#transaction-execution-and-aggregation}

使用者將交易提交給「營運商」，這些營運商是負責在樂觀 Rollup 上處理交易的節點。營運商也稱為「驗證者」或「聚合器」，負責聚合交易、壓縮底層資料，並在以太坊上發佈區塊。

雖然任何人都可以成為驗證者，但樂觀 Rollup 驗證者在產生區塊之前必須提供保證金，這非常類似於[權益證明 (PoS) 系統](/developers/docs/consensus-mechanisms/pos/)。如果驗證者發佈無效區塊或在舊但無效的區塊上進行建構（即使他們的區塊是有效的），這筆保證金可能會被罰沒。透過這種方式，樂觀 Rollup 利用密碼經濟學激勵措施來確保驗證者誠實行事。

樂觀 Rollup 鏈上的其他驗證者預計將使用他們擁有的匯總狀態副本來執行提交的交易。如果驗證者的最終狀態與營運商提議的狀態不同，他們可以發起挑戰並計算欺詐證明。

某些樂觀 Rollup 可能會放棄無需許可的驗證者系統，並使用單一「定序器」來執行該鏈。就像驗證者一樣，定序器處理交易、產生匯總區塊，並將匯總交易提交到第一層 (L1) 鏈（以太坊）。

定序器與一般的匯總營運商不同，因為他們對交易的排序有更大的控制權。此外，定序器具有對匯總鏈的優先存取權，並且是唯一被授權向鏈上合約提交交易的實體。來自非定序器節點或一般使用者的交易只會在獨立的收件匣中排隊，直到定序器將它們包含在新的批次中。

#### 將匯總區塊提交給以太坊 {#submitting-blocks-to-ethereum}

如前所述，樂觀 Rollup 的營運商將鏈下交易打包成一個批次，並將其發送到以太坊進行公證。此過程涉及壓縮與交易相關的資料，並將其作為 `calldata` 或在資料塊中發佈到以太坊上。

`calldata` 是智能合約中一個不可修改、非持久性的區域，其行為主要類似於[記憶體](/developers/docs/smart-contracts/anatomy/#memory)。雖然 `calldata` 作為區塊鏈[歷史日誌](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs)的一部分保留在鏈上，但它並不作為以太坊狀態的一部分儲存。因為 `calldata` 不會觸及以太坊狀態的任何部分，所以它在鏈上儲存資料的成本比狀態更便宜。

`calldata` 關鍵字在 Solidity 中也用於在執行時將參數傳遞給智能合約函式。`calldata` 識別在交易期間被呼叫的函式，並以任意位元組序列的形式保存該函式的輸入。

在樂觀 Rollup 的背景下，`calldata` 用於將壓縮的交易資料發送到鏈上合約。匯總營運商透過呼叫匯總合約中所需的函式並將壓縮資料作為函式參數傳遞，來新增一個新批次。使用 `calldata` 可以降低使用者費用，因為匯總產生的大部分成本來自於在鏈上儲存資料。

這裡有[一個匯總批次提交的範例](https://eth.blockscout.com/tx/0x9102bfce17c58b5fc1c974c24b6bb7a924fb5fbd7c4cd2f675911c27422a5591)，以展示這個概念是如何運作的。定序器呼叫了 `appendSequencerBatch()` 方法，並使用 `calldata` 將壓縮的交易資料作為輸入傳遞。

某些匯總現在使用資料塊將交易批次發佈到以太坊。

資料塊是不可修改且非持久性的（就像 `calldata` 一樣），但會在大約 18 天後從歷史記錄中修剪掉。有關資料塊的更多資訊，請參閱[丹克分片](/roadmap/danksharding)。

### 狀態承諾 {#state-commitments}

在任何時間點，樂觀 Rollup 的狀態（帳戶、餘額、合約程式碼等）都被組織成一個稱為「狀態樹」的[默克爾樹](/whitepaper/#merkle-trees)。這個默克爾樹的根（狀態根）參考了匯總的最新狀態，它會被雜湊並儲存在匯總合約中。鏈上的每次狀態轉換都會產生一個新的匯總狀態，營運商透過計算新的狀態根來對其進行承諾。

營運商在發佈批次時需要同時提交舊的狀態根和新的狀態根。如果舊的狀態根與鏈上合約中現有的狀態根相符，後者將被丟棄並替換為新的狀態根。

匯總營運商還需要為交易批次本身承諾一個默克爾根。這允許任何人透過提供[默克爾證明](/developers/tutorials/merkle-proofs-for-offline-data-integrity/)來證明交易包含在批次中（在第一層 (L1) 上）。

狀態承諾，特別是狀態根，對於證明樂觀 Rollup 中狀態變更的正確性是必要的。匯總合約在營運商發佈新的狀態根後會立即接受它們，但稍後可以刪除無效的狀態根以將匯總恢復到其正確狀態。

### 欺詐證明 {#fraud-proving}

如前所述，樂觀 Rollup 允許任何人發佈區塊而無需提供有效性證明。然而，為了確保鏈保持安全，樂觀 Rollup 指定了一個時間窗口，在此期間任何人都可以對狀態轉換提出爭議。因此，匯總區塊被稱為「斷言」，因為任何人都可以對其有效性提出爭議。

如果有人對斷言提出爭議，那麼匯總協定將啟動欺詐證明計算。每種類型的欺詐證明都是互動式的——必須有人發佈斷言，然後另一個人才能對其提出挑戰。差異在於計算欺詐證明需要多少輪互動。

單輪互動式證明機制在第一層 (L1) 上重播有爭議的交易以偵測無效斷言。匯總協定使用驗證者合約在第一層 (L1)（以太坊）上模擬重新執行有爭議的交易，並由計算出的狀態根決定誰贏得挑戰。如果挑戰者關於匯總正確狀態的主張是正確的，營運商將受到保證金被罰沒的懲罰。

然而，在第一層 (L1) 上重新執行交易以偵測欺詐需要為個別交易發佈狀態承諾，並增加了匯總必須在鏈上發佈的資料量。重播交易也會產生大量的燃料成本。基於這些原因，樂觀 Rollup 正在轉向多輪互動式證明，這能以更高的效率實現相同的目標（即偵測無效的匯總操作）。

#### 多輪互動式證明 {#multi-round-interactive-proving}

多輪互動式證明涉及斷言者和挑戰者之間來回的協定，由第一層 (L1) 驗證者合約監督，該合約最終決定說謊的一方。在第二層 (L2) 節點挑戰斷言後，斷言者需要將有爭議的斷言分成相等的兩半。在這種情況下，每個單獨的斷言將包含與另一個斷言一樣多的運算步驟。

然後挑戰者將選擇它想要挑戰的斷言。這個劃分過程（稱為「二分法協定」）會持續進行，直到雙方對關於_單一_執行步驟的斷言產生爭議。此時，第一層 (L1) 合約將透過評估指令（及其結果）來解決爭議，以揪出欺詐方。

斷言者需要提供「單步證明」來驗證有爭議的單步運算的有效性。如果斷言者未能提供單步證明，或者第一層 (L1) 驗證者認為證明無效，他們就會輸掉挑戰。

關於這種類型的欺詐證明的一些注意事項：

1. 多輪互動式欺詐證明被認為是高效的，因為它最小化了第一層 (L1) 鏈在爭議仲裁中必須做的工作。第一層 (L1) 鏈不需要重播整個交易，只需要重新執行匯總執行中的一個步驟。

2. 二分法協定減少了在鏈上發佈的資料量（不需要為每筆交易發佈狀態承諾）。此外，樂觀 Rollup 交易不受以太坊 Gas 限制的約束。相反，重新執行交易的樂觀 Rollup 必須確保第二層 (L2) 交易具有較低的 Gas 限制，以模擬其在單一以太坊交易中的執行。

3. 惡意斷言者的部分保證金會獎勵給挑戰者，而另一部分則被銷毀。銷毀可以防止驗證者之間串通；如果兩個驗證者串通發起虛假挑戰，他們仍然會喪失整個質押的很大一部分。

4. 多輪互動式證明要求雙方（斷言者和挑戰者）在指定的時間窗口內採取行動。未能在截止日期到期前採取行動會導致違約方喪失挑戰資格。

#### 為什麼欺詐證明對樂觀 Rollup 很重要 {#fraud-proof-benefits}

欺詐證明很重要，因為它們促進了樂觀 Rollup 中的_無須信任最終性_。無須信任最終性是樂觀 Rollup 的一個特性，它保證了一筆交易——只要它是有效的——最終都會被確認。

惡意節點可以嘗試透過發起虛假挑戰來延遲有效匯總區塊的確認。然而，欺詐證明最終將證明匯總區塊的有效性並使其被確認。

這也與樂觀 Rollup 的另一個安全屬性有關：鏈的有效性依賴於_一個_誠實節點的存在。誠實節點可以透過發佈有效斷言或對無效斷言提出爭議來正確地推進鏈。無論情況如何，與誠實節點發生爭議的惡意節點都將在欺詐證明過程中失去其質押。

### 第一層 (L1) / 第二層 (L2) 互操作性 {#l1-l2-interoperability}

樂觀 Rollup 專為與以太坊主網的互操作性而設計，並允許使用者在第一層 (L1) 和第二層 (L2) 之間傳遞訊息和任意資料。它們也與 EVM 相容，因此您可以將現有的[去中心化應用程式 (dapp)](/developers/docs/dapps/) 移植到樂觀 Rollup，或使用以太坊開發工具建立新的 dapp。

#### 1. 資產移動 {#asset-movement}

##### 進入匯總

要使用樂觀 Rollup，使用者將 ETH、ERC-20 代幣和其他接受的資產存入第一層 (L1) 上匯總的[跨鏈橋](/developers/docs/bridges/)合約中。跨鏈橋合約會將交易中繼到第二層 (L2)，在那裡鑄造等量的資產並發送到使用者在樂觀 Rollup 上選擇的地址。

使用者產生的交易（如 L1 > L2 存款）通常會排隊，直到定序器將它們重新提交給匯總合約。然而，為了保持抗審查性，如果交易延遲超過了允許的最長時間，樂觀 Rollup 允許使用者直接向鏈上匯總合約提交交易。

某些樂觀 Rollup 採用更直接的方法來防止定序器審查使用者。在這裡，一個區塊由自上一個區塊以來提交給第一層 (L1) 合約的所有交易（例如存款）以及在匯總鏈上處理的交易來定義。如果定序器忽略了第一層 (L1) 交易，它將發佈（可證明的）錯誤狀態根；因此，一旦在第一層 (L1) 上發佈，定序器就無法延遲使用者產生的訊息。

##### 退出匯總

由於欺詐證明機制，從樂觀 Rollup 提款到以太坊更加困難。如果使用者發起 L2 > L1 交易以提取託管在第一層 (L1) 上的資金，他們必須等到挑戰期（大約持續七天）結束。儘管如此，提款過程本身相當簡單。

在第二層 (L2) 匯總上發起提款請求後，該交易將包含在下一個批次中，同時使用者在匯總上的資產將被銷毀。一旦批次在以太坊上發佈，使用者就可以計算默克爾證明，驗證其退出交易是否包含在區塊中。然後就是等待延遲期結束，以在第一層 (L1) 上最終確認交易並將資金提取到主網。

為了避免在將資金提取到以太坊之前等待一週，樂觀 Rollup 使用者可以僱用**流動性提供者** (LP)。流動性提供者承擔待處理的第二層 (L2) 提款的所有權，並在第一層 (L1) 上向使用者付款（以換取費用）。

流動性提供者可以在釋放資金之前（透過自己執行鏈）檢查使用者提款請求的有效性。這樣他們就能保證交易最終會被確認（即無須信任最終性）。

#### 2. EVM 相容性 {#evm-compatibility}

對於開發人員來說，樂觀 Rollup 的優勢在於它們與[以太坊虛擬機 (EVM)](/developers/docs/evm/) 的相容性——或者更好的是，等效性。與 EVM 相容的匯總符合[以太坊黃皮書](https://ethereum.github.io/yellowpaper/paper.pdf)中的規範，並在位元組碼層級支援 EVM。

樂觀 Rollup 中的 EVM 相容性具有以下好處：

i. 開發人員可以將以太坊上現有的智能合約遷移到樂觀 Rollup 鏈，而無需大幅修改程式碼庫。這可以節省開發團隊在第二層 (L2) 上部署以太坊智能合約的時間。

ii. 使用樂觀 Rollup 的開發人員和專案團隊可以利用以太坊的基礎設施。這包括程式語言、程式碼庫、測試工具、客戶端軟體、部署基礎設施等。

使用現有工具很重要，因為這些工具多年來已經過廣泛的稽核、除錯和改進。它也消除了以太坊開發人員學習如何使用全新開發堆疊進行建構的需要。

#### 3. 跨鏈合約呼叫 {#cross-chain-contract-calls}

使用者（外部擁有帳戶）透過向匯總合約提交交易，或讓定序器或驗證者代為提交，來與第二層 (L2) 合約進行互動。樂觀 Rollup 還允許以太坊上的合約帳戶使用橋接合約在第一層 (L1) 和第二層 (L2) 之間中繼訊息和傳遞資料，從而與第二層 (L2) 合約進行互動。這意味著您可以在以太坊主網上編寫第一層 (L1) 合約，以呼叫屬於第二層 (L2) 樂觀 Rollup 上合約的函式。

跨鏈合約呼叫是非同步發生的——這意味著呼叫首先被發起，然後在稍後的時間執行。這與以太坊上兩個合約之間的呼叫不同，後者的呼叫會立即產生結果。

跨鏈合約呼叫的一個例子是前面描述的代幣存款。第一層 (L1) 上的合約託管使用者的代幣，並向配對的第二層 (L2) 合約發送訊息，以在匯總上鑄造等量的代幣。

由於跨鏈訊息呼叫會導致合約執行，發送者通常需要支付運算的[燃料成本](/developers/docs/gas/)。建議設定較高的 Gas 限制，以防止交易在目標鏈上失敗。代幣橋接場景就是一個很好的例子；如果交易的第一層 (L1) 端（存入代幣）成功，但第二層 (L2) 端（鑄造新代幣）由於燃料不足而失敗，則存款將變得無法恢復。

最後，我們應該注意，合約之間的 L2 > L1 訊息呼叫需要考慮延遲（L1 > L2 呼叫通常在幾分鐘後執行）。這是因為從樂觀 Rollup 發送到主網的訊息在挑戰窗口到期之前無法執行。

## 樂觀 Rollup 的費用是如何運作的？ {#how-do-optimistic-rollup-fees-work}

樂觀 Rollup 使用 Gas 費機制（非常類似於以太坊）來表示使用者每筆交易支付的費用。樂觀 Rollup 收取的費用取決於以下組成部分：

1. **狀態寫入**：樂觀 Rollup 將交易資料和區塊頭（由前一個區塊頭雜湊、狀態根、批次根組成）作為 `blob` 或「二進位大型物件」發佈到以太坊。[EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) 引入了一種具成本效益的解決方案，用於在鏈上包含資料。`blob` 是一個新的交易欄位，允許匯總將壓縮的狀態轉換資料發佈到以太坊第一層 (L1)。與永久保留在鏈上的 `calldata` 不同，資料塊是短暫的，可以在 [4096 個 epoch](https://github.com/ethereum/consensus-specs/blob/81f3ea8322aff6b9fb15132d050f8f98b16bdba4/configs/mainnet.yaml#L147)（大約 18 天）後從客戶端修剪掉。透過使用資料塊發佈壓縮交易批次，樂觀 Rollup 可以顯著降低將交易寫入第一層 (L1) 的成本。

2. **使用的資料塊燃料**：攜帶資料塊的交易採用類似於 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) 引入的動態費用機制。類型 3 交易的 Gas 費考慮了資料塊的基礎費用，該費用由網路根據資料塊空間需求和正在發送的交易的資料塊空間使用量來決定。

3. **第二層 (L2) 營運商費用**：這是支付給匯總節點的金額，作為處理交易時產生的運算成本的補償，非常類似於以太坊上的 Gas 費。匯總節點收取較低的交易費用，因為第二層 (L2) 具有較高的處理能力，並且不會面臨迫使以太坊上的驗證者優先處理較高費用交易的網路擁塞。

樂觀 Rollup 應用了幾種機制來降低使用者的費用，包括批次處理交易和壓縮 `calldata` 以降低資料發佈成本。您可以查看 [L2 費用追蹤器](https://l2fees.info/)，以即時了解使用基於以太坊的樂觀 Rollup 的成本。

## 樂觀 Rollup 如何擴展以太坊？ {#scaling-ethereum-with-optimistic-rollups}

如前所述，樂觀 Rollup 在以太坊上發佈壓縮的交易資料以保證資料可用性。壓縮在鏈上發佈的資料的能力，對於使用樂觀 Rollup 擴展以太坊的吞吐量至關重要。

以太坊主鏈對區塊可以容納多少資料設定了限制，以 Gas 單位計價（[平均區塊大小](/developers/docs/blocks/#block-size)為 1500 萬 Gas）。雖然這限制了每筆交易可以使用的燃料量，但也意味著我們可以透過減少與交易相關的資料來增加每個區塊處理的交易量——直接提高擴容性。

樂觀 Rollup 使用多種技術來實現交易資料壓縮並提高 TPS 速率。例如，這篇[文章](https://vitalik.eth.limo/general/2021/01/05/rollup.html)比較了基本使用者交易（發送以太幣）在主網上產生的資料與相同交易在匯總上產生的資料量：

| 參數 | 以太坊 (L1)          | 匯總 (L2)   |
| --------- | ---------------------- | ------------- |
| 隨機數     | ~3                     | 0             |
| Gas 價格  | ~8                     | 0-0.5         |
| 燃料       | 3                      | 0-0.5         |
| 接收方        | 21                     | 4             |
| 價值     | 9                      | ~3            |
| 簽章 | ~68 (2 + 33 + 33)      | ~0.5          |
| 發送方      | 0 （從簽章中恢復） | 4             |
| **總計** | **\~112 位元組**         | **\~12 位元組** |

對這些數字進行一些粗略的計算，有助於顯示樂觀 Rollup 所帶來的擴容性提升：

1. 每個區塊的目標大小為 1500 萬 Gas，驗證一個位元組的資料需要花費 16 Gas。將平均區塊大小除以 16 Gas (15,000,000/16)，顯示平均區塊可以容納 **937,500 位元組的資料**。
2. 如果一筆基本的匯總交易使用 12 個位元組，那麼平均一個以太坊區塊可以處理 **78,125 筆匯總交易** (937,500/12) 或 **39 個匯總批次**（如果每個批次平均包含 2,000 筆交易）。
3. 如果以太坊上每 15 秒產生一個新區塊，那麼匯總的處理速度將達到大約**每秒 5,208 筆交易**。這是透過將一個以太坊區塊可以容納的基本匯總交易數量 (**78,125**) 除以平均區塊時間（**15 秒**）計算得出的。

這是一個相當樂觀的估計，因為樂觀 Rollup 交易不可能構成以太坊上的整個區塊。然而，它可以讓人粗略了解樂觀 Rollup 能為以太坊使用者提供多少擴容性收益（目前的實作提供高達 2,000 TPS）。

在以太坊上引入[資料分片](/roadmap/danksharding/)預計將提高樂觀 Rollup 的擴容性。因為匯總交易必須與其他非匯總交易共享區塊空間，所以它們的處理能力受到以太坊主鏈上資料吞吐量的限制。丹克分片將增加第二層 (L2) 鏈每個區塊可用於發佈資料的空間，使用更便宜、非永久性的「資料塊」儲存，而不是昂貴、永久性的 `CALLDATA`。

### 樂觀 Rollup 的優缺點 {#optimistic-rollups-pros-and-cons}

| 優點                                                                                                                                                  | 缺點                                                                                                                                                |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| 提供大規模的擴容性提升，而不會犧牲安全性或無須信任性。                                                             | 由於潛在的欺詐挑戰，導致交易最終性延遲。                                                                                   |
| 交易資料儲存在第一層 (L1) 鏈上，提高了透明度、安全性、抗審查性和去中心化。                       | 中心化的匯總營運商（定序器）可以影響交易排序。                                                                       |
| 欺詐證明保證了無須信任最終性，並允許誠實的少數群體保護鏈的安全。                                                         | 如果沒有誠實節點，惡意營運商可以透過發佈無效區塊和狀態承諾來竊取資金。                                  |
| 計算欺詐證明對一般的第二層 (L2) 節點開放，不像有效性證明（用於零知識 Rollup）需要特殊的硬體。                         | 安全模型依賴至少一個誠實節點執行匯總交易並提交欺詐證明來挑戰無效的狀態轉換。 |
| 匯總受益於「無須信任活躍度」（任何人都可以透過執行交易和發佈斷言來強制推進鏈）。                    | 使用者必須等待一週的挑戰期到期，才能將資金提取回以太坊。                                              |
| 樂觀 Rollup 依賴精心設計的密碼經濟學激勵措施來提高鏈上的安全性。                                                 | 匯總必須在鏈上發佈所有交易資料，這可能會增加成本。                                                                          |
| 與 EVM 和 Solidity 的相容性允許開發人員將以太坊原生的智能合約移植到匯總，或使用現有工具建立新的 dapp。 |

### 樂觀 Rollup 的視覺化解釋 {#optimistic-video}

您更喜歡視覺學習嗎？觀看 Finematics 解釋樂觀 Rollup：

<VideoWatch slug="rollups-scaling-strategy" startTime="263" />

## 關於樂觀 Rollup 的延伸閱讀 {#further-reading-on-optimistic-rollups}

- [樂觀 Rollup 是如何運作的（完整指南）](https://www.alchemy.com/overviews/optimistic-rollups)
- [Arbitrum 必備指南](https://www.bankless.com/the-essential-guide-to-arbitrum)
- [以太坊匯總實用指南](https://web.archive.org/web/20241108192208/https://research.2077.xyz/the-practical-guide-to-ethereum-rollups)
- [以太坊第二層 (L2) 中欺詐證明的現狀](https://web.archive.org/web/20241124154627/https://research.2077.xyz/the-state-of-fraud-proofs-in-ethereum-l2s)
- [Optimism 的匯總實際上是如何運作的？](https://www.paradigm.xyz/2021/01/how-does-optimism-s-rollup-really-work)
- [OVM 深入探討](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52)
- [什麼是樂觀虛擬機？](https://www.alchemy.com/overviews/optimistic-virtual-machine)
## 教學：以太坊上的樂觀 Rollup 和跨鏈橋 {#tutorials}

- [Optimism 標準跨鏈橋合約演練](/developers/tutorials/optimism-std-bridge-annotated-code/) _– Optimism 標準跨鏈橋的帶註解程式碼演練，用於在第一層 (L1) 和第二層 (L2) 之間移動資產。_
