前言
ZkEVM是一种独特的零知识 rollup,在以太坊网络上运行。ZkEVM负责处理交易并在网络上实现高效交互。这种rollup方案让用户享受了诸多福利,其中之一便是较低的交易成本。本文中,我们将探讨zkEVM的创新;zkEVM的运作原理;不同类型的zkEVM;zkEVM生态系统以及它所解决的问题。
简介:为什么需要zkEVM
以太坊的反对者常常感叹以太坊速度太慢,这种批评甚至有愈演愈烈之势。以太坊的核心协议每秒只能处理10-15笔交易,用户活动密集期间常会发生网络拥塞和高交易费。
以太坊社区在不断发展壮大。过去几个月内,有几种以太坊扩展策略非常受欢迎,其中之一便是侧链。侧链是将交易转移到第2层(L2)网络进行处理,然后再转移回主链。
历史经验表明,侧链对单个应用程序是有效的,但很多侧链都使用了被称为“乐观的(optimistic)”rollup。
除侧链外,有其他很多方法都可以实现扩容,但L2解决方案一直是人们最常探讨的一种。经过不断改进,这种近乎完美的解决方案已逐渐运用于市场。目前,zk-rollup已被越来越多的人关注。
零知识以太坊虚拟机,又称zkEVM,是以太坊生态系统中最被看好的技术之一,旨在增强以太坊虚拟机的功能,同时在用户与使用新EVM的智能合约交互时极大地保护隐私。
zkEVM的构建始于2014年,目前已几近完成。zkEVM由Polygon和Scroll等以太坊上主要的开发公司所构建,很多公司也纷纷加入。
请注意:侧链(例如Polygon)是与父链并行运行的二级链,有自己的共识机制;侧链通过双向桥连接到父链。
什么是ZK?
ZK是英文单词zero knowledge(零知识)的首字母缩写,表示一方能够向另一方证明一件事的正确性,而不实际泄露任何相关信息。从本质上讲,ZK可以在保护隐私性的同时交换个人数据。
零知识证明让用户在不真正透露一个秘密具体内容的情况下,证明他确实掌握了这个秘密,根本目的是证明他所说的真实性。证明者和验证者是零知识证明中的两个主要角色。证明者必须证明自己知道秘密,而验证者确认证明者确实知道秘密。
什么是zkEVM?
作为zk-rollup的一部分,zkEVM创建了零知识证明以验证程序的准确性以及程序运行过程中输入和输出结果的可靠性。zkEVM是以太坊L2扩展解决方案,原理是通过链外计算和状态存储来提高吞吐量。ZkEVM在创建时考虑了零知识技术,具备执行智能合约的能力。
在引入兼容EVM的零知识虚拟机后,ZK-rollup开始支持以太坊DApp。
这样,开发人员可以在保证第1层区块链(L1)的去中心化和安全性的前提下编写或迁移智能合约,而无需修改代码或放弃使用EVM工具(和智能合约)。
了解zkEVM的概念以后,我们将进一步探讨zkEVM。在此之前,我们先了解一下什么是EVM。
以太坊虚拟机(EVM)
以太坊是一项以支持开放和分布式虚拟计算机执行而闻名的技术。以太坊智能合约一经部署便无法修改,容易遭受恶意攻击。
大多数应用(拍卖、预测市场、身份/信誉管理等)都使用智能合约来管理资金或验证外部实体的身份。因此,在这种情况下,应该保证代码是可靠的。
EVM如何运作?
以太坊虚拟机是一种状态机,会根据输入更改状态。每执行一次智能合约,EVM的状态都会发生变化,或者说会发生“状态转换”。除基于Solidity的程序的智能合约外,区块链上还有我们所熟悉的DApp软件存储库。
智能合约交易过程是怎样的:
1.EVM上的点对点节点加载并执行从源代码生成的合约字节码。
2.EVM 操作码(Opcode)通过字节码(内存、存储和堆栈)与EVM的各种状态组件进行交互。
3.在返回新值前,EVM操作码计算从状态存储中获取的值。
注:EVM Opcode全称是Ethereum Virtual Machine Operation code,它是机器语言指令的一部分,给出需要执行的操作的命令。
zkEVM生态系统
虽然zkEVM的公告受到关注隐私和可扩展性的开发人员和其他利益相关者的青睐,但大部分zkEVM项目离完成还有很长的距离。
实际上,这些zkEVM在正式上线前还面临诸多挑战。随着以太坊的升级,zkEVM项目的开发也将扩大覆盖范围,在大多数zkEV项目启动后,它们所面临的问题也将逐步解决。
很快肯定会有其他类似项目出现,但zkEVM是最大且开发完成度最高的。zkEVM项目的发展有力地证明了区块链势不可挡的发展趋势。
zkEVM的重要性
zkEVM的全面运行将促进兼容EVM的ZK-rollup项目的创建。zkEVM具有以下优势:
1.安全的可扩展性:ZK-rollup的安全性比其他扩展方案都要高;ZK-rollup使用有效性证明来确认链下计算的准确性。
2.低成本:将交易数据作为调用数据(CALL DATA)发布到以太坊后,rollup受到主网的保护。optimistic rollup和ZK-rollup必须广播到以太坊的数据量各不相同。zkEVM进一步降低对调用数据的需求,甚至可以跳过交易输入,仅发布最终状态变更。
3.zkEVM消除了其他扩容方案存在的一些问题,交易确认速度更快,资本效率更高。需要平滑地进行资产转换的高级用户(如NFT交易员、DeFi投资者或套利交易员)将从交易确认速度的提升(尤其是在L1和L2之间)中大大受益。
4.网络效应:利用以太坊的网络效应是创建与EVM兼容的zkEVM的主要原因。以太坊是最大的智能合约平台,其巨大的生态系统对开发人员和加密项目来说都百利而无一害。如果新建的zkEVM与以太坊的基础设施不兼容,则无法利用其网络效应。
zkEVM和EVM兼容性
上面我们讲述了EVM及其衍生产品(包括zkEVM)的运作方式。EVM和zkEVM最显著的区别在于后者创建了一个安全的执行环境,即使它们在同一网络上运行,zkEVM也不会受外部代理的影响。
EVM(以太坊虚拟机)是执行部署在以太坊网络上的智能合约的运行环境。以太坊区块链上的去中心化应用(DApp)通过EVM运行,EVM充当“世界计算机”。
但是zkEVM则完全不同。在ZKP环境中,输入数据是可见的,但这些数据是经ZKP密码学产生,并非真实数据。因此,数据输入本质上由一系列统计数据组成,zkEVM可以使用这些统计信息来确认内容的真实性,而无需真正披露数据的实际内容。
ZkEVM无需对底层逻辑进行大量修改即可执行以太坊智能合约,这也是zkEVM能与EVM兼容的原因。
zkEVM如何运作?
zkEVM遵循了zk-rollup的核心原理。但了解zkEVM的最佳设计及其功能相关的几种理论至关重要。zkEVM最纯粹的形式是发挥与以太坊一样的功能,并且不允许做任何修改,即时这些修改有助于简化证明流程。
zkEVM是一种虚拟机,类似于EVM,程序的每一次执行都会导致状态的改变。但zkEVM在EVM的基础上做了升级,提供了证据以证明每个计算组件的准确性。
要真正理解zkEVM的运作方式需要首先了解不同的zkEVM项目。虽然它们目标一致,但采用的方法各不相同。
zkEVM解决了什么问题?
由于没有通用的编程语言,创建ZK rollup需要从零开始。
zkEVM项目
Scroll、Polygon、Nethermind、The Privacy和Scaling Explorations等zkEVM项目采用了不同的策略将EVM执行与零知识证明计算相结合。每种策略各有利弊。这些zkEVM项目一直致力于开发可靠、安全、经济且易于使用的第2层扩容方案。
所有这些项目的基本目标相同:利用ZK-SNARK技术创建类似于以太坊的交易执行的加密证明,要么使以太坊链本身更容易验证,要么创建(几乎)等同于以太坊但可扩展性更强的ZK-rollup。然而,这些举措在某些方面需要做出妥协与权衡。
最新动态
不同于zkSync,大多数zkEVM项目仍在开发中。随着零知识技术的发展,功能强大的zkEVM的前景比以往任何时候都要好。
同时,StarkNet的零知识虚拟机允许开发人员使用零知识应用程序。StarkNet不兼容EVM,但可以将Solidity源代码编译为符合零知识格式的字节码。此外,合约可以用Cairo(StarkNet的编程语言)编写。
结论
zkEVM可以为开发人员和用户提供类似的体验。以太坊的可扩展性问题可以通过采取不同的措施来解决,其中zkEVM可以被视为对加密领域所面临问题的修复。零知识rollup在解决可扩展性问题(包括安全性)以及支持合约部署和应用程序兼容性方面取得了突破,未来必将取得更大的进步,让我们拭目以待!
正如zkSync一样,zkEVM还处于开发阶段。ZkEVM会将以太坊带往何方,我们尚不得而知。