
从设计上看,Polygon zkEVM 是一个兼容 EVM 的 zk-rollup。它的目标是提升吞吐量、性能和效率。借助 Plonky2(一项前沿的 zk 扩容技术),它能够生成轻量级的证明,同时支持对 SNARK 进行递归验证,从而让用户可以快速地验证证明。
除了缩短证明生成时间之外,zkEVM 现在还能让交易变得非常便宜,使 zkEVM 上的每一个去中心化应用都更具成本效益。
目前,想要在 Ethereum 上构建面向大众的去中心化应用并不现实,因为交易需要很长时间才能被处理,而且费用相当昂贵,这会带来糟糕的用户体验,也阻碍了真正有意义的普及。
这个问题背后的原因在于,参与网络的每一个节点都需要处理每一笔交易,导致每秒只能处理 13 笔交易。
Zk-Rollup 是继 Optimistic Rollup 之后的第二类 rollup。它们与 Optimistic Rollup 的不同之处在于,它们通过生成被称为零知识证明(zk-proof)的密码学证明来验证已经打包成批次的交易,而不是像 Optimistic Rollup 那样使用延迟期(挑战期)机制,这让 zk-rollup 的速度更快。
Zk-rollup 的成本要低得多,因为它们会把交易打包成一个批次,并且只提交这些交易的证明。在此之前,支持智能合约的 ZK-rollup 都要求开发者离开 Ethereum 生态,因为它们与 EVM 并不兼容。
Polygon 已经率先构建了一个 ZK-rollup,它带有一个支持 Ethereum 字节码的代码运行时环境,这就是 Polygon zkEVM。这让开发者免去了从零开始编写代码的麻烦,他们可以轻松地把自己的智能合约迁移到 zkEVM 上。

在讨论 zkEVM 为什么比传统 EVM 更好之前,我们需要先了解传统 EVM 是如何工作的。
Ethereum 虚拟机(EVM)是一个图灵完备的虚拟机,它充当智能合约的运行时环境。当一笔交易发生时,所有的合约字节码都会从源代码编译而来,并上传到 EVM 的存储中,点对点网络中的节点会在这里执行。这些节点会使用相同的交易输入,确保它们得到正确的结果。
接下来,EVM 的操作码(opcode)会与 EVM 的不同状态进行交互,从状态存储中读取值,然后把新的值写入 EVM 的存储。
最后,新的值会被新的节点复制,这个状态会一直保持,直到下一笔交易被处理。

zkEVM 也基于同样的原理运行,但它更进一步,确保数据得到更好的校验。除了 EVM 中提到的那些步骤之外,zkEVM 还会检查加载的字节码是否正确、是否来自正确的地址。它还会确保区块链上的数据与 EVM 中的数据保持一致。
和 EVM 一样,zkEVM 的主要功能是支持智能合约。它会编译 L2 交易、执行状态转换,并通过生成有效性证明来证明这些状态变更的有效性。
zkEVM 有 5 个主要组成部分:

排序器从网络用户那里收集 L2 交易,然后把这些交易打包成一个批次,并把这个批次提交给 PoE 智能合约。排序器这个角色是无需许可的,任何人只要在自己的机器上运行 zkNode 软件,就可以成为排序器。这提升了网络的去中心化程度。
想要在 L1 上提交批次的排序器,必须支付 L1 的 gas 费用,并额外存入一笔代币费用。这有助于防范垃圾交易,同时也激励排序器只提交有效的交易。用户支付的批次费用,就是排序器获得激励的方式。
提交的批次会以 calldata 的形式发布到 L1 上。任何新的无需许可节点都会重建这些数据,并同步自己的状态。一旦被打包上链,L1 交易就决定了 L2 交易的执行顺序。此时会产生一个确定性的新状态,但只有当有效性证明被发送到 L1 之后,这个新状态才会真正确立。这正是聚合器(aggregator)发挥作用的地方。

聚合器的作用是为排序器提交的 L2 交易批次生成有效性证明。批次被提交时,会按照它们的位置进行排列,并且包含交易数据。
接下来,聚合器会使用一种名为 zkProver 的专用硬件,竞相为每个批次生成有效性证明。第一个生成证明的聚合器,将获得排序器存入的 Matic 费用作为奖励。
聚合器这个角色同样向所有人开放,只要安装了 zkNode 软件并且能够运行 zkProver 即可。

等效 EVM(EVM-Equivalent) - Polygon 的 zkEVM 具备“字节码级别”的兼容性。这意味着它在 EVM 操作码层面和 Solidity 语言层面都完全兼容。所有在 Ethereum 上运行的工具和智能合约,都不需要做任何修改就能在 zkEVM 上运行。 安全 - zkEVM 的大部分安全性继承自 Ethereum,与此同时,它还采用了 zk-STARK 和 zk-SNARK 等零知识证明来确保:状态变更发生时是正确执行的;会生成证明状态变更的证明;并且这些证明会在链上公开以供验证。 去中心化且无需许可 - 任何人只要根据自己想要扮演的角色具备相应的工具,就可以参与到网络中。 高效 - 由于效率是网络性能的关键,最高效的聚合器才能提供有效性证明并获得激励,同时所有计算都在链下完成,只有零知识证明和必要的数据会保存在链上。
zkEVM 是普通虚拟机的改进版本,它能以更快、更安全的方式执行交易。Polygon 将会把整个项目开源,任何想要以更好、更便宜、更快的方式使用 Ethereum 的人都可以使用它。
这是一项非常复杂的技术,但我们正在全力推进开发,迫不及待地想向你展示我们一直在做的东西。
将最新文章直接发送到你的收件箱。