> For the complete documentation index, see [llms.txt](https://cmdefi.gitbook.io/cmdefi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cmdefi.gitbook.io/cmdefi/home/crypto-jing-dian-li-lun/yi-tai-fang-xie-yi-de-ke-neng-wei-lai-the-surge.md).

# 以太坊协议的可能未来 The Surge

## 1. 以太坊的扩展策略：分片与Rollup的融合，以Rollup为主线

在以太坊的早期扩展计划中，开发者提出了两种主要的扩展策略：**分片**和**二层解决方案**（Layer 2 solutions, L2）。随着时间的推移，分片和二层解决方案这两条路径逐渐融合，最终形成了当前的以rollups为核心的扩展路线图。

### **分片（Sharding）**

分片的概念早在2015年就被提出。它的核心思想是，通过将区块链的交易和存储进行分割（即“分片”），让每个节点只需处理和验证一部分交易，而不是整个网络的所有交易。这样可以显著减少节点的负担，从而提高整个网络的处理能力。

* **工作原理**：在分片网络中，整个区块链被分成多个“分片”（shard），每个分片都是一个独立的链，负责处理各自的交易和智能合约。各个分片之间通过一定的协议进行通信，以确保一致性和安全性。
* **优势**：分片网络允许区块链系统并行处理交易，极大地提高了吞吐量（即每秒可以处理的交易数量）。
* **挑战**：最初，分片带来的一个主要问题是数据可用性验证（data availability）。由于每个节点只处理一部分交易，如何确保所有节点能验证其他分片的数据成为一个技术难题。如果一个分片的数据不可用，可能会导致整个系统的安全性和完整性受到影响。
* 2019年，以太坊的分片研究通过引入**数据可用性采样（DAS）**，解决了分片数据的可用性验证问题。DAS结合了**纠删码**和**KZG承诺**技术，允许每个节点仅通过采样一小部分数据块来验证整个分片的数据是否完整可用。

{% hint style="info" %}
数据可用性采样是一种通过随机抽样的方法，来验证分片数据是否完整可用的技术。具体而言，DAS采用了**纠删码**和**抽样验证**相结合的方式，确保即使每个节点只查看分片数据的一小部分，也可以判断整个数据是否可用。

详细分析 [《数据可用性采样DAS》](/cmdefi/home/crypto-jing-dian-li-lun/yi-tai-fang-xie-yi-de-ke-neng-wei-lai-the-surge/shu-ju-ke-yong-xing-cai-yang-das.md)
{% endhint %}

### **二层解决方案（Layer 2 solutions）**

二层解决方案是指在以太坊主链（L1）之上建立的一系列网络，这些网络通过将大部分数据和计算转移到链下来实现扩展，但仍然依赖于L1的安全性。

* **发展历程**：
  * **2015年：状态通道（State Channels）**：状态通道是一种早期的二层扩展技术，允许用户在链下进行多次交易，最后将结果提交到链上。虽然能减少链上的负担，但状态通道在交互复杂性和用户体验上有一定的局限性。
  * **2017年：Plasma**：Plasma是一种更高级的二层解决方案，它通过将多个子链的状态提交到主链上，从而减少主链的负担。Plasma在数据可用性和复杂性上有一定的挑战，尤其在用户需要定期监控链下活动方面。
  * **2019年：Rollups**：Rollups是二层解决方案中的最新进展，它将交易批量处理，并通过零知识证明（ZK Rollups）或欺诈证明（Optimistic Rollups）来保证链下交易的有效性。Rollups依赖主链来确保数据可用性，同时提高了网络的吞吐量。

### **分片的局限性**

分片能够通过将区块链网络分割成多个“分片”来提高扩展性，这样每个节点只处理部分交易。但在早期的分片设计中，存在一个关键问题：**数据可用性**。

由于节点只存储和处理一部分分片的数据，如何确保某个分片的数据在全局范围内仍然可用、可靠？如果一个分片的数据不可用，可能会危及整个区块链的安全。虽然分片能提高可扩展性，但在不牺牲去中心化的前提下如何确保数据的完整性和可用性仍然是个挑战。

### **Rollup的局限性**

Rollup将大量交易处理离线，仅将结果提交到链上验证。

Rollup本身可以极大地提高交易吞吐量（TPS），但它依赖主链（L1）的数据带宽来发布这些离线处理结果。Rollups虽然能在链外处理交易，但它需要依赖以太坊主链发布证明，这就需要L1提供足够的带宽。如果L1不能提供足够的数据发布空间，Rollup的扩展能力就会受到限制。

### 融合

分片和Rollup的结合，正是为了解决它们各自的局限性，实现更强大的扩展能力，且不牺牲以太坊的安全性和去中心化。

* Rollups需要大量的链上数据带宽来发布证明（无论是零知识证明还是欺诈证明）。分片能够极大增加以太坊的链上数据处理能力，提供额外的数据带宽。
* 分片并不直接处理交易的复杂计算，而是专注于增加数据的可用性带宽，为Rollups提供它们所需的链上资源。这种分工使得两者结合能够发挥各自的优势。

如果以太坊只依赖分片来扩展，会带来一个问题：每个节点只处理部分分片的交易，这可能导致去中心化程度降低，网络安全性也会受到挑战。通过Rollup来处理交易的复杂计算，依赖分片来提供数据可用性，保持L1的安全性和去中心化，同时利用分片提供的带宽来支持Rollup的扩展，这是一种互补的方式。

## **2. 扩展性三难问题**

三难问题指的是去中心化、扩展性和安全性之间的权衡。解决这个问题被认为非常困难，但数据可用性采样（DAS）和SNARK技术的结合，提供了突破三难问题的可能性。

## 3. 数据可用性挑战，**PeerDAS 和 SubnetDAS 的进一步进展**

{% hint style="info" %}
数据可用性指的是区块链上的数据是否能够被网络中的所有节点访问和验证。在以太坊这样的去中心化系统中，每个节点都需要对交易进行验证，因此必须确保所有交易数据对节点都是可访问的。
{% endhint %}

**问题**：随着区块链网络规模的扩大，节点处理的数据量会越来越大。如果每个节点都必须处理整个链上的所有数据，会导致计算和存储的成本越来越高，网络扩展性受限。因此，如何高效地验证数据的可用性，同时降低节点的负担，就成了扩展过程中需要解决的关键问题。

为了应对这个问题，以太坊提出了数据可用性采样（Data Availability Sampling, DAS）的概念，通过让每个节点只验证一小部分数据来确保整个数据的可用性。而PeerDAS 和 SubnetDAS 是两种不同的数据采样实现方式。

## 4. **数据压缩**

## 5. **通用Plasma**

* Plasma是一种通过Merkle树根上链验证交易的扩展方案，即使在数据不可用的情况下，用户也能凭借已有的证明提取资产。SNARK技术使Plasma架构变得更为强大。
* 虽然Plasma对操作员依赖较高，但其复杂性和性能优势使其在某些场景下具备竞争力。

## 6. **L2证明系统的成熟**

* 目前大多数rollup还未完全去信任化，L2仍依赖安全委员会等机构来应对潜在的代码漏洞。目标是通过正式验证和多重证明系统，达到完全去信任的状态。
* 要实现完全去信任的L2仍需要大量的开发和验证工作。

## 7. **跨L2互操作性改进**

* 目前L2生态系统的用户体验较差，特别是在跨链交互时容易产生安全和信任问题。为了解决这一问题，提议了链特定地址、链特定支付请求、跨链交换等机制。
* **轻客户端**和**密钥存储钱包**也是实现跨L2互操作性的关键技术。

## 8. **扩展L1执行**

* 尽管L2已经成为扩展的主要路径，但L1的扩展性仍然十分重要。如果L1的处理能力过低，会带来一系列经济和安全问题。提高L1的gas限制、改进特定操作的效率以及引入本地rollup是扩展L1的可能方案。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cmdefi.gitbook.io/cmdefi/home/crypto-jing-dian-li-lun/yi-tai-fang-xie-yi-de-ke-neng-wei-lai-the-surge.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
