---
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="以太坊每秒交易数图表"
  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 虚拟机](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm)中执行操作所需的计算资源。

由于矿工的计算能力有限，他们往往被迫优先处理手续费更高的交易。这在 Ethereum 用户之间形成了一种竞价战，导致交易费用大幅飙升。

## 什么是 Ethereum 扩容方案？

**Ethereum 扩容方案是专门为改善 Ethereum 网络交易执行而设计的平台。** 诸如 layer 2 Rollups 和侧链等 Ethereum 扩容方案，是使用不同机制来提升网络吞吐量的协议。

<ImageBlock
  src="https://media.alchemy.com/1703255042-ethereum-scaling-solutions-diagram.png"
  alt="以太坊扩容方案示意图"
  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 目前的运作方式：**

交易会在整个网络中广播，直到被验证为止。分片不要求交易由所有节点批准。相反，每个分片都有各自的验证者（称为 collators）负责批准交易。

每个 **collation**（分片链上交易的集合）必须经过三分之二的 collators 签名。此外，提议的 collation 必须先被添加到主链，才能达到最终性。这些措施共同保障了系统的安全性。

通过分片，Ethereum 可以在不牺牲去中心化或安全性的情况下提升 TPS。由于各分片链并发处理不同的交易，网络的整体处理能力随之提高。此外，网络参与者仍然可以通过加密证明来验证分片 collation 的有效性。

<ImageBlock
  src="https://media.alchemy.com/1703255000-ethereum-sharding-diagram.jpeg"
  alt="以太坊分片示意图"
  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
- 状态通道
- 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 在更短时间内处理更多交易的能力。

例如，Rollups 可以将数千笔链下交易打包成一笔链上交易。同样地，分片通过鼓励交易的并行处理来提升吞吐量。

这些改进的最终结果是每秒交易数（TPS）速率的提升。虽然估算各不相同，但许多人预计 L2 和分片能将 Ethereum 的 TPS 推高到数千笔。

### 3. 更高的安全性

L2 在不降低网络安全性的前提下很好地实现了 Ethereum 的扩容。与链上扩容不同，链下扩容项目不会影响 Ethereum 的去中心化程度。

尽管这些 L2 是独立的链，但它们的安全性与 Ethereum 区块链紧密相连。这意味着用户可以安全地与这些项目交互，享受可扩展性带来的好处，而不必冒资产受损的风险。

## 五种最流行的 Ethereum 扩容方案

五种最流行的 Ethereum 扩容方案是：Rollups、侧链、状态通道、Plasma 链和 Validium。

### 1. Rollups

Rollups 将多笔在链下执行的交易组合或“汇总”成一批，再传递到主链。一个 Rollup 中可能包含成百上千笔经过压缩的交易，从而减少主链需要处理的交易量。

除了提升可扩展性之外，Rollups 还能提供与 Ethereum 本身相近的安全性水平，因为 Rollups 中的交易锚定在 L1 链上，从而保证了交易最终性。

Rollups 主要有两种类型：Optimistic Rollups 和 [零知识 Rollups](https://www.alchemy.com/blog/zero-knowledge-rollups)。两者的区别在于交易的计算和发布到 Ethereum 的方式：

**零知识 Rollups** 或 ZK-Rollups 在链下执行计算，并生成一种称为简洁非交互式知识论证（SNARK）或简洁透明知识论证（STARK）的加密证明。这些**“有效性证明”**向主链上的节点保证了交易批次的有效性。

**Optimistic Rollups** 默认假设交易有效，并不会为每一批交易生成有效性证明。不过，Optimistic Rollup 中交易的有效性可以通过**欺诈证明**（fraud proof）提出质疑。

那么这两种 Rollup 方案相比如何？ZK-Rollups 由于生成了有效性证明，安全性更高，但这也使得它们比 Optimistic Rollups 更慢。

ZK-Rollups 的机制较为复杂，因此很难为其编写兼容 EVM 的程序。因此，与 Optimistic Rollups 相比，ZK-Rollups 的功能相对有限。

Polygon 正在开发[零知识 EVM（zkEVM）](https://www.alchemy.com/overviews/polygon-zk-rollups)，通过其 Hermez 2.0 计划将零知识 Rollups 的功能扩展到 Ethereum 网络。

#### 使用 Optimistic Rollups 的 Ethereum L2

- Optimism
- Arbitrum
- Boba Network
- Immutable X

#### 使用 ZK Rollups 的 Ethereum L2

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

作为开发者，你可以将 Rollups 集成到你的 dApp 中，以提升交易最终性和可扩展性。这样一来，你的用户就不必经历 Ethereum 上常见的高 gas 费用、交易失败和处理速度慢等问题。

### 2. 侧链

侧链是 Layer 2 方案的一种，是一条与 Ethereum 主网并行运行的独立区块链。这些差异可能体现在加密经济激励、共识机制等方面。

专为 Ethereum 设计的侧链具备 Ethereum 虚拟机（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 会为主链上的每个区块发布 **Merkle 根**。区块根是一小段信息，我们可以用它来验证有关交易的信息。如果 Plasma 链遭到攻击，用户可以安全地退出到主链，并使用相应的证明提取资金。

#### 使用 Plasma 的 Ethereum 扩容方案

- OMG Plasma
- Gluon Network

### 5. Validium

Validium 与 ZK-Rollups 类似，都在 Ethereum 主层之外执行计算，但主要区别在于 Validium 使用“链下数据可用性”，而不是像 ZK-Rollups 那样将压缩数据发布到主链上。

Validium 将数据存储在链下的数据提供方处，这在一定程度上使其具有托管性质。不过，一些方案，比如 StarkWare，使用[数据可用性委员会](https://medium.com/starkware/data-availability-e5564c416424)（DACs）来确保数据提供方诚实行事。

Validium 的费用非常低，交易速度也很快（最高可达每秒 100,000 笔交易）。不过，相比 ZK-Rollups 等其他扩容方案，它们涉及更多的信任假设。

#### 使用 Validium 的 ETH 扩容方案：

- DiversiFi
- Immutable X

## 扩容方案有哪些缺点？

**Ethereum 扩容方案的两个缺点是：实现复杂，以及安全保障可能较低。**

### 1. 复杂性

许多扩容方案实现起来较为复杂，这会影响其功能。例如，由于分片升级所需的工作量巨大，Ethereum 开发团队一直在推迟其发布日期。

### 2. 较低的安全保障

虽然许多 L2 和 L1 扩容方案依赖 Ethereum 来保障安全，但它们不可能比 Ethereum 本身更安全。每种扩容方案都会以牺牲某些要素（如去中心化和安全性）为代价来换取速度。用户在使用这些平台之前，必须充分了解这些风险。

## 结论

本指南中介绍的这些扩容项目很可能会在 Ethereum 迈向可扩展性的过程中发挥重要作用。不过，这些方案是否足以保证长期的可扩展性，仍有待观察。

计划在 L2 上扩展你的下一个 dApp？

[注册 Alchemy 免费账户](https://auth.alchemy.com/signup/?a=83b14f668d)，作为全球最大的区块链开发平台，Alchemy 支持包括 Arbitrum、Optimism、Polygon 和 StarkNet 在内的主流 L2。
