---
title: "開發者的 Ethereum 擴容方案指南"
description: "為何需要擴容方案，以及各類型方案總覽"
---

# 開發者的 Ethereum 擴容方案指南

Ethereum 強調去中心化與安全性，這意味著交易處理速度較慢。這會影響網路吞吐量，並衝擊[去中心化應用程式](https://www.alchemy.com/dapps/top/defi-dapps)的擴展能力。

已有許多方案被提出來解決 Ethereum 的擴展性問題，各自提供不同的優勢。本指南將介紹 Ethereum 的擴展方案，說明其運作方式以及為何重要。

## 什麼是擴展性？

**擴展性指的是系統在使用量呈指數增長時，仍能維持功能運作的能力。**在區塊鏈技術的脈絡下，擴展性指的是區塊鏈在不影響功能的情況下，支援更多交易量的能力。

目前 Ethereum 的交易處理能力僅限於每秒 7-15 筆交易（TPS）。相較之下，傳統的集中式資料庫——像是 Oracle Database 和 Microsoft SQL Server——每秒可處理數千筆交易。

<ImageBlock
  src="https://media.alchemy.com/1703255069-ethereum-transactions-per-second.png"
  alt="ethereum 每秒交易數圖表"
  width={1600}
  height={431}
/>

[來源：Blockchair](https://blockchair.com/ethereum/charts/transactions-per-second)

### Ethereum 設計影響擴展性的兩種方式

Ethereum 的吞吐量低、處理速度慢，是因為它將去中心化與安全性置於擴展性之前（擴展性三難）。

以下是 Ethereum 設計影響擴展性的幾種方式：

#### 1. Ethereum 的共識演算法依序處理交易

Ethereum 使用工作量證明（PoW），這意味著網路上的交易必須經過所有節點的接受與驗證。這有助於促進去中心化，更重要的是，有助於安全性。

缺點是交易的循序執行會影響交易終局性（確認一筆交易所需的時間）。這進一步導致 Ethereum 無法支援高 TPS 速率。

#### 2. Ethereum 將區塊大小限制在 1MB

Ethereum 限制一個被挖出的區塊能容納的資料量（1MB），因為限制區塊大小能讓節點更有效地儲存區塊鏈歷史紀錄，藉此提升去中心化程度。較大的區塊大小會讓一般人難以運行完整節點，損害去中心化。

然而，1MB 的區塊大小限制減少了礦工能塞進一個區塊的交易資料量，進而影響網路吞吐量。較小的區塊大小也會影響 gas 的成本，也就是在 [Ethereum Virtual Machine](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm) 中執行操作所需的運算資源。

由於礦工的運算能力有限，他們往往被迫優先處理手續費較高的交易。這在 Ethereum 使用者之間形成了某種競價戰，迫使交易手續費大幅飆升。

## 什麼是 Ethereum 擴展方案？

**Ethereum 擴展方案是專為改善 Ethereum 網路交易執行效率而設計的平台。**像是 layer 2 rollup 和側鏈這類的 Ethereum 擴展方案，是採用不同機制來提升網路吞吐量的協定。

<ImageBlock
  src="https://media.alchemy.com/1703255042-ethereum-scaling-solutions-diagram.png"
  alt="ethereum 擴容方案示意圖"
  width={1600}
  height={987}
/>

[來源：Reddit](https://www.reddit.com/r/ethfinance/comments/pdp4ch/daily_general_discussion_august_29_2021/harsrjh/?context=3)

### Layer 1 與 layer 2 擴展方案的比較

擴展方案大致可分為兩類：「鏈上」與「鏈下」方案，區分依據在於其執行的位置。

#### Layer 1 擴展方案

Layer 1 擴展涉及對區塊鏈網路本身進行變更，重寫基礎層。「鏈上」這個描述意味著[針對 Ethereum 的擴展升級](https://www.alchemy.com/overviews/ethereum-2-0-your-guide-for-2022)是在區塊鏈本身上執行的。

##### Layer 1 可透過增加區塊大小來擴展

一個潛在的 Layer 1 擴展改善方式是增加區塊大小。如果 Ethereum 的 1MB 區塊大小提高，礦工就能有更多空間在區塊中容納額外的交易資料。

雖然增加 Ethereum 的區塊大小會提升 TPS 速率，但副作用是會緩慢地朝中心化發展，因為隨著區塊大小增長，區塊鏈的體積也會增加——這使得運行完整節點變得困難（除非你擁有超級電腦）。因此，Ethereum 社群已排除以增加區塊大小作為擴展方案的可能性。

##### Layer 1 可透過區塊鏈分片實現交易平行處理來擴展

[區塊鏈分片](https://www.alchemy.com/overviews/ethereum-sharding-an-introduction-to-blockchain-sharding)是一種擴展性改善方案，它以交易的平行執行取代 Ethereum 預設採用的循序執行模型。在分片機制中，區塊鏈被劃分為較小的鏈（分片），各自驗證與處理不同的交易。

**先看看 Ethereum 目前的運作方式：**

交易會在整個網路中被廣播，直到獲得驗證為止。分片機制不需要每筆交易都經過所有節點的核准。相反地，每個分片都有負責核准交易的驗證者（稱為 collator）。

每個 **collation**（分片鏈上交易的集合）必須由三分之二的 collator 簽署。此外，提議的 collation 必須先被加入主鏈才能達成終局性。這些措施共同確保了系統的安全性。

透過分片，Ethereum 能在不犧牲去中心化或安全性的情況下提升 TPS。由於各個分片鏈能同時處理不同的交易，網路整體的處理能力隨之提升。此外，網路參與者仍可透過密碼學證明來驗證分片 collation 的有效性。

<ImageBlock
  src="https://media.alchemy.com/1703255000-ethereum-sharding-diagram.jpeg"
  alt="ethereum 分片示意圖"
  width={792}
  height={379}
  caption="來源：Genesis Block"
/>

[來源：Genesis Block](https://genesisblockhk.com/what-is-sharding-a-solution-for-blockchain-scalability/)

#### Layer 2 擴展方案

Layer 2（L2）擴展改善方案之所以如此命名，是因為它們是在主鏈（Layer 1）之外執行的。Layer 2 擴展也被稱為「鏈下」方案，涉及在依賴主鏈提供安全性的獨立網路上處理交易。

L2 方案的設計往往著重於交易速度與擴展性——去中心化與安全性在此相對次要。由於它們會將交易資料發佈到 Ethereum 主層，L2 能享有主網的去中心化與安全性優勢。此外，由於 L2 方案建構在 Ethereum 之上，它們不需要自己的原生代幣。

這些鏈下協定能將多筆交易聚合成單一交易，再加入主鏈。這減輕了網路的負擔，並隨著使用量增長而提升應用程式的擴展潛力。

**Layer 2 擴展方案的例子包括：**

- Rollups
- 狀態通道（State channels）
- Plasma
- Validium

### Layer 2 與側鏈的比較

側鏈是一條與 [Ethereum 主網](https://www.alchemy.com/rpc/ethereum)互動、但不依賴主網提供安全性的獨立區塊鏈。側鏈透過跨鏈橋接與 Ethereum 連接，藉此實現兩條鏈之間的資產轉移。

側鏈之所以有利於擴展性，是因為它們採用不同的特性設計以實現高吞吐量。舉例來說，Polygon 側鏈使用權益證明（PoS）共識演算法來加快交易速度。

[Layer 2 方案與側鏈之間的主要差異](https://www.alchemy.com/overviews/sidechains-vs-layer2s)在於其安全性保證。L2 網路享有 Ethereum 的安全性保障，而側鏈則沒有。

側鏈由自身的共識機制來保障安全，而 L2 則受益於 Ethereum 的共識機制。這也是為什麼許多人認為 L2 比側鏈更安全的原因。

## 為什麼 Ethereum 需要擴展方案？

良好的 Ethereum 擴展方案能為 web3 開發者與使用者提供更低的 gas 費用與更快的交易速度，同時維持交易的安全性。

以下是 Ethereum 需要擴展方案的原因：

### 1. 更低的交易手續費

Ethereum 的 gas 費用問題已成為廣泛批評的話題。擴展方面的改善能減少網路壅塞，並大幅降低交易成本。

較低的 gas 價格意味著更好的使用者體驗，以及更高的應用程式採用率。使用者不必再面對交易失敗，或支付過高的 gas 費用。

### 2. 更快的交易速度

許多擴展方案的設計目的，就是為了在更短的時間內提升 Ethereum 處理更多交易的能力。

舉例來說，rollup 能將數千筆鏈下交易批次打包成單一鏈上交易。同樣地，分片透過鼓勵交易的平行處理來提升吞吐量。

這些改善的最終結果是每秒交易數（TPS）的提升。雖然各方估計不一，但許多人預期 L2 與分片能將 Ethereum 的 TPS 推升至數千。

### 3. 更完善的安全性

L2 能在不降低網路安全性的前提下擴展 Ethereum。與鏈上擴展不同，鏈下擴展專案不會影響 Ethereum 的去中心化程度。

儘管這些 L2 是獨立的鏈，但其安全性與 Ethereum 區塊鏈緊密相連。這意味著使用者可以安全地與這些專案互動，享受擴展性帶來的好處，而不必冒著資產風險。

## 五種最受歡迎的 Ethereum 擴展方案

五種最受歡迎的 Ethereum 擴展方案分別是：rollup、側鏈、狀態通道、plasma 鏈，以及 Validium。

### 1. Rollups

Rollup 會將多筆在鏈下執行的交易合併或「卷起」為一個批次，再傳送至主鏈。單一個 rollup 可包含數百甚至數千筆經過壓縮的交易，藉此減少主鏈需要處理的交易量。

除了提升擴展性，rollup 還提供與 Ethereum 本身相近程度的安全性，因為 rollup 中的交易是錨定於 L1 鏈上，這確保了交易的終局性。

Rollup 主要分為兩種類型：optimistic rollup 與 [zero-knowledge rollup](https://www.alchemy.com/blog/zero-knowledge-rollups)。兩者的差異在於交易的運算方式，以及如何發佈至 Ethereum：

**Zero-knowledge rollup**（ZK-rollup）在鏈下執行運算，並產生一種稱為簡潔非互動式知識論證（SNARK）或簡潔透明知識論證（STARK）的密碼學證明。這些**「有效性證明」**能向主鏈上的節點保證交易批次的有效性。

**Optimistic rollup** 預設假定交易有效，不會為每個交易批次產生有效性證明。不過，optimistic rollup 中的交易有效性可以透過**詐欺證明**來提出質疑。

那麼這兩種 rollup 方案相比之下如何呢？ZK-rollup 由於會產生有效性證明，因此更安全，但也因此比 optimistic rollup 更慢。

ZK-rollup 是複雜的機制，這使得將 EVM 相容性寫入其中變得困難。因此，ZK-rollup 的功能性相較於 optimistic rollup 較為有限。

Polygon 正致力於開發 [zero-knowledge EVM（zkEVM）](https://www.alchemy.com/overviews/polygon-zk-rollups)，透過其 Hermez 2.0 計畫，將 zero-knowledge rollup 的功能性延伸至 Ethereum 網路。

#### 使用 optimistic rollup 的 Ethereum L2

- Optimism
- Arbitrum
- Boba Network
- Immutable X

#### 使用 ZK rollup 的 Ethereum L2

- [zkSYNC](https://www.alchemy.com/overviews/what-is-zksync-era)
- Loopring
- dYdX
- StarkNet

身為開發者，你可以將 rollup 整合進你的 dApp 中，以改善交易終局性與擴展性。如此一來，你的使用者就不必經歷在 Ethereum 上常見的高 gas 費用、交易失敗，以及緩慢處理速度等問題。

### 2. 側鏈

側鏈是 layer 2 方案的一種，屬於與 Ethereum 主網並行運作的獨立區塊鏈。這些差異可能包括加密經濟誘因、共識機制等等。

專為 Ethereum 設計的側鏈具備 Ethereum Virtual Machine（EVM）相容性，並可支援智慧合約。這意味著你可以在側鏈上部署專案，並利用其擴展性改善來提升應用程式效能。

[跨鏈橋接](https://www.alchemy.com/overviews/cross-chain-bridges)是連接側鏈與 Ethereum 智慧合約平台所必需的機制。正如其名稱所示，區塊鏈橋接為使用者提供了在主鏈與側鏈之間移動的通道。

要使用橋接，你必須先在起始鏈上鎖定一定數量的資產（此例中為 ETH）。之後，等量的資產會在側鏈上被產生，並存入你的錢包。

接著你便可以在側鏈上自由進行交易，享受其優越的交易處理能力。如先前所述，側鏈是專為提供擴展性而設計，並採用不同的機制來達成這個目標。

#### Ethereum 側鏈範例：

- Polygon
- xDAI
- SKALE

其他[替代性的 Layer 1（L1）區塊鏈](https://www.alchemy.com/overviews/layer-1-blockchain-ecosystems-overview)也能作為 Ethereum 側鏈使用，尤其是與 EVM 相容的區塊鏈。這些替代性 L1 通常提供較低的 gas 費用、更佳的交易終局性，在某些情況下還具備更豐富的功能。

#### EVM 相容 L1 範例：

- Avalanche
- Fantom
- Binance Smart Chain

### 3. 狀態通道

狀態通道是一種鏈下擴展方案，允許雙方進行交易，而不需要主鏈驗證每一筆交易。狀態通道本質上是一種多重簽章智慧合約，只有在所需各方都核准的情況下才會執行。

#### 狀態通道的運作方式

1. Alice 想與每天早上賣咖啡給她的 Bob 開設一個狀態通道。假設她在通道中存入了 0.4 ETH，這筆交易會被發佈到主網上。

2. 完成這筆開通交易後，Alice 與 Bob 就可以在鏈下執行任意次數的交易。唯一的條件是雙方都必須簽署交易，也就是說每次購買咖啡，Alice 與 Bob 都必須核准這筆付款。

3. 如果 Alice 用完了她的存款，她可以在主鏈上發佈一筆**退出交易**。這筆交易會反映通道的最後已知狀態，並被記錄下來以達成終局性。即使 Alice 與 Bob 可能已經交易了十幾次，Ethereum 網路也只會記錄兩筆交易——**進入交易與退出交易**。

狀態通道讓雙方能夠進行安全的鏈下交易，而不必經歷漫長的等待時間與高額的交易手續費。這也提升了擴展性，因為礦工需要處理的交易數量減少，能更快速地運作。

#### 使用狀態通道的 Ethereum 擴展方案：

- Raiden Network
- Connext Network
- Celer Network

### 4. Plasma 鏈

Plasma 白皮書提出了「子鏈」的概念，這些子鏈源自於主要區塊鏈，也就是「根鏈」。雖然 [Plasma 鏈](https://www.plasma.io/plasma.pdf)能夠驗證交易，但它們仍依賴根鏈的安全性。為了證明交易的有效性，子鏈會向根鏈提交密碼學證明。

Plasma 鏈與側鏈類似，都是透過智慧合約與 Ethereum 區塊鏈連接。使用 Plasma 鏈需要先在根鏈上的智慧合約中鎖定 ETH，才能在子鏈上取得代幣。

Plasma 被視為一種 L2 擴展方案，因為它直接從 Ethereum 的基礎層獲取安全性。這也是為什麼它們比側鏈等方案更安全的原因。

Plasma 會為每個區塊在 Ethereum 主鏈上發佈 **Merkle root**。區塊根是一小段資訊，我們可以用它來驗證交易的相關資訊。如果 Plasma 鏈遭受攻擊，使用者可以安全地退出至主鏈，並使用適當的證明提取自己的資金。

#### 使用 plasma 的 Ethereum 擴展方案

- OMG Plasma
- Gluon Network

### 5. Validium

Validium 與 ZK-rollup 類似，都是在 Ethereum 主層之外執行運算，但主要差異在於 validium 使用「鏈下資料可用性」，而不是像 ZK-rollup 那樣將壓縮資料發佈到主鏈上。

Validium 將資料儲存在鏈下的資料提供者處，這在某種程度上使其帶有託管性質。不過，部分方案如 StarkWare 使用[資料可用性委員會](https://medium.com/starkware/data-availability-e5564c416424)（DAC）來確保資料提供者誠實運作。

Validium 具有非常低的手續費與快速的交易速度（最高可達每秒 10 萬筆交易）。然而，相較於 ZK-rollup 等其他擴展方案，它們涉及更多的信任假設。

#### 使用 validium 的 ETH 擴展方案：

- DiversiFi
- Immutable X

## 擴展方案有哪些缺點？

**Ethereum 擴展方案的兩個缺點是：實作複雜，以及安全性保證可能較低。**

### 1. 複雜性

許多擴展方案在實作上相當複雜，這會影響其功能性。舉例來說，Ethereum 開發團隊已多次延後分片機制的發佈日期，原因在於這項升級所需投入的工作量龐大。

### 2. 較低的安全性保證

雖然許多 L2 與 L1 擴展方案依賴 Ethereum 提供安全性，但它們終究無法與 Ethereum 本身一樣安全。每種擴展方案都會在某些元素上（如去中心化與安全性）做出取捨，以換取速度。使用者在使用這些平台之前，必須充分了解這些風險。

## 結論

本指南所介紹的擴展方案，很可能在 Ethereum 邁向擴展性的道路上扮演重要角色。不過，這些方案是否足以保證長期的擴展性，仍有待觀察。

計畫在 L2 上擴展你的下一個 dApp 嗎？

[註冊 Alchemy 免費帳號](https://auth.alchemy.com/signup/?a=83b14f668d)，這是全球最大的區塊鏈開發平台，支援熱門的 L2，包括 Arbitrum、Optimism、Polygon 與 StarkNet。
