这篇文章让我们解释一下zkEVM是如何工作的,为什么它们是如此重要的创新。
长话短说
- 零知识(ZK)证明是一种加密技术,可以验证用户是否知道某些信息而不要求他们透露这些信息。
- 零知识证明是两种类型的区块链Rollup的基础, Rollup 是处理链外交易的扩容解决方案 ,将结果Rollup成一个单一的交易,并将其上传到主区块链(通常是以太坊)。
- Zk-rollups 生成一个零知识证明(SNARK),验证一个批次中的所有交易都是有效的。该证明非常轻巧,发布到主网的成本很低,但计算零知识证明是资源密集型的。
- 相比之下,像Arbitrum和Optimism这样的乐观Rollup,只是假设所有的交易都是有效的,并不向主网发布任何证明。
- 直到最近,ZK-rollups还不支持Solidity中的智能合约,也不兼容EVM。他们可以处理数量有限的任务,如兑换和发送代币。
- zkEVMs 是新一代的 Zk-rollups。它们像以太坊主网一样工作,支持为以太坊创建的智能合约和DApps。在这一过程中会产生零知识证明(ZK proofs)。
- 最知名的zkEVM项目包括Matter Labs的zkSync、Polygon Hermez和Scroll。Matter Labs是在2020年第一个推出主网zSync 1.0(Lite)的项目,尽管它不支持智能合约。最新的版本是zkSync Era,即2.0。
- 2022年7月,一场名副其实的竞赛开始了,当时三个项目同时发布了重要的更新。2022年10月又有一轮的发布。
- zkSync已经有一个可用主网(尽管它只对一些开发者和合作伙伴开放)。Polygon Hermez和Scroll都有公共测试网。
- 你可以在zSync上尝试许多 DeFi dApps 及 NFT 项目,以及在 Scroll 上尝试一些游戏。
零知识证明和Rollup简述
什么是零知识证明?
零知识(ZK)证明是一种验证一方(证明者)知道某些信息的方法,而不要求他们提交这些信息或任何种类的敏感数据,如密码。
例如,你如何确定一个用户知道一个被埋藏的海盗宝藏的位置,而不需要他们拿出地图?
或者检查对方在银行里的钱是否比你多,而不需要看到他们的账户余额?
零知识证明会让你做到这一点,尽管在现实中这种技术主要用于验证区块链数据,如区块链钱包的所有权。术语 “零知识 “来自于另一方(验证者)不需要知道关于你持有的信息的任何具体信息。这在区块链领域至关重要,因为区块链是关于隐私的。
关于零知识证明的详细解释,参考这篇文章。
对比 ZK Rollup 与 乐观 Rollup
在区块链中, Rollup 是一种扩容解决方案或第二层网络。一批交易在主链之外,在一个更快更便宜的二层链上处理。然后,它们被卷成一个小包(只有一个交易)并被送回主链(第1层)。这减少了第1层的负荷,也减少了Gas费用。
大多数Rollup是建立在以太坊之上的,因为它一直在为扩展而奋斗。一个Rollup可以有自己繁荣的生态系统,包括DApps、交易所、NFT等。你可能听说过Arbitrum和Optimism,这是两个最大的以太坊 Rollup 链。
每个Rollup链必须解决的主要问题是如何向主链证明他们所处理的交易是有效的。根据他们解决这个问题的方式,Rollup链有两种类型:乐观型和ZK型。
乐观 Rollup (Arbitrum, Optimism, Metis, Boba)
一个乐观 Rollup 假设主网得到的所有交易都是有效的 — 所以它简单地确认了所有的交易,而没有进行双重检查。如果有人认为某个交易是欺诈性的,他们可以提出异议。然后,网络会检查欺诈证明,取消交易并在主网上重新执行,如果发现交易是无效的,则惩罚发送交易的人。
Optimism 和 Arbitrum 给用户7天的时间对交易提出异议。正因为如此,把加密货币从Rollup上发送到以太坊需要一个星期。
从终端用户的角度来看,使用乐观 Rollup 是很容易的。你将Arbitrum或Optimism添加到MetaMask,并将加密货币(如ETH)从主网桥接到Rollup上。然后你像往常一样用这些代币进行交易:把它们发送到其他地址、兑换等等。一旦你完成并希望你的代币回到以太坊上,你再次桥接它们 — 只是这一次你必须等待七天。
ZKRollup
ZK Rollup 使用零知识证明来检查一个交易是否有效,而不需要知道其中的内容。Rollup的包伴随着一个叫做 “简洁的非交互式知识论证”(SNARK)的东西。这个证明是非常轻量级的,使得 ZKRollup 比乐观 Rollup更快、更有效,因为乐观 Rollup会把整个交易数据移植到主网。
另一个优点是,你不需要一个时间窗口让人们对交易提出异议。用户可以立即将资金送回以太坊。
ZKRollup 的缺点是其技术复杂性。零知识证明首次提出于1985年,并不是为区块链或dApps设计的。早期一代的ZK协议有一些缺点:
- 证明需要大量的资源来计算→可扩展性问题
- 他们不是被设计成无信任和去中心化的→安全风险
- 不支持智能合约→不能运行dApps。2021年前的零知识Rollup只能做一件事,比如兑换或转账代币。
这些问题的部分解决方案使用可扩展透明知识论证(STARK)证明格式。它是由StarkWare开发的,并在其StarkNet Rollup中使用。
然而,每个STARK证明比SNARK证明大100倍,导致了更高的Gas成本。除此之外,StarkNet 使用不同的编码语言(Cairo vs. Solidity),所以它不能直接与EVM兼容。
然而,在2023年,我们应该看到全新一代的ZK解决方案的到来:全面的、由ZK驱动的以太坊兼容的虚拟机或zkEVMs。
什么是zkEVM,它与 Rollup 有什么区别?
零知识EVM(zkEVM)是一种与零知识证明兼容的以太坊虚拟机的实现。让我们来解读这个定义。
EVM
区块链虚拟机(VM)是一个用于运行智能合约的沙盒环境。它将人类可读的合约代码翻译成机器可以理解的字节码,以太坊的字节码”由140个简短的操作码(命令)组成,如 “STOP”、”SubTRACT”、”GASPRICE “等。
此外,EVM作为一个状态机:它决定了区块链的状态如何对每一个新的输入做出反应而变化。
这里有一篇些关于虚拟机和EVM的文章。
以太坊虚拟机(EVM)是最著名的区块链虚拟机。每个完整的以太坊节点都运行一个EVM的实例;没有它,节点就无法执行智能合约。你可以这样想象以太坊的分层架构:
硬件(服务器机)→节点→EVM→智能合约和dApps。
zkEVM 与 ZK Rollup的对比
通俗地说,zkEVM是一个零知识 Rollup ,可以做以太坊主网的一切。它将Solidity或Vyper中人类可读的代码编译成字节码,执行智能合约,并更新区块链状态。ZkEVM操作码集可以与以太坊的操作码不同,也可以大部分相同:例如,Matter Labs的zkSync 2.0不支持 “SELFDESTRUCT “命令,因为它可以对区块链造成损害。
在这一过程中,zkEVM 不断生成零知识证明,以验证智能合约代码已被加载并以正确方式执行;交易是有效的;以及状态转换是正确的。
这里的突破是,你可以在zkEVM链上运行任何为以太坊构建的dApp–速度快,而且成本仅为主网的一小部分,但仍然保持相同的安全水平。零知识证明的隐私性与以太坊生态系统的力量和多样性相结合。
兼容性或等效性?
正如Scroll的高级研究员Toghrul Maharramov指出的那样,我们必须区分三种不同的东西:
- EVM兼容性(compatibility) — 将Solidity中的智能合约代码翻译成 ZK Rollup 的特定虚拟机字节码
- EVM等效性(equivalence) — 将 EVM 字节码翻译成 ZKRollup 的虚拟机所使用的任何字节码
- 完整的zkEVM — 能够在Rollup中证明 EVM 代码的执行是有效的。
基于这些非常技术性的区别,人们可以讨论某个zkEVM是否是 “真正的 “zkEVM。例如,Maharramov自己认为Polygon的Hermez(被定位为 “完整的EVM等价L2″)并不是真正的EVM等价,因为它使用的字节码与EVM不同。
我们的任务不是对定义吹毛求疵–无论如何,业界对zkEVM并没有一个统一的定义。在本文中,zkEVM是一个可以运行以太坊 dApps的zk rollup,而不需要重新编写代码。
zkEVM的优势
- 支持所有以太坊 dApps和智能合约,无需重写代码
- 支持以太坊工具:MetaMask, Truffle, Remix, Ganache, 代码库等。
- 所有交易的有效性得到保证 → 安全,不需要解决争端
- 交易在零知识证明提交后立即在主网上完成→快速桥接回以太坊
- 只有简短的零知识证明被发布在主网上(相对于完整的交易数据)→为用户降低Gas成本
- 不需要复制以太坊笨重的共识过程(所有全节点都要进行同样的计算)→可扩展性和性能
这些优势是有代价的。正如我们所说,生成零知识证明需要大量的资源。此外,还必须编写大量的新代码,因为EVM中的并非所有内容都与ZK技术开箱即用兼容。因此,你需要大量投资支持来建立一个zkEVM。例如,Matter实验室为其zkSync筹集了超过4.5亿美元。
正如Vitalik Buterin在这篇优秀博文中解释的那样,zkEVM开发者可以选择优先考虑与以太坊的兼容性或者优先考虑零知识证明的计算速度。看起来越像以太坊和EVM,ZK网络证明生成的速度就越慢。正如我们所看到的,主要的项目–zkSync、Polygon Hermez和Scroll–在每个新版本中都越来越倾向于与以太坊兼容。
2种与以太坊的交互方法
正如zkSync首席执行官Alex Gluchowski在最近的一次采访中解释的那样,ZK第二层的可以与第一层交互的方式有两种:
- 聚合: ZK的解决方案主要是作为一个 Rollup 。它聚合类似的交易(同一货币对的兑换,NFT 铸造等),直到足够打包为一个批次,然后在主网上确认。其缺点是,它可能需要几个小时来聚合足够的操作,用户体验受到影响。
- 本地功能:dApps迁移到第二层并在那里本地运行。主网的最终结果仍然需要时间,但用户并不关心,因为在第二层的生态系统中,交易几乎是即时的。缺点是,你必须说服很多dApps迁移到Rollup上。这就是zkSync采取的方法。
zkEVM 竞争
在2022年7月的两天里,有三家公司发布了关于他们的zkEVM的重要更新。
第一个是Scroll — 一个完全开源的、以社区为中心的项目,与以太坊基金会合作开发。2022年7月19日,它呼吁测试者加入其pre-alpha测试网。
第二个是Matter Labs,这是一个位于柏林的开发工作室,由Alex Gluchowski和Alexandr Vlasov于2018年成立。其zkSync 1.0于2020年推出,但没有智能合约支持。新的zkSync 2.0将具有真正的EVM兼容性,在其“100 Days to Mainnet”博文中,该工作室大胆地称其为 “第一个EVM兼容的zk rollup”。
第三个竞争者是Polygon,一个真正的区块链领域的巨人。在同一天(7月20日),它公布了Polygon Hermez zkEVM并发布了零知识证明系统的源代码。该公司称其为“第一个EVM 等效的ZK L2”,并承诺更快地生成零知识证明。
随着两个主要的区块链团队都使用 “第一”一词,比赛开始了。下一轮比赛于2022年10月举行:
- 10日,Polygon Hermez发布了公共测试网
- 同样在10日,Scroll在Pre-Alpha测试网上启用了智能合约;28日,Matter Labs推出了zkSync 2.0主网的封闭alpha。
对于我们终端用户来说,谁赢得比赛可能并不重要,因为兼容EVM的ZK解决方案的进展是整个行业的一大胜利。因此,我们只考察主要的zkEVM,它们如何工作,以及你已经可以用它们做什么。
ZkSync (Matter Labs)
zkSync是唯一一个已经拥有支持Solidity智能合约的主网和一个正常运行的生态系统的zkEVM。主网只对选定的合作伙伴开放,但普通用户可以尝试测试网。
虽然zkSync比以太坊便宜得多,但它仍然不是免费的。交易成本(GAS)取决于两个因素:
- 计算零知识证明的成本
- 当前的以太坊Gas价格
截至2023年3月,代币转账的Gas费用为0.05美元,兑换 为 0.11 美元 (以太坊上费用分别为0.8美元和4美元)。提款到以太坊主网需要15分钟到3小时:zkSync的交易活跃度越高,最终结果越快。这是因为收集足够多的类似交易来做一个批次需要更少的时间。
ZkSync Lite (1.0)
zkSync 1.0于2020年6月在主网上线,目前仍以zkSync Lite的新名字工作。它不支持智能合约,但它实现了加密货币支付、兑换和NFT铸币。Gitcoin的Grant平台几乎所有的交易都使用zkSync 1.0。
截至2023年3月,该网络的TVL为近5900万美元,30天内有130万笔交易。
ZkSync Era (2.0)
zkSync 2.0于2021年5月在测试网发布,并于2022年10月在隐私主网上发布(Baby Alpha launch)。在2023年2月,它被重新命名为zkSync Era,并向注册的生态系统合作伙伴开放(Fair Onboarding Alpha launch)。
该平台是完全开源的,因此开发者可以根据Matter实验室的代码建立自己的zkEVM实现。
与1.0相比,主要的创新是增加了对大多数以太坊操作码的支持。该系统现在可以将Solidity智能合约编译成zkEVM字节码。
为了实现这一点,Solidity中的合约代码被翻译成一种叫做Yul的中间语言。结果通过LLVM编译器–一个可以将来自前端的不同语言的人类可读代码 “翻译 “成各种字节码的框架,在这里是翻译为zkEVM操作码。LLVM是一个全球性的开源计划,于2000年在伊利诺伊大学开始。
除了Solidity之外,Matter实验室还开发了一种新的智能合约语言:Zinc。它是安全的,并为零知识证明技术进行了优化。Zinc是基于Rust的,就像Aptos的Move。该团队还为其LLVM编译器建立了一个前端,将Zinc代码转化为zkEVM操作码。
第三方开发者将能够为其他编码语言添加编译器前端,以便用他们觉得最舒服的语言(Rust、Java等)为zkSync编写dApps。目前,该团队正专注于Solidity支持。
公共主网何时启动?
ZkSync应该在2023年第二季度向公众开放其主网(全面启动Alpha版)。具体日期还没有确定。
在2023年3月3日至5日举行的 EthDenver 活动中,20,000名与会者有机会尝试主网 – 并在这个过程中为“贪吃蛇”进行支付。
请注意,zkSync没有代币,也还没有宣布任何代币发行日期。如果有人试图向你推销 zkSync 或 ZKS 代币,那是一个骗局。
ZkSync生态系统
截至2023年3月,超过300个项目已经承诺在zkSync上进行部署,包括Uniswap、Aave、1inch、Curve、Sushi和Chainlink。
尝试zkSync Era和它的生态系统
- 将MetaMask切换到以太坊 Goerli testnet。如果你在网络列表中没有看到Goerli,请切换到 “显示测试网络”。
- 获取一些测试网ETH,有不少获取Goerli测试网ETH的龙头。
- 使用以下参数将zkSync testnet添加到MetaMask中:
网络名称:ZkSync Testnet – Goerli
网络URL:https://zksync2-testnet.zksync.dev
链ID: 280
货币符号:ETH
区块浏览器 URL: https://zksync2-testnet.zkscan.io/
你也可以通过连接https://goerli.portal.zksync.io/,自动添加网络。
- 将ETH从以太坊 Goerli桥接到zkSync Goerli。在https://goerli.portal.zksync.io/,用MetaMask连接,然后去桥接。如果Gas看起来太高(超过0.01 ETH),可以考虑等待一下。桥接本身需要5分钟左右,除了你转账的金额,还需要最多0.02ETH的Gas。
- 从zkSync Era faucet 获得免费的DAI, LINK和其他代币。如果这不起作用,你可以简单地在测试网的 DEX上将ETH换成另一种代币(见下文)。
- 与zkSync Era dApps 交互
一些 dApps 已经在 zkSync Era testnet 上线,现在你已经准备好与它们交互了。不过,请确保你有足够的测试网ETH来支付Gas费。另外,请注意,DeFi dApps的测试网流动性很浅,所以要准备好非常不可能的兑换率和兑换许多对的困难。
Testnet dApps包括:
- SyncSwap:将ETH兑换到USDC、WETH、WBTC、DAI、USDT或LINK。你也可以从一个内置的龙头中索取免费的TEST代币
- Mute.io zkSync上的另一个AMM
- MUX – 隔离保证金的杠杆交易
- Mint Square – 铸造你自己的NFT
Polygon Hermez
Polygon 最初是作为一个以太坊扩容侧链而建立的,现在按DeFi TVL计算的第五大L1链(超过11亿美元)。2021年8月,该公司从国库中拨出10亿美元用于开发ZK解决方案,并收购了区块链创业公司Hermez Network,该公司正在建立自己的ZKRollup。这就是Polygon Hermez的起源。
正如我们之前提到的,新的zkEVM的源代码在2022年7月被上传到GitHub。10月10日,Polygon宣布了公共测试网–还不完全EVM等效,而且容量有限,但对外部开发者和测试者开放。
与Polygon Hermez和dApps交互
- 将Hermez加入MetaMask:
网络名称:Polygon zkEVM Testnet
RPC URL:https://rpc.public.zkevm-test.net
链ID: 1442
货币符号:ETH
区块资源管理器网址:https://explorer.public.zkevm-test.net
- 从龙头获得一些Goerli ETH 。
- 从Goerli桥接ETH到Polygon Hermez testnet。
- 与dApps交互:到目前为止,没有什么可以交互的,但是一旦有更多的dApps上线,我们会更新。Uniswap和Aave已经承诺将在Hermez上进行部署。如果你知道在测试网上有任何正在运行的DEXs、NFT项目等,请在评论中告诉我们。
Scroll
Scroll zkEVM正在与以太坊基金会的隐私和扩容探索小组合作开发。这个机构研究ZK解决方案的提案,进行赞助,并积极创造新的零知识技术。
L2的架构的中心是 Scroll 节点。节点的Sequencer部分从rollup mempool中获取交易,确认它们,并形成新的Scroll块。然后,节点的另一部分,协调者(Coordinator)将块的信息(执行跟踪)发送给Roller — 一个专门生成零知识证明的节点。一旦证明准备好了,Scroll节点的Relayer模块会确保它被发布到L1上。
Medium 上的 Scroll
Pre-Alpha Testnet 于 2022年8月发布,到2023年2月处理了超过1500万笔交易。2月27日,Scroll推出了它的Alpha Testnet,你可以加入这里。该测试网每天约有25万笔交易。
3月6日,Scroll宣布了由Polychain Capital、IOSG Ventures、Sequoia Capital和其他风险投资基金牵头的新一轮5000万美元融资。这使项目估值达到令人印象深刻的18亿美元。
参与过程与zkSync和Hermez相同:在MetaMask上添加Scroll,桥接一些Goerli ETH,并尝试一些dApps。
将网络添加到MetaMask中,这里是参数:
网络名称: Scroll Alpha Testnet
网络网址:https://alpha-rpc.scroll.io/l2
链条ID:534353
货币符号:ETH
区块浏览器的URL:https://blockscout.scroll.io
Scroll的区块浏览器允许你检查你的交易是否经过零知识证明的验证并提交给以太坊主网。
Alpha Testnet推出不久,到目前为止(2023年3月)还没有活跃的DEX或DeFI应用程序。不过,你还是可以用Scroll做一些有趣的事情:
- 玩Tictactoe,由著名的Solidity开发者Gaurang Torvekar提供。所有的动作都储存在链上
- 与聊天机器人交谈–它使用了OpenAI的技术,知道关于Rollup的各种事情;
- 玩Scroll Guardians–这是一个冒险游戏,你可以和你的朋友一起杀死一个怪物来拯救大都会。
- 玩Scroll Kingdoms–一个押注的RPG游戏。
Scroll已经向Uniswap社区提交了一份整合建议–到目前为止是为了民意测试,而不是为了投票。该提案受到了热烈欢迎,所以也许我们可以期待在不久的将来看到Uniswap部署在Scroll上–其他DeFi dApps也可能会跟进。
本文作者是 Pontem,Pontem Network是一个产品工作室,为Aptos构建基础性的dApps。
感谢 Chaintool 对本翻译的支持, Chaintool 是一个为区块链开发者准备的开源工具箱
翻译小组 更新于 2023-03-31 17:01
https://learnblockchain.cn/article/5606