一. 什么是 ZK Rollup?
要理解什么是 zk rollup,我们需要知道两个核心概念:
零知识证明 汇总
1. 零知识证明
零知识证明(zk proof)用于在不泄露任何关于该陈述的信息的情况下对一个陈述进行数学验证。
zk-SNARK 是一种 zk 证明,代表“零知识简洁知识论证”。zk-SNARK 允许计算机快速验证计算的输出。生成证明的速度比运行计算所需的速度快得多,从而提高了系统的速度。它们在密码学中很有用,因为它们允许隐藏计算的某些输入。
用于解释 zk-SNARKs 的一个常见类比是“Waldo 在哪里?” 例子。想象一下,您正在看Where's Waldo?图像,您需要向 X 证明您找到了 Waldo,但不透露他的位置。你可以剪下 Waldo 的图像并将其提供给 X,这将验证你找到了 Waldo 但不会透露他藏身的地方。Zk-SNARKs 以类似的方式工作,使用 zk 证明来验证交易而不透露任何额外信息。
2. 汇总
Rollup 是以太坊开发人员计划扩展以太坊网络的主要方式。Rollup 可以增加吞吐量(以每秒交易数衡量)、提高交易完成速度并降低交易费用。它们是一种“第 2 层”。第 2 层是在第 1 层区块链之上运行的区块链。
简而言之,rollups 可以让以太坊以更低的成本更快地完成更多的交易。
解释汇总的一个流行类比是“邮件”类比。想象一下,您要向住在同一栋房子里的 5 个人分别发送 5 封信。您将每封信放入单独的信封,支付 5 枚邮票,然后寄出。将所有信件放入一个信封,支付一张邮票,然后将那个信封寄到他们家会更有意义。这将降低您的邮寄成本并允许您发送更多信件。
Rollups 的工作方式类似于“邮件”类比,因为它们需要,比如说,2,000 笔交易(2,000 封信)并将它们放入一个批次(一个信封)中。然后将该批次发送(邮寄)到以太坊(收件人的房子),交易数据作为单个以太坊交易存储在那里。这个过程导致更高的 TPS、更快的最终确定和更低的交易费用。
有关 rollups 的更多信息,我推荐 Vitalik Buterin 的An Incomplete Guide to Rollups和 Delphi Digital 的The Complete Guide to Rollups。
zk rollup(零知识汇总)是一种使用零知识证明来验证交易的汇总。
二. 为什么使用 ZK Rollups?
以太坊有两个主要问题:
1.它具有每秒 15-45 个事务 (TPS) 的(低)吞吐量。 2. 当网络拥塞时,它会产生昂贵的交易费用。
2021 年 1 月至 2022 年 5 月期间,以太坊的平均交易费约为 40 美元。2022 年 5 月 1 日,平均交易费用为 196.63 美元。
以太坊低 TPS 和高交易费用的解决方案是第 2 层解决方案,如 zk rollups 和 optimistic rollups。
zk rollups 的主要竞争是 optimistic rollups,这是一种使用欺诈证明而不是零知识证明的 rollup。与 optimistic rollups 相比,Zk rollups 提高了速度和隐私,但它们在技术上更难实现。以前的 zk rollups 实现功能有限。他们(很大程度上)只能进行代币转移和互换。但是 zk rollup 技术正在随着分片(和 zkEVM,我们将在下一节中介绍)的发展而改进。图 2 显示了分片技术的潜在未来,其中汇总块数据随着时间的推移在分片之间拆分。
“从中长期来看,随着 zk-SNARK 技术的改进,zk rollups 将在所有用例中胜出。” ——Vitalik Buterin,以太坊联合创始人
Zk 汇总是以太坊长期扩展的关键。领先的第 2 层项目 Scroll 的技术团队表示,zk 汇总与以太坊第 1 层一样安全,并且具有任何第 2 层扩展解决方案中最快的最终确定性。此外,Vitalik Buterin 表示汇总对于扩展 TPS 至关重要:
- 以太坊有 15-45 TPS。
- 具有 zk 汇总的以太坊将具有 1,000-4,000 TPS。
- 与 zk rollups合并后的以太坊将有 25,000-100,000 TPS。
为了达到以太坊可扩展性和功能的最终目的,我们需要下一代 zk rollup 技术 zkEVM 。
三. 什么是 zkEVM?
要了解什么是 zkEVM,我们需要了解另一个核心概念:以太坊虚拟机。
简而言之,以太坊虚拟机(EVM)是一台运行以太坊网络并处理智能合约的去中心化云计算机。EVM 是以太坊的运行时环境。 它是一套标准的规则和软件包,而不是单一的硬件或软件。它最初在以太坊黄皮书中定义,并通过以太坊改进提案(EIP) 进行更新,例如EIP1559。当 EVM 在许多不同的计算机上运行时,结果是一个有凝聚力但去中心化的区块链网络。在这种情况下,网络是以太坊主网,但还有其他 EVM 兼容的主网和测试网,如Avalanche和幻想。主网是一个功能齐全的区块链,可供公众使用,而不是用于测试新项目和更新的测试网。
要使 zk rollup 与 EVM、Solidity 代码和以太坊开发人员工具良好配合,它必须与 EVM 兼容。之前的 zk rollup 实现与 EVM 不兼容,因此它们与许多以太坊去中心化应用程序 (dApp) 和开发人员工具不兼容。
zkEVM 是一种与 EVM 兼容的 zk rollup。
四. zkEVM 分析框架
ZkEVM 项目都有一个相似的目标——创造与以太坊完全一样的开发者和用户体验。有 4 个顶级 zkEVM 项目采用不同的方法并进行独特的权衡。有些对开发人员更友好。有些更容易维护。有些人更快地完成交易。有些交易费用较低。在本节中,我们将介绍 3 种不同的框架,以帮助我们了解 zkEVM 项目之间的差异。
1. 《关卡》zkEVM分析框架
Scroll 的 Luozhu Zhang 和 Toghrul Maharramov 有一个分析框架,其中有 3 个级别的 zkEVM 兼容性:
- 共识级别。(对开发人员友好。)通常称为“真正的”zkEVM。
- 字节码级别。(开发人员友好。)通常称为 EVM 等效。
- 语言水平。(对开发人员不友好。)通常称为 EVM 兼容。
图 5 显示了语言级 zkEVM 如何转译 Solidity 代码。语言级别的 zkEVM,如 StarkNet 和 zkSync,采用 Solidity、Vyper 或 Yul 代码并将其转换为支持 zk 的语言,如 Cario 或 Zinc。
字节码级别的 zkEVM 不会将 Solidity 代码转换成另一种编码语言,并且应该能够使用常见的以太坊开发工具(如 Hardhat 和 Foundry)、库(如 ethers.js)、钱包(如 MetaMask)、市场和调试器。相反,语言级别的 zkEVM 可能不兼容。
2.「类型」zkEVM 分析框架
Vitalik Buterin 有一个分析框架,可以识别 4 或 5 种类型的 zkEVM。
我们需要知道什么是 zkEVM“证明者”才能理解 Vitalik 的框架。证明者是生成 zk 证明的代码的一部分。 改进证明者时间将减少完成交易所需的时间。
Vitalik Buterin 的 zkEVM 分析框架:
- 类型 1:完全等同于以太坊。所有 Solidity 智能合约和开发工具都将完美运行。
- 类型 2:完全等效于 EVM。类似于类型 1,但有一些修改以改进证明时间和开发人员友好性。
- 类型 2.5:与类型 2 相同,只是通过增加交易费用来改进证明时间。
- 类型 3:几乎等效于 EVM。类型 2 和类型 3 之间的主要区别在于智能合约可能需要重写才能正常运行。
- 类型 4:高级语言等价物。类型 3 和类型 4 之间的主要区别在于智能合约可能需要重写,并且常见的以太坊开发人员工具可能不兼容。
3. “真正的”zkEVM 分析框架
Messari 研究分析师 Tom Dunleavy 和 Eshita Nandini 有不同的 zkEVM分析框架。“真正的”zkEVM 的标准取决于字节码的执行方式。如果直接执行,它就是一个“真正的”zkEVM。如果字节码在执行之前被解释,它就不是“真正的”zkEVM。
四. 顶级 zkEVM 团队和项目
Polygon (Polygon zkEVM)、Scroll、StarkWare (StarkNet) 和 Matter Labs (zkSync 2.0) 是领先的 zkEVM 开发团队和项目。
图 7 显示了 Solidity 代码在每个项目的 zkEVM 上运行之前必须经过的过程。它在“y 轴”上分为 3 个级别,类似于 Luozhu Zhang 的 zkEVM 分析框架。
1. polygon
Polygon 是领先的第 2 层开发团队,为以太坊提供多种扩展解决方案。Polygon 使用许多不同的技术来扩展以太坊,例如 zk 和 optimistic rollups、侧链、数据可用性层和区块链 SDK。采用最广泛的是 Polygon 的股权证明 (PoS) 侧链,它使用抵押硬币和验证器来验证交易。
- Polygon PoS:一种与 EVM 兼容的权益证明侧链。(居住)
- Polygon zkEVM:一个专注于 EVM 等效的开源 zk rollup。(公共测试网)
- Polygon Avail:专注于数据可用性的独立第 2 层链。(发展)
- Polygon Nightfall:使用 zk 和 optimistic rollups 的以隐私为中心的 rollup 链。(主网测试版)
- Polygon Miden:一个 zk-STARK rollup。(发展)
- Polygon Zero:一个专注于可扩展性的 zk rollup 链。(发展)
Polygon 最重要的扩展解决方案是 Polygon PoS 和 Polygon zkEVM。
1.1. 多边形权益证明 (PoS)
Polygon Proof of Stake 于 2017 年推出,现在是以太坊上最常用的第 2 层。PoS 侧链与 EVM 兼容,并使用 Plasma 桥接框架。目前它几乎处理了 Polygon 的所有交易,吞吐量为7,000 TPS,出块时间为 2s。它比在以太坊上进行交易的成本低大约 10,000 倍,平均交易成本不到 1 美分。它的主要缺点是与汇总相比,它的安全性较差。
1.2. 多边形 zkEVM
Polygon 目前正在开发其 zk rollup 基础设施。2022 年第三季度,他们筹集了 4.5 亿美元,并承诺投入 10 亿美元开发多个 zk rollup 扩展解决方案。
2021 年 8 月,Polygon 收购了第 2 层 zk rollup 项目 Hermez Network,并将其整合到他们的产品阵容中,称为 Polygon Hermez。2022 年 7 月,他们将 Polygon Hermez 更名为 Polygon zkEVM。
Polygon zkEVM 是一个开源的第 2 层汇总,吞吐量为 2,000 TPS。它目前处于开发的公共测试网阶段。超过 2,000 笔交易可以作为单个交易被批处理并放入以太坊第 1 层。Polygon zkEVM 于 2022 年 10 月 10 日启动了公共测试网。主网 zkEVM 预计将于 2023 年初启动。
Polygon zkEVM(以及 StarkNet 和 zkSync 2.0)已承诺在未来实现数据可用性。Volition 使用户能够选择他们的数据在链上或链外存储的程度。在不同的用例中,控制数据可用性可能很有用。图 9 对比了 volition 与其他数据可用性解决方案。
2. scroll
Scroll 是第 2 层 zkEVM 扩展解决方案。有一个 pre-alpha 测试网,超过 10,000 名用户正在测试 dApp 的演示分支。Scroll 于 2022 年 10 月 9 日发布更新,允许开发人员使用以太坊开发工具(如 Hardhat 和 Foundry)部署智能合约,以太坊智能合约无需重写代码即可运行。该更新还增加了对 ERC-20、ERC-721 和 ERC-1155 标准的支持。Scroll 将很快发布一个向公众开放的测试网版本。
2. StarkWare
StarkWare 是为数不多的使用 zk-STARKs 而不是 zk-SNARKs 的 zkEVM 团队之一。Zk-STARKs 使交易更安全但费用更高。它们还具有更大的批量大小、更快的证明速度,并且具有后量子安全性(这意味着它们无法被量子计算机破解)。StarkWare 有 2 个项目,StarkNet 和 StarkEx。
2.1.StarkNet
StarkWare 是为数不多的使用 zk-STARKs 而不是 zk-SNARKs 的 zkEVM 团队之一。Zk-STARKs 使交易更安全但费用更高。它们还具有更大的批量大小、更快的证明速度,并且具有后量子安全性(这意味着它们无法被量子计算机破解)。StarkWare 有 2 个项目,StarkNet 和 StarkEx。
StarkWare 声称已经解决了可组合性问题,但它的批评者并不同意。StarkWare 使用 Warp 转译器将 Solidity 代码转换为 Cairo。转译适用于 EVM 兼容性,但 StarkNet 不支持一些已知的 Solidity 功能。可以在 Nethermind 的GitHub 上的“不支持的 Solidity 功能”部分下找到不受支持的功能的完整列表。StarkWare 正在创建自己的 API 和 JavaScript 库,这将需要工具来手动添加 StarkNet 兼容性。
2.2.StarkEx
StarkEx 是专为 NFT 交易、衍生品交易、现货交易、支付、DeFi 池和自动做市商 (AMM) 设计的第 2 层扩展解决方案。它可以被认为是 StarkNet 的许可版本。“许可”意味着它是为某些获准使用网络的 dApp 量身定制的。
3. zksync
Matter Labs 于 2020 年 6 月推出了 zkSync 1.0。它是一个不兼容 EVM 的 zk rollup layer 2。这个版本的 zkSync 能够扩展到 300 TPS。在后来的更新中,zkSync 1.1 将吞吐量提高到 3,000 TPS。
3.1 zksync2.0
ZkSync 2.0 是 zkEVM 第 2 层扩展解决方案。它于 2022 年 10 月 28 日在以太坊主网上启动。该网络目前只有 Matter Labs 团队可以访问,并且在他们确信它正常运行之前不会公开。2022 年底或 2023 年初,zkSync 2.0 测试完成后,alpha 版将全面推出,任何人都可以使用。如果在测试阶段一切顺利,Matter Labs 将率先在以太坊主网上部署可运行的 zkEVM。
“ZkSync 的 zk rollup 技术与以太坊 2.0 数据分片相结合是最终目标,在不牺牲[可编程性、安全性、可扩展性或去中心化]的情况下达到 100,000+ TPS。” — 物质实验室
Matter Labs 声称 zkSync 2.0 几乎可以无摩擦地移植以太坊 dApp。这意味着开发人员可以将他们的 Solidity 代码移植到 zkSync 上,只需进行最少的更改。Matter Labs 的批评者会说 zkSync 2.0 并不像他们声称的那样对开发人员友好,并且常见的以太坊开发人员工具可能不兼容。
Matter Labs 的 zkEVM 方法的一个好处是,他们可以添加独特的非 EVM 兼容功能,或者在 EIP 在以太坊上启动之前构建新功能。其中一项功能是用户可以使用任何 ERC-20 代币支付交易费用,例如 USDC、DAI、ETH、LINK 或 WBTC。当您必须支付交易费用但没有任何原生令牌时,这会极大地改善用户体验。
五. 主要差异
目前,每个 zkEVM 项目都将自己宣传为对开发人员最友好的项目,以吸引开发人员使用他们的平台。他们为他们的项目制定了 3 年以上的目标,并声称他们很快就会拥有该功能。
Luozhu Zhang zkEVM 分析框架结果 Polygon 和 Scroll 是字节码级别的(对开发人员友好)。对于这些项目,没有转译器步骤。用 Solidity 编写的智能合约在被编译和解释之前不会被转换。
StarkNet 和 zkSync 2.0 是语言级别的(对开发人员不友好)。对于 zkSync 2.0,将运行用 Solidity 编写的智能合约,但 zkSync 会将代码转换为另一种编码语言 Yul。StarkNet 会将代码转换成 Cairo。
六. Vitalik Buterin zkEVM 分析框架结果
- 多边形 zkEVM 是类型 2 或 3
- 滚动是类型 2
- StarkNet 是 Type 4
- zkSync 2.0 是 Type 4
较低的数字意味着它更等同于以太坊,但 Immutable X 的联合创始人兼首席技术官 Alex Connolly 表示,“重要的是要理解 [zkEVM] 方法中没有一种在本质上是优越的——它是一种分类,而不是层次结构。他们都做出了不同的权衡:更容易构建、维护和升级,性能更高,更容易与现有工具兼容。最终,领先的汇总也将取决于更好的分销和营销,而不是纯粹的技术能力。”
七. Messari zkEVM 分析框架结果
使用 Messari 的框架,Scroll 是唯一“真正的”zkEVM。Scroll 是 EVM 最等效的,其次是 Polygon zkEVM、zkSync 2.0 和 StarkNet(按此顺序)。Polygon zkEVM 比 zkSync 或 StarkNet 更接近“真正的”zkEVM,但它执行的代码可能与 EVM 略有不同。这是因为它有在 Solidity 代码被编译成字节码之前运行的微操作码。
还有很多其他的 zkEVM 分析框架和观点。Scroll 的联合创始人 Sandy Peng 曾表示,对于 EVM 等效性和兼容性的定义尚未达成共识。
我认为,从长远来看,zkEVM 之间的差异将减少,因为:
每个项目都开发了提高开发人员友好性的方法。 以太坊发布更新,使其对 zk rollup 更加友好。
翻译自: https://www.iangreer.io/zkevm/