随着 DeFi 的兴起,以太坊网络面临着严重的拥堵问题。 在等待分片等创新部署的同时,网络不得不寻找其他可扩展性解决方案。 其中,第二层解决方案是人们关注的焦点。 然而,为了完全完成他们的使命,后者必须提供所谓的“等效 EVM”生态系统。 因此,许多项目已着手开发 zkEVM。 让我们一起回顾一下什么是 zkEVM 以及现有的不同类型的 zkEVM。
内容
- Rollups:以太坊的未来
- zkEVM:它是什么?
- 为什么 zkEVM 很重要?
- 不同类型的 zkEVM
- 完全等同于以太坊的 zkEVM(类型 1)
- zkEVM 等同于 EVM(类型 2)
- zkEVMs 几乎等同于 EVM(类型 3)
- zkEVM 高级语言等价物(类型 4)
- 结论
Rollups:以太坊的未来
在进入 zkEVM 主题之前,我们需要介绍一下它们的使用背景。
正如我们在介绍中看到的,以太坊网络严重依赖第二层解决方案,例如 Rollups。 事实上,这些使得将部分活动驱逐到以太坊主层之外成为可能,同时继承后者的安全性。
实际上,Rollups 主要有两个系列:zkRollups 和 Optimistic Rollups。 虽然在 Optimistic Rollups 上很容易重新创建类似于以太坊的环境,但 zkRollups 却不一定如此。
事实上,正如“zk”粒子所表明的那样,zkRollups 利用了零知识证明。 因此,zkRollups 使用加密货币有效性证明来确保更好的可扩展性。
因此,在以太坊上发布的每批交易都附有加密货币证明,并由智能合约进行验证。 结果,交易的有效性得到保证并在网络的所有节点之间共享。
在 L1 上发布 Rollup 状态。正是这个属性保证了 zkRollups 的安全性。 事实上,状态的变化导致有效性证明的计算。 因此,如果状态的改变是无效的,就不可能提供证明。
不幸的是,这个属性也意味着与以太坊虚拟机(EVM)不兼容,正如官方网站上解释的那样:
“与 Optimistic Rollups 不同,zkRollups 不容易与以太坊虚拟机 (EVM) 兼容。 与简单计算的执行证明相比,在零知识电路中证明在以太坊虚拟机(EVM)上执行一般计算更加困难和资源密集。 »
因此,开发人员必须找到在零知识背景下创建与 EVM 兼容的环境的解决方案。
zkEVM:它是什么?
正如我们刚刚看到的,zkRollups 无法实现以太坊 EVM 的简单副本。
在以太坊上,智能合约的 Solidity 代码被编译成 EVM 可以理解的语言,称为字节码。 这种语言本身由称为操作码的指令组成。
然而,这些操作码不能被零知识环境中必不可少的证明生成电路按原样使用。
因此,zkRollups 协议应该开发 EVM 的替代版本,与零知识证明处理兼容。
这些与零知识证明兼容的 EVM 版本称为零知识 EVM 或 zkEVM。
因此,zkEVM 能够验证程序执行的正确性。 为此,他们定义了自己的操作码,与零知识电路兼容。
“与 EVM 一样,zkEVM 在对输入执行计算后从一种状态转换到另一种状态。 不同的是,zkEVM 还创建了零知识证明来验证程序执行的每一步的正确性。 »
这种兼容性的缺乏导致了新语言的产生,这些语言的创建是为了支持有效性证明。 根据解决方案的不同,开发人员要么必须直接用一种新的编程语言编写合约,要么通过一种叫做转译器的东西将 Solidity 源代码编译成 zkEVM 操作码。
为什么 zkEVM 很重要?
在部署分片等解决方案之前,以太坊路线图采用了所谓的“以汇总为中心”的方向。 因此,以太坊生态系统押注于 Rollups 以提高其短期和中期的可扩展性。
Rollups 是以太坊路线图的核心。正如我们之前看到的,有两种类型的汇总:
- Optimism汇总;
- zkRollups。
Optimistic Rollups 的主要优势在于它与 EVM 的兼容性。 然而,这个解决方案有几个限制。
最初,后者不依赖于零知识的可靠性来验证状态的变化。
后者选择了所谓的“Optimism”方法。 这种方法可以被认为与 zkRollups 的方法相反。 因此,在 zkRollups 使用有效性证据的地方,Optimistic Rollups 依赖于欺诈证据。
当 Sequencer 发布一个新状态时,它是待处理的,可以测试 7 天。 在此期间,称为验证者的参与者可以重新计算整个状态并验证其有效性。 如果它无效,则新的欺诈状态将被放弃,并且该状态的生产者将受到制裁。
这种机制涉及更多不同的参与者,并且不如使用零知识证明那么安全。
此外,Optimistic Rollups 的验证期意味着从 Optimistic Rollup 到 L1 的所有提款都有 7 天的阻塞期。 这段时间对用户体验有明显的负面影响。
总之,Optimistic Rollups 是更容易实施的解决方案。 然而,zkRollups 更加安全和高效。
正如我们所见,如果没有定制的 EVM,zkRollups 就无法有意义地存在。 尽管如此,它们将成为未来几年以太坊发展的基石。 因此,这使得 zkEVM 成为提高可扩展性的中心主题。
不同类型的 zkEVM
正如你所了解的,EVM 和 zkRollups 之间的不兼容性产生了多种多样的解决方案。
去年 8 月,Vitalik Buterin 在他的博客上发表了一篇文章,其中他对 zkEVM 方面存在的不同方法进行了评估。 当然,这些方法中的每一种都有其优点和缺点。
Vitalik Buterin 在他的文章中确定了 4 个主要的 zkEVM 系列。 让我们一起探讨这些不同的解决方案,以了解它们的特性、优点和缺点。
zkEVMs 完全等同于以太坊(类型 1)
类型 1 zkEVM 是 zkEVM 预期的缩影。 事实上,后者完全等同于以太坊,没有做出任何妥协。
这种类型的 zkEVM 不会报告 EVM 的任何修改,也不会报告任何特定于以太坊的机制。
“它们不会取代哈希、状态树、交易树、预编译或任何其他共识逻辑。 »
我们可以特别引用 Scroll、Taiko 和 Privacy & Scaling Explorations 团队的联合倡议,以创建此类 zkEVM。
好处
由于其纯度,这些 zkEVM 具有无需对以太坊网络进行任何修改即可正常运行的优势。 这使得以太坊上的区块验证过程保持原样。
此外,由于其完美的兼容性,type 1 zkEVM 允许在以太坊上轻松部署所有现有基础设施。
“例如,以太坊运行时客户端可以按原样使用来生成和处理汇总块,所以像块浏览器、块生产等工具。 很容易重用。 »
缺点
显然,这种 zkEVM 不仅具有优势。 事实上,以太坊协议并不是为了原生支持零知识证明的生成而设计的。
因此,协议的许多部分都需要强大的计算能力来生成零知识证明。 以至于 Vitalik 甚至考虑使用 ASIC 形式的专用硬件:
“目前,为以太坊区块生成证明需要几个小时。 这个问题可以通过巧妙的工程来大规模并行化证明者,或者从长远来看,通过 ZK-SNARK ASIC 来缓解。 »
zkEVM 等同于 EVM(类型 2)
第二种类型的 zkEVM 完全等同于以太坊 EVM。 然而,在这种情况下,开发人员对以太坊特有的不同机制采取了更多的自由。
正如 Vitalik 解释的那样,这些在内部看起来与以太坊完全一样,但在外部有一些差异。 这可能导致数据结构或状态树中的修改。
“目标是与现有应用程序完全兼容,同时对以太坊进行一些小改动以简化开发并加快证明生成。 »
Scroll 协议开发的 zkEVM项目就属于这一类。 Polygon Hermez 也是如此。 然而,由于其实现复杂性,此类 zkEVM 尚未成熟。
好处
类型 2 zkEVM 具有与以太坊 EVM 完美等效的优势。 因此,大多数去中心化应用程序都可以部署在那里,而无需进行任何修改。
开发人员需要的各种工具和其他基础设施提供商也是如此。
正如 Vitalik 所解释的那样,这种兼容性仍然存在某些例外情况。 对于使用 Merkle 的以太坊区块历史证明的应用程序来说尤其如此。
此外,类型 2 zkEVM 生成证据的速度比它们的类型 1 同类产品快。
缺点
正如我们刚刚看到的,类型 2 zkEVM 加快了证明生成时间。 这主要是由于以太坊特有的几种机制的退出,这对零知识不是很有利。
“特别是,他们可以改变以太坊的 Keccak 哈希算法和基于 RLP 的 Merkle Patricia 树,以及区块结构。 »
尽管这些修改缩短了证明生成时间,但它们并非没有影响。
“必须按原样证明 EVM 的缓慢过程,以及 EVM 固有的所有低效率和与 ZK 的不兼容性,仍然存在。 »
zkEVMs 几乎等同于 EVM(类型 3)
这第三种 zkEVM 接近于 EVM 的等价性,但为了提高证明生成时间做出了一定的妥协。
Scroll 和 Polygon zkEVM 目前都是 Type 3 zkEVM,尽管它们的目标是最终成为 Type 2 zkEVM。 事实上,正如 Vitalik 解释的那样,Type 3 zkEVM 只是一个过渡:
“今天,没有一个 ZK-EVM 团队想成为 ZK-EVM 类型 3; type 3 只是一个过渡步骤,直到复杂的预编译添加工作完成并且项目可以移动到 type 2.5(type 2 和 type 3 之间的步骤)。 »
在 Starknet 生态系统中,在开罗开发的 Kakarot项目提供了一种在 Starknet 上的智能合约中运行的类型 3 zkEVM。
好处
类型 3 zkEVM 的主要优势是比类型 1 或类型 2 zkEVM 更容易实现。
由于删除了一些过于复杂而无法实现以与零知识兼容的功能,这些 zkEVM 减少了证明生成时间。
缺点
虽然它减少了证明生成时间,但删除某些功能会导致与某些应用程序不兼容。 例如,去除预编译。
因此,一些应用程序需要部分甚至完全重写才能部署在这些解决方案上。
zkEVM 高级语言等价物(类型 4)
与 zkEVM 的其他案例不同,type 4 侧重于编程语言,而不是重新创建兼容的 EVM。
因此,类型 4 zkEVM 将编译智能合约(例如在 Solidity 中)以一种旨在有利于零知识的语言来编译它们。
在实践中,诸如旨在将 Solidity 代码转换为 Cairo 的 Warp 转译器等项目允许 Starknet 被视为类型 4 zkEVM。zkSync 的 zkEVM 也是类型 4。
好处
通过处理高级代码,Type 4 zkEVM 规避了为 EVM 的每个部分生成零知识证明的问题。
“直接从高级语言编译确实可以大大降低成本,并通过让验证者更容易来促进去中心化。 »
显然,这对证明生成时间及其生成所需的功率有积极影响。
缺点
然而,Type 4 zkEVM 存在许多兼容性问题。 事实上,虽然一些用 Solidity 编写的应用程序可以毫不费力地转换为 zkEVM 的特定语言,但并非所有应用程序都是如此。
例如,许多开发人员为了优化而直接在 EVM 字节码中编写应用程序的整个部分。
“Type 4 系统可能不支持它,尽管有一些方法可以实现有限的 EVM 字节码支持来满足这些用例,而无需努力成为类型 ZK-EVM。3 成熟。 »
此外,这些 zkEVM 将自己与一些依赖 EVM 字节码的调试应用程序隔离开来。
结论
正如你所了解的,zkEVM 的世界丰富多彩。 此外,解决方案并不固定在一个类别或另一个类别中。 正如 Vitalik 解释的那样,zkEVM 可以随着时间的推移从一种类型演变为另一种类型:
“zkEVM 可以从类型 3 开始,决定不包含某些特别难以通过零知识证明的特征。 但是,它可以随着时间的推移添加这些功能,并升级到 Type 2。”
在他的文章中,Vitalik Buterin 制作了一张K线走势图,根据它们的兼容性和性能可视化了不同类型的 zkEVM。
不同类型 zkEVM 的总结。此外,我们还制作了一张表格,汇总了每种类型的优缺点。
zkEVM 的类型 | 好处 | 缺点 |
类型 1 | 完美兼容 | 证据生成时间 |
类型 2 | 完美等价于EVM | 证据生成时间 |
类型 3 | 易于开发 减少证明生成时间 | 许多不兼容 |
类型 4 | 减少证明生成时间 | 许多不兼容 |
要安心入睡,请为自己配备一个安全的 Ledger 硬件钱包,总有一款适合你。 你的安全是无价的(商业链接)。
文章不同类型的 zkEVM:它是什么、它有什么用以及为什么它很重要首先出现在 Journal du Coin 上。