Polygon zkEVM架构

  • Duanraudon
  • 更新于 2023-04-21 09:46
  • 阅读 3613

Polygon zkEVM架构简要说明

概述

​ Polygon zkEVM处理由以太坊 L2 执行的交易(用户发送到网络的交易)引起的状态转换。之后通过利用零知识功能创建有效性证明,证明这些链外状态变化计算的准确性。

zkEVM的主要组件包括:

  • 共识(POE)合约(PolygonZkEVM.sol)

  • zkNode

    • 同步器(Synchronizer)
    • 排序器和聚合器(Sequencers & Aggregators)
    • RPC
  • zk验证器(zkProver)

  • zkEVM Bridge

Polygon zkEVM的架构如下所示:

1.png

共识合约

​ Polygon Hermez 1.0(早期版本)基于捐赠证明(PoD)共识机制。PoD实质上是一种自动进行的去中心化拍卖,参与者(协调员)出价一定数量的代币,以便被选择创建下一批。

​ 最新的共识合约(PolygonZkEVM.sol)利用了v1.0中现有PoD的经验并增加了对多个协调员无许可参与的支持,以在L2中生产批次。

​ 早期的捐赠证明(PoD)机制基于去中心化拍卖模型,以获得在特定时间段内生产批次的权利。在这一机制中建立了经济激励机制,因此验证者需要非常高效才能具有竞争力。

​ 最新版本的zkEVM共识合约(部署在L1)是基于效率证明模型。利用了v1.0版本中现有PoD的经验并增加了对多个协调人无许可参与的支持,以在L2中生产批次。

应用模式

​ 共识合约模型利用现有的PoD机制,支持多个协调员无许可的参与在L2中生产批次。这些批处理是从L1的 Rolled-up交易创建来的。共识合约(PolygonZkEVM.sol) 采用了一种更简单的技术并且由于其在解决PoD所涉及的挑战方面具有更高的效率而受到青睐。

基于合约的共识的战略实施承诺确保网络:

  • 无许可权限便可以生产L2批次
  • 效率高,这是整个网络性能的关键标准
  • 达到可接受的权力下放程度
  • 被保护免受恶意攻击,特别是被验证者攻击
  • 保持整体验证工作和网络价值之间的公平平衡

链上数据可用性

​ 一个 Full ZK-Rollup模式需要在链上发布数据(用户需要重建完整状态)和有效性证明(零知识证明)。然而,考虑到以太坊的在链上发布数据会产生gas。这就造成了我们需要在 Full ZK-Rollup情况和混合情况之间做出决定。

​ 在混合模式下,以下两种情况都有可能。

  • Validium: 数据存储在链外,只有有效性证明在链上公布。

  • Volition:对于某些交易,数据和有效性证明都保持在链上,而对于其余的交易,只有证明继续上链。

除其他事项外,除非能够高度加速证明模块以减轻验证器的成本,否则混合模式仍然可行。

PolygonZkEVM.sol

​ zkEVM中的底层协议通过使用有效性证明来确保状态转换正确。为了确保已经遵循了一组预先确定的规则来允许状态转换,所以使用了共识合约(PolygonZkEVM.sol,部署在L1上)。

共识合约目前已部署在Goerli测试网上。它可以在这里获得。https://goerli.etherscan.io/address/0xa997cfD539E703921fD1e3Cf25b4c241a27a4c7A

​ 智能合约会验证有效性证明,以确保每个转换都正确完成。这是通过采用zk-SNARK电路来完成的。这种类型的系统需要两个过程:交易批量化和交易验证。

  • 排序器(Sequencers)→向网络提出交易批次,即他们将交易请求分批卷起并添加到共识合约中。

  • 聚合器(Aggregators)→检查交易批次的有效性并提供有效性证明。任何无许可的聚合器都可以提交证明,以证明状态转换计算的正确性。

因此,智能合约会发出两个调用。一个是接收来自排序器的批次,另一个是给聚合器,要求对批次进行验证。

5.png

代币经济学

共识智能合约对排序器和聚合器提出了以下要求:

排序器:

  • 任何拥有运行zkEVM节点所需软件的人都可以成为排序器。

  • 每个排序器必须以MATIC代币的形式支付费用,以获得创建和提出批次的权利。

  • 一个提出有效批次(由有效交易组成)的排序器,会受到交易请求者或网络用户支付的费用的激励。

聚合器:

