什么是零知识(ZK)EVM?

  • gelato
  • 发布于 2023-04-05 20:32
  • 阅读 30

本文介绍了零知识EVM(zkEVM)的概念、原理和类型。zkEVM旨在解决以太坊的可扩展性问题,通过兼容零知识证明计算和以太坊基础设施,提高交易吞吐量并降低成本。文章还区分了不同类型的zkEVM,包括完全以太坊等效、完全EVM等效以及高级语言等效等。

博客 — Gelato 大学

什么是零知识(ZK)EVM?

以太坊的可扩展性问题促使人们使用Layer2(L2)扩展方法,例如 rollup——或者更具体地说是 ZK rollup——它们使用有效性证明来确认链下计算。

然而,它们与 EVM 的兼容性并不高。为了解决这个问题,创建了 zkEVM,以与零知识证明计算和以太坊基础设施兼容的方式执行智能合约。这使其可用于零知识 rollup 和 L2 扩展解决方案,从而提高交易吞吐量,同时降低成本。

可扩展性解决方案

在我们深入探讨这个话题之前,这里简要解释一下不同类型的扩展解决方案:

Layer1扩展解决方案

L1 扩展涉及提高区块链网络基础层的交易处理能力。

Layer2扩展解决方案

L2 扩展涉及通过将大部分活动从链下转移到 L2 协议来改变用户与区块链的交互方式。它们与 L1 主网分开实现,无需更改现有的以太坊协议。一种流行的 L2 扩展方法被称为 rollup

Rollup 将交易捆绑(或“汇总”)成批处理,以便在链下执行。然后将数据发布到 L1,在那里达成共识。

我们目前有两种 rollup:乐观 rollup 和 ZK rollup。乐观 rollup 默认情况下假定交易有效,并且仅在出现挑战时通过欺诈证明运行计算,而 ZK rollup 在链下运行计算并将有效性证明提交到链上。

ZK rollup 如何工作?

假设 Alice 想要使用基于 ZK rollup 的钱包向 Bob 发送 10 ETH。以下是涉及的步骤:

ZK rollup 交易涉及第三方运营商,该运营商在链下处理交易并创建加密证明,以验证链上更新状态的有效性。

Alice 将她的交易发送给 ZK rollup 运营商,该运营商收集该交易以及来自其他用户的待处理交易。

然后,运营商创建一个 ZK 证明,总结所有交易,包括 Alice 向 Bob 转账 10 ETH。ZK 证明证明系统的新状态是正确的,而不会泄露有关 Alice 交易的任何详细信息。

ZK 证明由运营商提交给链上合约。

链上合约验证 ZK 证明并检查有效性,确保新状态正确且未包含任何无效交易。如果一切有效,则合约接受新状态,其中包括更新的 Merkle 根。

Bob 现在可以通过查看更新的 Merkle 根来检查他是否收到了 10 ETH。他还可以使用 ZK 证明来验证交易是否已正确处理,而不会泄露任何敏感信息。

ZK rollup 被认为是扩展以太坊以用于所有用途的应用程序的最佳方式,但它们与 EVM 的兼容性并不高。然而,零知识技术的进步重新燃起了人们对将 EVM 计算包装在零知识证明中的兴趣。这些努力旨在创建一个零知识 EVM(zkEVM)。

ZK rollup 使用有效性证明来确认链下计算的正确性。这些证明可以采用 ZK-SNARK 或 ZK-STARK 的形式。 欲了解更多信息,请查看我们的另一篇博客文章

什么是 zkEVM?

zkEVM 是一种与 EVM 兼容的虚拟机,允许你以与 ZK 证明计算和现有以太坊基础设施兼容的方式执行智能合约交易。

这使它们能够成为 ZK rollup 和 L2 扩展解决方案的一部分,从而提高交易吞吐量,同时降低成本。

zkEVM 是以太坊区块链之上的一层新层,它提供了一种更有效的交易处理方式。这是通过对 L1 和 L2 上的交易使用不同的处理方法来实现的。

在 L1 中,智能合约代码存储在以太坊区块链上,当进行交易时,每个完整节点都必须加载代码并执行它才能达到相同的状态。这个过程可能很慢并且需要大量资源。

在 L2 中,智能合约代码也存储在区块链上,但是当用户发起交易时,它会发送到链下的中心化 zkEVM 节点,而不是像在 L1 中那样在 P2P 网络上广播。zkEVM 节点生成一个证明,证明更新状态的正确性。该证明是使用一种称为 ZK-SNARK 的密码技术生成的。

