TronLink

您现在的位置是:主页 > 波宝钱包官方 >

波宝钱包官方

tron钱包苹果下载|哪家zk-EVM更强?实测合约开发Taiko、Polygon、Linea、Scroll、zkSync Era.. | 动区动趋-最具影响力的区块链新闻媒体

发布时间:2023-07-25波宝钱包官方
目前包括 Taiko、Polygon、Linea、Scroll 和 zkSync Era 等多个 ZK rollups 专案均推出了自己的 zkEVM,目的是为方便 L1 到 L2 移植程式码和开发以吸引开发者和用户进入生态,本文实测哪一家 zkEVM

目前包括 Taiko、Polygon、Linea、Scroll 和 zkSync Era 等多个 ZK rollups 专案均推出了自己的 zkEVM,目的是为方便 L1 到 L2 移植程式码和开发以吸引开发者和用户进入生态,本文实测哪一家 zkEVM 的开发更好,并比较其优缺点,本文由 Jarrod Watts 撰文。 (前情提要:读懂zkSync Boojum升级:更安全更高效的zkEVM ) (背景补充:ZK-EVM五种类型:与以太坊「完全、部分、几乎等效」差在哪? )

本文目录

  • ZK-EVM 是什么以及我们为何需要它?
  • 不同型别的 ZK-EVM
  • 实战:Taiko、Polygon、Linea、Scroll 和 ZkSync Era 开发评测
  • 结语

以太坊扩容战争中,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。