# 以太坊扩容方案简述

By [云锦](https://paragraph.com/@huangyidong) · 2022-04-17

---

链上的扩容方案是分片，链下的方案是layer2

1、状态通道，最知名的用例是闪电网络

2、plasma，古老的扩容方案，问题在于他只想一层提交交易的结果，没办法验证交易数据的可用性。

3、rollup，在plasma的基础上增加了一项数据可用性，将交易的数据打包给一层。但是数据太多了，扩容的效果也不明显了，为此利用特殊的编码方式压缩数据，减少字节数。

为了防止执行人（将交易数据和结果提交到一层）作恶，出现了两种不同的解决思路，一个是乐观卷，包含op和ar，他们认为人性本善，除非有人在7到14天内拿出某人作恶的证据，否则认定交易有效。这就是为什么op和ar的取款需要一定的时间，通常为7天，才能到账。

另一个思路是认为人性本恶，即ZK，一开始就不相信任何人。每一笔交易都会生成一个零知识证明。这样方便检测数据的可用性，所以基本上取款，不需要等多长时间，我去过一次，等了3个还是5个小时到账。

从各项数据的对比来说，zk方案的可扩展性和效率都更高，且便宜。但是他的技术实现难度非常高，而且一开始evm好像就没有考虑过这个方案，导致zk在兼容evm上有很多困难，对于ZK-Rollup，除了在兼容EVM的同时生成ZK-Proof存在难度之外，在Layer1上验证这个证明也并不容易。这也就解释了为什么现在它上面还没有什么dapp，而op方案已经上线了大量可用的dapp。但是V神比较支持这个方案好像，一些技术人员都还在努力中。

资料（我觉得比较形象）：

有效性证明和欺诈证明的区别

那么如何通俗的理解ZK-Rollup这样的“有效性证明”和Plasma/Optimsitic Rollup使用的“欺诈性证明”之间的区别呢？

首先这三种方案都需要有人来做Layer2上交易的排序，执行和打包，我们姑且称这个角色为“执行者”。

Plasma的执行者只会提交执行结果，秉承着其他人爱信不信的原则，你如果不信任我就需要发起挑战，而发起挑战需要你自己保存底层的交易数据。

OR也是一样，但是执行者在提交的同时会把交易数据也放上来，同样是爱信不信，你如果不信就自己根据这个交易数据去验证就完了。

但ZK不一样，ZK说我不想等你好几天让你来挑战我，那多浪费时间啊，我赶着确认我的交易呢。于是ZK直接在提交的时候生成一个证明，把这个证明也放上去，在提交的同时完成验证。

与此同时，Plasma/OR都需要通过质押的方式来确保执行者作恶是有损失的，而ZK不用，因为它不需要别人相信它，每次提交他都会自证清白。

---

*Originally published on [云锦](https://paragraph.com/@huangyidong/PIGKxmDO82ZigVCKMcw3)*