L1 合约验证 ZK 证明的有效性并更新合约状态,而无需重新执行交易。这意味着合约的状态在区块链上更新,但实际交易是在链下处理的。

现在,让我们更深入地了解 ZK 证明生成过程。

Layer1: EVM 一步一步地读取和执行智能合约代码。 每个步骤都涉及读取一些数据、进行一些计算并存储结果。 例如,当 EVM 遇到“add”指令时,它会读取两个数字,将它们加在一起,然后存储结果。

// 示例:EVM 执行 "add" 指令
// 1. 读取两个数字:a 和 b
// 2. 将它们加在一起:result = a + b
// 3. 存储结果

Layer2: 使用 zkEVM,无需在 EVM 上重新执行智能合约,而是生成一个简洁的证明,确保智能合约能够正确执行。

zkEVM 的类型

以太坊等效性 意味着不对以太坊架构进行任何更改。

EVM 等效性 意味着更改以太坊堆栈的某些部分,这些部分太复杂而无法证明。

1 型(完全以太坊等效)

1 型 zkEVM 旨在与以太坊完全等效,从而实现完美的兼容性。 但是,由于以太坊并非专为 ZK 友好而设计的,因此 ZK 证明过程需要大量计算,从而导致更长的证明者时间。

2 型(完全 EVM 等效)

2 型 zkEVM 与 EVM 等效,从“内部”看起来与以太坊完全一样,但进行了一些较小的更改,以使开发更容易并加快证明生成速度。 尽管这些修改可能会影响某些以太坊应用程序,但大多数应用程序仍应与 2 型 zkEVM rollup 兼容。 但是,EVM 的低效率和对 ZK 的不友好仍然会减慢证明过程。

2.5 型(EVM 等效,但 gas 成本除外)

  1. 5 型 zkEVM 增加了难以证明的 EVM 操作的 gas 成本,以改善最坏情况下的证明者时间。 这可能会导致一些开发者工具兼容性问题,但风险低于更深层次的 EVM 更改。 管理资源约束的另一种方法是简单地对每个操作可以调用的次数设置硬性限制。这更容易在电路中实现,但与 EVM 安全假设的配合程度要差得多。

3 型(几乎 EVM 等效)

3 型 zkEVM 几乎与 EVM 等效,但存在一些关键差异。 它们更易于构建且具有更快的证明者时间,因为它删除了某些难以实现的功能,但这可能会导致与某些应用程序的兼容性问题。

4 型(高级语言等效)

4 型系统使用以高级语言(Solidity 和 Vyper)编写的智能合约源代码,并将其编译为专门设计为 ZK-SNARK 友好的语言。 为了避免开销,可以通过直接从高级代码开始,跳过 ZK 证明中的 EVM 执行步骤的某些部分。 但是,某些应用程序可能与 4 型 zkEVM 不兼容。

结论

总之,随着 zkEVM 的发展,以太坊现在能够更好地解决可扩展性问题,而不会损害去中心化和安全性。

要了解有关实施 zkEVM 的不同项目的更多信息,请查看我们的指南

关于 Gelato

Gelato 是一个 Web3 云平台,使开发人员能够创建自动化的、无 gas 的和链下感知的Layer2链和智能合约。 400 多个 web3 项目多年来一直依赖 Gelato 来促进 DeFi、NFT 和游戏中的数百万笔交易。

  • Gelato RaaS: 一键部署你自己的定制 ZK 或 OP L2 链,其中包含原生账户抽象和所有 Gelato 中间件。

  • Web3 Functions: 通过运行去中心化的云函数,将你的智能合约连接到链下数据和计算。

  • Automate: 通过以可靠、对开发者友好且去中心化的方式自动执行交易来自动化你的智能合约。

  • Relay: 通过易于使用的 API,让你的用户可以访问可靠、强大且可扩展的无 gas 交易。

  • 账户抽象 SDK: Gelato 已与 Safe 合作,构建一个功能完善的账户抽象 SDK,结合了 Gelato 行业最佳的无 gas 交易能力和行业最安全的智能合约钱包。

订阅我们的新闻简报并打开你的 Twitter 通知,以获取有关 Gelato 生态系统的最新更新! 如果你有兴趣成为 Gelato 团队的一员并构建互联网的未来,请浏览开放职位并在此处申请 here

  • 原文链接: gelato.cloud/blog/what-a...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
gelato
gelato
The Web3 Developer Cloud. Launch your own chain via our #1 Rollup-As-A-Service platform.