Layer 2 是一套具体的以太坊扩容解决方案,目的是为了扩展Layer 1 (以太坊) 网络。Layer 2 有很多种可行方案,主要分为侧链Sidechains、状态通道State channels、Rollups (同时细分为Optimistic Rollups 以及ZK-Rollups)、等离子体Plasma,这篇文章会集中于ZK-Rollups,亦是现是最流行的Rollup 扩容方案。
基本原理:透过什么方式实现Rollups ?
Rollups 指的是在Layer 1 之外执行交易,但其交易数据或交易证明仍位于Layer 1 之上,Rollups 主要在rollup 特定链上执行链下交易,然后对交易数据进行批处理、压缩、发送到以太坊的主链;这减少了以太坊主网实际处理这些交易时的负载,同时减低交易费用。
Rollups 普遍透过三种方式实现扩容
Rollups 方式一:链下执行
意指Layer 2 网络可以代替以太坊主网处理与智能合约的交互从而提升交易吞吐量。以太坊只需要计算提交至智能合约的证明,就可以验证Layer 2 网络中的活动。
Rollups 方式二:批量摊销
读者可理解为集运的概念,把不同的交易的请求打包成一个大的包裹,再传送到主网中进行验证,如此一来,以太坊主链上的一个批次交易中会储存了多笔rollup 交易。在以太坊区块链上提交交易有固定运费(gas fee),但运费就会被每笔的交易摊分。
在Rollup Transactions 中,由于Rollup 交易只需要将数据储存在底层区块链(例如以太坊)上,因此可以直接把数据打包以减少交易费
Rollups 方式三:减少验证节点
Layer 2 必须向底层区块链提交某种证明,以证明其发起的变更是有效的。Rollups 是具有加密保证的发布机制,通过压缩交易数据允许更快的交易执行,将交易「汇总」成批次以降低成本,从而减少验证基础链上交易所需的区块空间。
ZK-Rollups 是如何运作的呢?
ZK Rollups,全称Zero Knowledge Rollups (零知识汇总),会将多笔交易在Layer 2 进行捆绑打包,同时发布名为「SNARKs」或「STARKs」的证明文件。该证明会被提交和发布在Layer 1 上面,达成有效性证明validity proof。这意味着ZK-rollups 只需要提供有效性证明即可在以太坊上完成交易,而不是像Optimistic Rollups 那样将所有交易数据发布到链上。
SNARKs 和STARKs 技术差异
zkSync 就是使用了SNARKs 为技术基础
- 「SNARKs」是一种文件很小而且很容易验证的加密证明,相比起STARKs 的gas 成本更低。全称为「zero-knowledge succinct **non-interactive** argument on knowledge」(简洁的非交互式零知识证明)
- zk-SNARKs 消耗的gas 比zk-STARKs 少,而且由于字节大小的差异,它们验证证明的速度更快
- zk-SNARKs 是两种主要的非交互式零知识证明中目前比较流行的一种
Starknet 就是用了STARKs 为技术基础
- 「STARKs」是一种几乎不需要证明者和验证者之间产生任何交互的加密证明,相比起SNARKs 证明时间更短,而且更容易扩展。全称为「zero-knowledge scalable transparent argument of knowledge」(零知识的可扩展、透明知识证明)
- zk-STARKs 在密码学原理上增强了随机性参数的透明度
- zk-STARKs 比起zk-SNARKs 有更低的计算验证成本,减低了被量子电脑攻击的威胁
什么是零知识证明?
不同技术的Rollups 指的是用不同的方式进行数据的验证。ZK-rollups 默认所有计算结果都是存疑的,必须先被证明才能接受。零知识证明是一种密码学的工具,可以让一方(证明方) 在不透露任何实际信息的情况下向另一方(验证方) 证明某保密信息或声明是真的。当我们需要其他人相信我们所拥有的保密信息和提出的声明是真的时候,但同时不想披露任何信息时,这时就需要零知识证明了。
笔者找了两个有趣易懂的例子向大家解释:
1. 前阵子流行的Wordle 游戏
我通过发送我的最终棋盘的屏幕截图来证明我有成功的解决方案,但我不需要透露实际的答案是什么。
透个这个屏幕截图,每个人都可以同意我的结果是正确的。
2. 寻找Mr. Waldo 游戏
如何证明你知道Waldo 在哪里,但不明确指出他的位置呢?
Alice 在不透明纸板上切了一个洞,覆盖了整张地图然后仅显示了Waldo,而假设Bob 不知道地图的全貌,他就不能只凭Alice 的纸板推测出Waldo 的位置,但Alice 自己却成功证明她知道Waldo 的位置。
区块链如何受益于零知识证明?
放到加密应用中,零知识证明提供了一种实用的验证方法,使得链外的数据能够方便取得链上验证。简单来说我们可以将计算工作外包给另一个实体去完成,同时保持可验证的结果,所以变相分担了原来区块链的计算工作,不必再以「反覆计算」证明链上交易的可靠性。
在身份保护方面,零知识证明对如何在去中心化的环境下保护自己的隐私作出重大贡献。例如Tornado Cash 使用零知识证明来混淆交易细节并保证交易者的个人隐私,允许用户在以太坊上进行私人交易。
ZK-rollups 比起Optimistic rollups 的优点
1. 转移资金不会延迟
使用ZK Rollup 时,当资金从Layer 2 转移到Layer 1 时不会出现延迟,因为ZK Rollup 合约此前接受的有效性证明已经验证了这笔资金的有效性。在转移资金到Layer 1 时, Optimistic rollups 需要一个挑战期来质疑交易的有效性并产生欺诈证明,所以可能需要长达一周的时间才能让用户收到他们的代币。相比起Optimistic Rollups,用户受益于更高的资金效率,可以毫不延迟地从L2 中提取资金。
2. 更便宜的交易费用
ZK-Rollup 捆绑了用户的交易请求,令Gas 费用在他们之间分担,所以假设有了足够多的用户,gas 费可能只需要几美分(cent),因为ZK-Rollup 可以捆绑几乎无限数量的交易。整体而言gas fee 会低于Optimistic。
3. 更快地完成交易
ZK-Rollups 能够更快地完成交易请求,因为用户确认区块链交易所花费的时间不会被更改。发送有效性证明后,以太坊网络会立即验证更新后的状态。ZK-rollups 的计算量比Optimistic 更大。
4. 安全的去中心化
因为ZK-Rollups 是「零知识证明」,所以只需要有效性证明来检索数据,而不是整个交易数据。同时间使用零知识技术(例如屏蔽交易)提供和保护隐私,保持Layer 2 安全和去中心化性质。而Optimistic rollups 只能提供在底层区块链网络上可用的隐私解决方案,因为Optimistic 交易将所有交易数据发布在链上。
现时Layer 2 的发展动向
在Rollup 的发展上,暂时仍然是Optimistic Rollup 领先,最高TVL 的两个项目都是采用Optimistic Rollup,主要受益于其对EVM(以太坊虚拟机)和Solidity 的兼容,所以一些在以太坊上建好的项目(例如NFT)可以轻松移植去Optimistic Rollups 身上,或者在这些L2 上创建类似L1 的智能合约。
相反地,ZK-rollup 涉嫌复杂的数学难题,所以推出时并不支援EVM,令到以太坊的开发者需要难开以太坊的开发框架中作研发,大大减低ZK-rollup 生态的开发进度。
颠覆市场规则— 兼容EVM 的zkEVM
zKEVM 顾名思义就是一个兼容EVM 的ZK-Rollups,这项技术是一种能够通过「零知识证明计算」来执行智能合约的虚拟机,目的是解决刚才提及的ZK-rollup 生态痛点。这个虚拟机能够在不对底层逻辑进行大量修改的情况下,执行在以太坊上编写的智能合约,同时与上文提及的零知识证明技术结合。
以太坊生态发展成熟,如果某个协议不支持EVM,那么它需要重新培育自己生态内的开发者,而开发者也需要重新开发应用和工具,过程繁复而且毫时,所以只有兼容EVM,开发者才可以无缝迁移现有的以太坊合约,以太坊生态的各种工具才能顺利接入,推动ZK-Rollup 生态的发展。
一般的EVM 是如何运作的?
1. EVM 可以被理解为由一大堆数据的集合体组成的一个云端电脑,是以太坊智能合约的运行时环境(Runtime)
2. 在执行交易时,EVM 会把交易指令一个一个地执行,当有无效指令时便会直接跳过,继续执行下一个指令
3. 当EVM 每一次执行了交易指令时,我们会形容其「状态更新」(state is updated)。每一个交易都会变更EVM 中的数据,数据被改变的过程会被称为「状态变更」(state is changed)
4. 智能合约中的编程语言并不能正接应用于EVM 上,必须先翻译为EVM 可以理解的字节码(Binary Code - 即人类难以理解的0101001),所以才需要用到Solidity,一种把人类代码翻译为字节码的编程语言。
zkEVM 是如何实现的?
现时主流解决方案离不开在zkEVM 上,构建一种新的编程语言,开发人员将需要**直接用新语言编写合约或将Solidity 原代码编译为自定义zkEVM 操作码**。开发者可以把用Solidity 写的智能合约转移到ZK-Rollup 来运行。
现时zkEVM 有四种为人熟知的解决方案,分别是Scroll、Polygon zkEVM、zkSync、StarkNet。以太坊的V 神把ZK-EVM 的发展分为了四大类, 但碍于复杂程度,有兴趣的读者可以自己阅读。对于一般读者而言最需要关注的事是主网的上线时间,以及有没有空投的机会。
在这四个项目之中,Scroll 和zkSync 目前还没有发放它们的代币,而且StarkNet 还有8% 未分配的代币,所以他们都可能有空投的机会。
值得关注的项目:
-
zkSync
zkSync 在早前10 月28 日时已经上线主网,并且是第一个推出主网的zkEVM 项目。zkSync 处理交易速度极快并且节省大概九成的gas fee。
-
StarkNet
StarkNet 是StarkWare 开发的一个无需许可的Layer 2 ,并采用了上文介绍过STARK 加密证明方法来构建其ZK-Rollup 系统,任何人都可以用Cairo 语言来在StarkNet 上开发的智能合约。
-
Scroll
由Polychain Capital 领投下,Scroll 早前已经完成了约3000 万美元A 轮融资, 潜力不容小看。
总结: ZK-Rollups 有巨大的潜力成为未来趋势
随着ZK-Rollups 技术的逐渐成熟以及发展,相信会成为未来Layer2 的主要扩容解决方案。ZK Rollup 从技术上提供了更高的安全性和资本使用效率,同时能够实现扩展链下数据的可用性。目前更为流行的Optimistic Rollup,可能只是作为在ZK-Rollups 技术尚不成熟时的过渡方案。
随着ZK-EVM的发展, 更加解决了现时ZK-Rollup 对于EVM 的兼容性问题。若然往后发展顺利,ZK-rollup可以利用以太坊的网络效应,为庞大的生态系统的以太坊中的开发者和项目提供价值。
本文链接地址:https://www.wwsww.cn/jishu/15101.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。