# 以太坊扩容方案

By [sinc](https://paragraph.com/@sinc-2) · 2022-11-29

---

以太坊扩容方案
=======

### 起因

在以太坊网络上不断增长的网络使用需求，大量的交易与交互，导致了网络拥堵，每个用户都想矿工优先打包自己的数据，推高了交易成本。提高存储，网络速度和吞吐量是以太坊迫切需要解决的问题。

### 目的

核心目的是在保持去中心化和安全性的前提下，提升交易速度，更快的确认交易和交易吞吐。

### 扩容方案

扩容方案可以分为两类

**on Chain 链上扩容 L1** 对区块链本身的性能进行性能提升。Layer 1网络是底层区块链的别称。除了以太坊，比特币，Cosmos,Aptos,Sui都属于L1协议，他们是所在生态系统中的主要网络。 L1的扩容方案包括: **a.修改共识机制** 以太坊的2.0升级中就完成了pow到pos的转换。

**b.实施分片**

类似于数据库分割技术，将以太坊网络中的节点切割成不同的分片，每个节点会将完成的工作写入主链，每个分片处理整个网络的一部分活动，每个分片都有自己负责的交易和独立的区块。现在已经被danksharding所取代。（danksharding下一章细讲）

**c.扩大区块规模**

使每个区块能够处理更多的交易，最简单的例子就是将区块大小从20K扩大到1M，自然就可以提高交易的数量。（proto-danksharding就是类似方案，下一章细讲）

**off Chain 链下扩容** L2 **a.侧链** 侧链是独立运行的区块链，其安全性靠自身协议机制。这也是侧链和目前主流链下扩容方案 layer2 二层扩容最大的区别。而侧链作为一条独立的链和一些layer1 公链相比，区别在于侧链专门用于处理以太坊的过剩容量，而不是与整个以太坊竞争。这些生态系统与以太坊社区紧密结合，以互补的方式托管以太坊应用。 侧链通常是选择牺牲了一些去中心化或者安全性来提高吞吐。侧链通过跨链桥来实现与主网的链接、以及相互操作。

例如`Polygon`,`Ronin`。

**b.链下计算执行，结果上链**

1）**Channel通道**

现在主链上建一个多签合约地址，比如，A和B创建了这样的多签合约，资金只有经过他俩共同同意才能转移。把各自的钱存进去，假设A和B各存10eth，这个初始状态就相当于是**打开**了一个支付通道。然后在链下 他们之间进行了几十甚至上千笔交易，每笔交易双方都需要签名和盖时间戳。最后A有5eth B有15eth。但他们不需在区块链上记录这么多笔交易，只用记录两笔——初始资金交易和所有交易结束后的最终余额分配。当他们把最终余额上传到主链，相当于**关闭**了这个支付通道。

例如BTC 的闪电网络`lightening network`

缺点：

1.  需要一周提交欺诈证明
    
2.  不支持开放式参与。通道不能用于向尚未参与的人发送链下资金
    
3.  TPS一般
    
4.  不支持只能合约
    
5.  使用的多签合约，状态通道需要参与者100%在线
    

2）**Plasma** 由于channel无法支持大规模，大资金，复杂交易，因此Plasma方案应运而生。Plasma是一条独立的区块链，最初的设计也是想保留侧链的主要用途，可以通过链下交易来扩容，同时能一定程度解决侧链自身的安全性问题（也就是说当子链遇到攻击时，存储在子链上的资产始终是安全的）因此在取舍后放弃了侧链的一些性能（比如执行智能合约等），却通过区块锚定回主网来增加安全性。（Plasma会专门出一章讲）

他和侧链最大的2点不同在于：

**Ⅰ**：侧链使用桥的方式来和主链交互资产，但侧链的安全性依靠自身的共识机制。因此在以太坊主网上是可以确认到plasma链上的**状态信息**的，以太坊主链在这个过程中只承担了确认者的角色，而非验证者，所以其安全级别是较差的

**Ⅱ**：plasma上是不支持智能合约的，仅支持基本的代币转移、交换和其他一些交易类型。

`Plasma MVP` 是 Plasma的一个最小实现

Plasma的缺点：数据不可用，无法防止运营商作恶。应为这个问题，Plasma提出了大规模退出方案，但是会导致以太坊网络堵塞，

![](https://storage.googleapis.com/papyrus_images/e28a7edb0ee62234706b4a476d22ac22901c5c6ce62572177cc6033c842616ad.webp)

**Roll-up** Rollup是目前最主流的扩容方案，可以算是原始主链处理方式和Plasma方式的折中：他和plasma一样在以太坊主链（也就是一层）之外执行交易，然后将多个交易成批处理在一起，最后将它们的状态发送回以太坊主网络。（roll-up会专门出一章讲）

但是不同之处在于，

1）roll-up也会将交易数据提交给主链.

2）roll-up会最大限度**压缩**这些交易数据，同时基于Rollup本身的特性适当删除和缩减一部分数据，只要保证最终的提交能够上主链从而供任何人验证即可。

（ ZK,Optimistic这两种roll-up 都是在plasma的基础之上，针对交易数据部分提供了不同的证明方案）

`Optimism` Optimistic roll-up 产品

`dYdX` ZK-rollups 产品

**Validium链**

它的运行方式类似于ZK rollup，也通过发布零知识证明来验证以太坊的链下交易，但是最主要的区别在于Validiums 的数据可用性是链下的。因为这样吞吐量不受以太坊数据处理能力的限制，从而提高扩展性、交易速度、降低用户费用（发布成本calldata更低）等目的。

![](https://storage.googleapis.com/papyrus_images/43027adc234ec38bfeccc7de93b49a42494bb0d54b71bf752eecdf97168ff4fa.webp)

**Volition**

一个混合方案——StarkWare创立的volition的概念：结合了 ZK-rollup 和validium，并允许用户在两种扩展解决方案之间切换。通过Volition，用户可以利用 validium 的链下数据可用性进行某些交易，同时保留在需要时切换到链上数据可用性解决方案（ZK-rollup）的自由。这实质上使用户可以根据他们的独特情况自由选择权衡取舍。

### 总结

各类方案对比，rollup有效地保证了状态有效性+数据可用性，保留了先前方案的优势，同时解决了他们的局限性。目前 roll-up看起来好像就是大家公认的答案了，但也许随着探索的深入，还会出现颠覆roll-up的更优的解决方案。

---

*Originally published on [sinc](https://paragraph.com/@sinc-2/kwbNlZFW5fgkJRFgdn2u)*