​ 聚合器从排序器接收所有事务信息,并将其发送给验证器,验证器在复杂的多项式计算后提供一个小的zk证明。智能合约验证了这一证明。通过这种方式,聚合器收集数据,将其发送到验证程序,接收其输出,最后将信息发送到智能合约,以检查验证程序的有效性证明是否正确。

  • 聚合器的任务是为排序器提出的L2事务提供有效性证明。
  • 除了运行zkEVM的zkNode软件外,聚合器还需要有专门的硬件来利用zkProver创建零知识有效性证明。
  • 对于一个或多个特定批次,提交有效性证明的聚合者首先获得MATIC费用(由该批次的排序者支付)。
  • 聚合者需要表明他们对交易进行验证的意图。之后,他们根据自己的策略竞争产生有效性证明。

zkNode

​ zkNode是运行任何zkEVM节点所需的软件。它是网络所需的客户端,用于实现同步和管理参与者的角色(排序器或聚合器)。Polygon zkEVM参与者将选择他们的参与方式。

  • 作为一个节点,了解网络的状态

  • 作为批量生产过程的参与者,担任两个角色中的任何一个:排序器或聚合器

    zkNode的架构在本质上是模块化的。你可以查看下面的图表以了解更多信息。

4.png

激励结构

​ zkEVM网络的两个无许可参与者是: 排序器和聚合器。已经设计了适当的激励结构来保持zkEVM网络的快速和安全。以下是排序器和聚合器的费用结构摘要:

  • 排序器
    • 收集交易并批量发布
    • 从发布的交易中收取费用
    • 支付L1交易费+MATIC(取决于待处理的批次)
    • MATIC转到聚合器
    • 盈利条件:txs费用>L1调用+MATIC费用
  • 聚合器
    • 处理由排序器发布的交易
    • 构建zkProof
    • 从排序器中接收MATIC
    • 静态成本。L1调用成本+服务器成本(构建证明)。
    • 盈利条件:MATIC费用>L1调用+服务器成本

zkProver

​ zkEVM采用先进的零知识技术来创建有效性证明。它使用了一个零知识证明器(zkProver),该证明器旨在在任何服务器上运行,并且经过设计与大多数消费者硬件兼容。每个聚合器将使用此zkProver验证批次并提供有效性证明。

​ 它由一个主状态机执行器、一组辅助状态机(每个都有自己的执行器)、一个STARK证明生成器和一个SNARK证明生成器组成。

3.png

​ 简而言之,zkEVM以多项式的形式表示状态变化。因此,每一个提出的批次必须满足的约束是多项式约束或多项式恒等式。换句话说,所有有效批次都必须满足特定的多项式约束。在这里查看zkProver的详细架构。

zkEVM Bridge

​ zkEVM Bridge是一种智能合约,可让用户在LX和LY两层之间转移资产。zkEVM的L1-L2是安全存款和提取资产的去中心化桥梁。它是两个智能合约的组合,一个部署在一个链上,第二个部署在另一个链上。

​ zkEVM中的L1和L2合约是相同的,只是部署位置不同。Bridge L1合约位于以太坊Mainnet上,以便管理rollup之间的资产转移,而Bridge L2合约位于特定rollup上,它负责Mainnet和Rollup (或Rollups) 之间的资产转移。

​ L2的互操作性允许一个本地的机制在不同的L2网络之间迁移资产。这个解决方案被嵌入到Bridge智能合约中。

验证器合约

​ 验证器合约能够验证任何ZK-SNARK密码证明。证明批处理中每个事务的有效性。它是任何zk Rollup架构中的关键实体,其主要原因是它验证了确保有效状态转换的证明的正确性。

验证者合约部署在Goerli testnet上。https://goerli.etherscan.io/address/0x8EdA1d8c254a77a57A6A7A1C0262e9A44A7C6D6d

交易生命周期

​ 在进入L2中的交易流之前,用户需要一些资金来执行L2交易。为此,用户需要通过zkEVM Bridge dApp将一些以太币从L1转移到L2。

  • Bridge
    • 存放以太币
    • 等到globalExitRoot被发布在L2上
    • 在L2上接受资金
  • L2 交易
    • 用户在一个钱包(如Metamask)中启动tx,并将其发送给一个排序器
    • 一旦排序器提交添加其交易,它就在L2上完成了
    • 交易在L2上已经完成,但在L1上没有完成(简单地说,L2的状态还没有到L1上)。此时称为受托状态
    • 排序器将批处理数据发送到L1智能合约,使任何节点都可以以无信任的方式 (也称为虚拟状态) 从L1同步
    • 聚合器将对待定交易进行验证,并构建证明,以实现L1的最终性
    • 一旦证明被验证,用户的交易将达到L1的最终状态(对提款很重要)。这被称为合并状态。
点赞 1
收藏 2
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Duanraudon
Duanraudon
0x8cc6...6305
江湖只有他的大名,没有他的介绍。