
zkEVM 性能哪家强?以太坊 L2 合约部署实测
面对琳琅满目的 ZK Rollups 项目,开发者到底该如何选择?
撰文:Jarrod Watts
编译:BlockBeats
以太坊扩容战争中,Optimistic rollups 因其 EVM 高度兼容甚至完全等效,导致该赛道的 Arbitrum 和 Optimism 在开发者采用上占据先天优势,其 L1 到 L2 无缝移植代码和丰富的开发工具可快速吸引开发者进驻并在平台上部署和创建应用。
与之对比,ZK 系则更难一些。其技术上固有的特性导致 ZK rollups 需要定制自己的虚拟机,这意味着项目方需要做更多的工作来「解释」来自 EVM 的代码甚至是从头开发编写全新代码。不过,目前包括 Taiko、Polygon、Linea、Scroll 和 ZkSync Era 的多个 ZK rollups 赛道项目均推出了自己的 zkEVM 实现。
作为扩容圣杯,zkEVM 对开发者的合约部署体验有至关重要的影响,面对面对琳琅满目的 ZK rollups 项目,开发者到底该如何选择?
本文编译了来自 Jarrod Watts 发布的推文总结,他是 Polygon 的开发者关系工程师,通过在当前热门的 ZK rollups 项目上部署智能合约(1 个 Solidity 智能合约和一个 NFT 合约),对 Taiko、Polygon、Linea、Scroll 和 ZkSync Era 等项目的 zkEVM 性能进行了实测,比较了其各自的优缺点和 L2 到 L1 到账时间,为想要尝试部署二层合约的开发者提供实测指南。
以下为来自 BlockBeats 的原文编译:
ZK-EVM 是什么以及我们为何需要它?在解读 ZK-EVM 是什么之前,先看看为何需要 ZK-EVM?
ZK Rollups 为以太坊带来扩展性和高性能,硬币的另一面是,ZK Rollups 解决方案与 EVM(以太坊虚拟机)不兼容,这意味着 ZK Rollups 方案仅能支持执行有限的操作,包括转账、铸币或销毁,并且还得为用户开发钱包等工具。
因此,我们需要与 EVM 兼容的 ZK Rollups,为此,多家公司都开发了自己的 ZK-EVM。
ZK-EVM,即零知识 EVM,它是一种与零知识证明兼容的以太坊虚拟机实现。
ZK-EVM 主要功能是对以太坊 L2(第 2 层)上交易进行批量处理,并将该批量交易的「有效性证明」发回至以太坊 L1 上。通常,zkEVM 可以做以太坊主网的一切。它将 Solidity 或 Vyper 中人类可读的代码编译成字节码,执行智能合约,并更新区块链状态。
构建 EVM 兼容的 ZK Rollups 的难点在于,以太坊一开始的设计并没有考虑到 ZK 友好性。这意味着零知识证明需要大量的资源进行计算。
其中,某些 EVM 操作码 opcodes 尤为「ZK 不友好」,这导致各家公司最终设计出的 ZK-EVM 产品在 EVM 兼容性上各不相同。
opcodes 、字节码和 EVM 分别是什么?
科普时间到,操作码(opcodes)、字节码和 EVM 分别是什么?
首先,EVM 是以太坊上智能合约的运行环境。以太坊将所谓的「机器状态」以一种 trie 树形数据结构进行存储,每执行完一个区块中的交易后,该结构发生变化。
EVM 是有确定性的,这意味着在任何特定状态上执行一组指令都会产生相同的新状态。
根据以太坊开发者文档,一个旧的有效状态(S)+ 一组新的有效交易(T),以太坊将产生一个新的有效输出状态 S'
你可以将其看作是国际象棋这样的游戏。以太坊就像是一个棋盘,其中存在不同的游戏状态,在以太坊中,这种状态的可能性则是无限的。棋盘游戏都有自己特定的移动规则(对比以太坊上的交易),并且对哪类棋子执行哪些操作也有特定的限制。游戏玩家采取行动(对比的是用户在以太坊上提交交易),游戏(以太坊)制定和执行规则,从而在每个回合(对应区块时间)后产生一个新的棋盘(以太坊全局)状态。
进行以太坊或任何 EVM 兼容的区块链开发,需要使用 Solidity 编写智能合约。Solidity 是一种高级语言,其目的是人类可读,这样开发者就可以专注于编写代码,而非寄存器、内存地址、调用堆栈等抽象层面的东西。
然而,EVM 却无法读取 Solidity。相反,它只能理解「字节码」(bytecode),这是一种二进制、机器可读的低级代码。
在 EVM 中,「字节码」(bytecode)代表的是一系列 EVM「操作码」(opcodes),操作码是程序的低级可读指令,代表的是可在 EVM 中执行的特定操作。
由于 Solidity 这样的高级语言无法在 EVM 中被直接执行,因此,我们需要一种方法将智能合约代码从人类可读的 Solidity 语言 操作码 字节码,然后由 EVM 执行,这就是编译器的工作。
当使用 Remix IDE 编译器对 Solidity 代码编译后,可看到该智能合约转换成的特定的操作码,并查看从该操作码生成的字节码。
以下是操作码:
以下是上面操作码对应的字节码。
通过将字节码转译成操作码,从而可获知字节码中包含哪些执行指令。
由于对 EVM 中一些特定操作码进行 ZK 证明的难度较高,导致市面上出现了不同兼容程度的 ZK-EVM,其中,有些 ZK-EVM 和 EVM 操作码集完全等效,有些对一些 EVM 操作码进行了部分修改,还有一种则具有完全不同的字节码。
不同类型的 ZK-EVM
由于一开始以太坊设计并没有考虑到 ZK 友好性,因此理论上,越接近以太坊设计,生成 ZK 证明就越困难且耗时。2022 年 8 月,以太坊创始人 Vitalik 曾发表博文「听 Vitalik 解读不同类型 ZK-EVM 的未来」,对不同 ZK-EVM 进行了分类。
在该文中,Vitalik 基于 EVM 兼容性和 ZK 证明生成时间(性能)两个维度对各类 ZK-EVM 进行了分类,Vitalik 在该图表中罗列了 四 种(半)类型,目前市面上所有 ZK-EVM 产品都可被囊括其中。
1,第一种类型的 ZK-EVM 与以太坊完全等效,它们不会更改以太坊系统的任何部分,更易于生成证明。在这种系统中,ZK 证明需要很长时间(几个小时)才能生成。Taiko 属于该类型的 ZK-EVM。
2,第二种类型完全与 EVM 等效,但更改了一些不同的内部表示形式,比如链状态的存储方式,以加速 ZK 证明的生成时间。目前,市面上没有这种类型的 ZK-EVM;不过,Polygon、Linea 和 Scroll 正在朝这个方向努力。
2.5,在类型 2 和类型 3 之间,还存在一个类型 2.5。这种类型完全与 EVM 等效,只不过增加了某类操作的 Gas 成本,以「大幅缩短最坏情况下的证明时间」。目前,市面上没有这种类型的 ZK-EVM;不过,一个名为 Kakarot 的新 ZK-EVM 项目正在朝这个方面发力。
3,类型 3 几乎与 EVM 等效,不过等效精确性上做出了一些让步,以进一步缩短证明时间并简化 EVM 的开发。目前,Polygon、 Linea 和 Scroll 属于这一类型。
4,类型 4 相当于 ZK-EVM 的高级语言,这一类 ZK-EVM 将智能合约的源代码编译为 ZK-SNARK 友好的语言,这将会带来更快的证明时间,相应的也会引发不兼容和限制等缺点。目前,zkSync Era 属于这一类型。
值得注意的是,将有效性证明发回以太坊 L1 所需时间就是用户将资金转回 L1 的时间。如果证明生成需要几个小时,则该用户在这几个小时内无法将资金桥接回 L1。
实战:Taiko、Polygon、Linea、Scroll 和 ZkSync Era 开发评测
理论知识复习完毕,以下是实战部分。
通过在 Taiko、Polygon、Linea、Scroll 和 ZkSync Era 上各自部署了 Solidity 智能合约和 NFT 合约,测试每个 ZK-EVM 的性能和存在的相应缺陷,作者还给出了可用的开发者资源,评估主要从开发者体验以及 L2 到 L1 的桥接时间两个维度进行。
Taiko ZK-EVM
Taiko 属于类型 1 ZK-EVM,目前处于测试网阶段。Taiko 可准确地处理以太坊的所有行为;使用相同的哈希函数、gas 价格和加密算法等。
操作过程:部署了一个简单的 Solidity 智能合约并通过使用 ThirdWeb 代理部署了一个简单的 NFT 集合。
类型 1 ZK-EVM 的缺点是,当一切都与以太坊完全相同时(即使在内部),生成证明需要很长时间。这意味着,用户将 ETH 从 Taiko L2 桥接回以太坊 L1 需要几个小时的处理时间(如下所示)。
Linea ZK-EVM
Linea 属于类型 3 ZK-EVM,Linea 目前还不能证明所有操作码或预编译;代表的是与以太坊不同的链内部状态,比如使用不同哈希函数。
部署的字节码与以太坊相同。
此次部署过程几乎无缝,可轻松部署两个智能合约,并与其进行交互。这与以太坊的行为相同;可使用现有工具和钱包部署智能合约、与其交互、铸造 NFT 等。
在撰写本文时,Linea 还未上线桥接前端界面。因此,只能直接调用桥接的智能合约函数。
Linea 文档中显示,ETH 的 L2 到 L1 桥接通常需要大约 15 分钟,但此次操作案例中大约花了几个小时。
Polygon ZK-EVM
Polygon ZK-EVM 属于类型 3 ZK-EVM,自今年 3 月底以来已启动主网。
Polygon zkEVM 在官方文档列出了 EVM 和 zkEVM 之间当前的所有差异
在 Polygon zkEVM 上部署字节码与以太坊相同,这让部署智能合约并与其交互变得非常简单。Vitalik 曾表示,「Polygon zkEVM 具有独特的设计,他们正在使用 ZK 验证自己称为 zkASM 的内部语言」。
Polygon 工程团队表示,除了改进证明生成和提款时间之外,未来还将尽快完成剩余的预编译,目标是成为 Vitalik 图表中的类型 2。
此次部署案例中,zkEVM 主网桥接十分顺利;L2 -> L1 桥接过程大约需要 1 小时。
Scroll
Scroll 属于类型 3 ZK-EVM,目前处于测试网阶段。Scroll 也在官方文档中列出了 ZK-EVM 与以太坊 EVM 之间的差异
和其他 3 型 ZK-EVM 一样,此次部署过程几乎无缝,轻松部署了 Solidity 智能合约和 NFT 集合,并进行交互。从 L2 到 L1 的桥接资金预计需要「10 分钟到几个小时」。
ZkSync Era
ZkSync Era 属于类型 4 ZK-EVM。与其他 ZK-EVM 完全不同,在 ZkSync Era 的 zkEVM 上部署的智能合约字节码与以太坊不同。
这让 ZkSync Era 提供一个独特的功能,即对帐户抽象(Account abstraction)的原生支持,这将带来不同的开发者体验。通常情况下,大多数加密钱包只是标准地址,可以发送和接收资金,并与智能合约互动。有了帐户抽象,加密钱包是定制化的,可以更复杂的方式设计,提供更广泛的功能。此外,该 zkEVM 仍允许开发者使用相同的高级语言,例如 Solidity。
虽然 ZkSync Era 的 ZK-EVM 与 EVM 差异较大,但 ZkSync Era 提供了一整套开发者最佳实践和注意事项。此外,开发者需要对开发流程进行一些小调整,以专门针对 ZkSync Era 进行构建。
比如,在下例中,必须使用自定义 zkSync 扩展安装和配置 Hardhat 环境,以生成可以部署到 Era ZK-EVM 的字节码。
编译生成了和以太坊完全不同的全新字节码,和以上的 ZK-EVM 生成的字节码完全不同。
值得注意的是,ThirdWeb 目前已经上线 zkSync Era ,为开发者提供更加方便的部署体验。
在这次操作中总共部署了两个智能合约,与它们进行交互,并将资产从 L2 发回 L1。目前,出于安全原因,从 ZkSync Era 主网到以太坊 L1 的提款有 24 小时的延迟。
Kakarot ZkEvm
另一个致力于实现 2.5 类型 ZK-EVM 的是 Kakarot ZkEvm,该项目在今年 6 月获得了包括 Vitalik Buterin 和 StarkWare 在内的多家机构的融资,Kakarot 计划于 2023 年晚些时候发布测试网。
相关阅读:《详解 Kakarot:受 Vitalik 青睐并投资的 zkEVM 项目》
结语
对于终端用户来说,谁赢得比赛并不重要,因为兼容 EVM 的 ZK 解决方案的进展是整个行业的一大胜利。对于各项目方而言,与其说是一场竞赛,不如说是探索不同方法来推进整个行业的进步,Vitalik 甚至还有一个「多证明者理论」,其基础前提是,不同的 Rollup 可以协同工作,从而增强以太坊的整体安全性。
归根结底,大家都希望以太坊能够成功。L2 扩容转型是 Vitalik 认为以太坊需要经历的三个技术转型之一。未来将如何发展,我们拭目以待。
比推快讯
更多 >>- 比特币再创历史新高,首次突破113,000美元
- Jupiter Mobile 将于第三季度推出 v3 版本
- Texture:黑客已归还 90%被盗资金
- Cookie DAO 宣布全新质押和 MAF 规则以及 COOKIE 代币销毁机制
- Web3 游戏平台 Remix 完成 500 万美元融资,Archetype 领投
- 比特币再创历史新高,现报 112,438 美元
- 上海市国资委围绕加密货币与稳定币的发展趋势及应对策略召开中心组学习会
- 部分美股加密财库公司涨幅居前,Sequans 大涨 22.95%
- Arkham:贝莱德今日买入以太坊资金量超过比特币
- 德国国有开发银行 NRW.BANK 在 Polygon 链上发行 1 亿欧元债券
- 币安:原 Alpha 代币 PumpBTC (PUMP) 将统一更名为 PumpBTC (PUMPBTC)
- Ethena Labs 宣布 Coinbase 国际站成为 USDe 底层资产对冲平台
- 某地址过去半小时从 Kraken 提取 17,925 枚 ETH
- Plasma 宣布 XPL 公开发售将于 7 月 17 日开启,充值与提现 7 月 14 日锁定
- Kraken 在阿根廷注册为虚拟资产服务提供商,进军拉美市场
- Kraken 在阿根廷和墨西哥推出本地货币融资服务
- 美联储穆萨莱姆:稳定币可能成为支付的重要组成部分
- 汇丰银行完成香港金管局e-HKD+实验测试,聚焦数字货币生态系统实际问题
- 市场消息:美国财政部已撤销加密货币经纪商报告要求
- 海南华铁黄蜂战略入股数字资产交易平台 XMeta
- 特朗普:加密货币“涨破天花板”
- 美联储穆萨莱姆:美国财政赤字不可持续,未来将影响金融稳定
- 特朗普:美联储应迅速降息
- 今日美国比特币 ETF 净流入 1827 枚 BTC,以太坊 ETF 净利润 76940 枚 ETH
- 美元指数 DXY 日内涨超 0.5%,创 6 月 25 日以来新高
- NEXBRIDGE 完成 800 万美元 A 轮融资,Fulgur Ventures 领投
- 特朗普加码关税威胁,但投资者押注特朗普总会退缩
- 美联储穆萨莱姆:通胀存在上行风险,美元贬值或将推动通胀
- 美 SEC 专员:代币化股票仍然是证券,须遵守监管
- 美股 Circle 涨幅收窄至 0.8%
- 蚂蚁国际否认接入 Circle
- Aptos Labs 任命首位首席商务官,巩固 RWA 与稳定币市场地位
- 以太坊基金会发文阐述生态未来发展目标:扩大用户人数和提升技术
- Coinbase 携手 Perplexity AI 提供实时加密数据,旨在助力智能交易决策
- CryptoQuant:Strategy 未来将面临税务风险,或被迫清算比特币以应对税单
- 观点:特朗普有权公开表达对鲍威尔和美联储政策的观感
- Cardano 基金会:持有超 6.5 亿美元加密资产,比特币占比 15%
- K Wave Media 与 Anson Funds 达成 5 亿美元可转债协议,拟 80%用于购买 BTC
- 疑似 Arthapala 地址过去 6 小时再次向交易所充值 6440 枚 ETH
- 某个与 Cumberland 关联地址从币安提取 2.5 万枚 ETH
- Kamino:USDG 耗时 5 个月成 solana 生态第六大稳定币,总流通量 1.2 亿枚,为平台借出率最高资产
- GameSquare 花费 500 万美元买入 1818.84 枚 ETH 以支持其以太坊财库
- DeFi Dev Corp:增持 153,225 枚 SOL,目前 SOL 总持仓达到 846,630 枚
- KULR Technology 花费 1000 万美元增持 90 枚 BTC
- 美国至 7 月 5 日当周初请失业金人数 22.7 万人,预期 23.5 万人
- 乌兹别克斯坦国家支付系统 HUMO 推出政府债券支持的代币
- Coinbase 国际站为机构客户开放场外结算服务
- 交易员 Eugene:pump.fun 公售不值得关注,市场存在太多更有潜力机会
- Tether 增发 10 亿枚 USDT
- Alchemy Pay 获得美国南卡罗来纳州 MTL 许可批准
比推专栏
更多 >>观点
比推热门文章
- Jupiter Mobile 将于第三季度推出 v3 版本
- Texture:黑客已归还 90%被盗资金
- 十大理由告诉你:为什么以太坊必涨无疑
- Cookie DAO 宣布全新质押和 MAF 规则以及 COOKIE 代币销毁机制
- Web3 游戏平台 Remix 完成 500 万美元融资,Archetype 领投
- 比特币再创历史新高,现报 112,438 美元
- 上海市国资委围绕加密货币与稳定币的发展趋势及应对策略召开中心组学习会
- 部分美股加密财库公司涨幅居前,Sequans 大涨 22.95%
- Arkham:贝莱德今日买入以太坊资金量超过比特币
- 德国国有开发银行 NRW.BANK 在 Polygon 链上发行 1 亿欧元债券