以太坊扩容方案简述

链上的扩容方案是分片,链下的方案是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不用,因为它不需要别人相信它,每次提交他都会自证清白。