Polygon ZkEvm 项目架构解读

  • Dapplink
  • 发布于 2024-12-01 14:59
  • 阅读 51

Polygon ZkEvm 项目架构解读

一、Polygon项目概述

1. PoS(Valium)

  • 定义:基于以太坊的侧链,结合了 Geth(以太坊客户端)和 Tendermint BFT 共识机制。

  • 特点:

🎯高效、安全的侧链解决方案

🎯支持以太坊智能合约,通过桥接技术与以太坊主网连接。

  • 应用场景:

🎯支持快速和低成本的交易,适合 DeFi、NFT、游戏等需要高吞吐量的应用。

2. Polygon zkEVM

  • 定义:等效于以太坊虚拟机(EVM)的 ZK Rollup 扩展方案,是 Layer 2 技术的一部分。

  • 特点:

🎯完整支持以太坊智能合约,无需更改代码。

🎯ZK Rollup 技术确保了数据隐私和验证效率。

🎯通过 zkEVM 实现高吞吐量和低交易成本。

  • 应用场景: 高性能的去中心化应用,尤其适合需要隐私保护的场景。

3. Miden

  • 定义:基于 ZK(零知识证明)的虚拟机,支持私有链和专用链的构建。

  • 特点:

🎯提供隐私保护和高效的链上运算能力。

🎯专为企业级、定制化场景设计。

  • 应用场景:企业私有链、隐私需求高的金融和政府项目。

4. Polygon CDK

  • 定义:标准化的 Layer 2 技术框架,帮助开发者快速搭建自己的 Layer 2 网络。

  • 特点:

🎯开箱即用的开发工具,降低 Layer 2 的实现复杂度 🎯支持多种扩展性技术,包括 Rollup、Plasma 等。

  • 应用场景:Layer 2 项目开发者和希望快速扩展生态的公链团队。

  • 代表项目:

🎯X Layer2
🎯ZkFair

二、Polygon ZkEVM概述

第一个上线主网 Zk Rollup 项目,整个项目组成 zkevm-node, zk-prover(C++/NodeJS 编写的 ZK Proof 模块),bridge(Lx<->Ly), prover (C++/NodeJS 编写的 ZK Proof 模块),bridge(Lx<->Ly),PolygonZkEvm 合约集。

该 Zk Rollup 项目由四个核心模块组成,分别是:

● zkevm-node

● zk-prover

● bridge(Lx <-> Ly)

● PolygonZkEvm 合约集

1. zkevm-node

核心职责:作为整个系统的核心模块,zkevm-node 负责用户交互、交易聚合、状态转换和与 Layer 1 的同步。
具体功能: 🎯 接收用户的交易:

接收来自 Layer 2 的用户交易请求。

验证交易的有效性并将其加入到交易池中。

🎯 交易排序并RollUp到L1:

对交易进行排序。

将多个交易聚合成一个批次(Batch),并 RollUp 到 Layer 1。

🎯 同步Layer1数据:

从 Layer 1 同步区块和状态数据。

确保 Layer 2 的状态与 Layer 1 的状态一致。

🎯 区块状态转换

处理交易后更新 Layer 2 区块状态。

状态转换逻辑需要与 zk-prover 保持一致。

🎯 与 zk-prover 协作:

递交交易给 zk-prover 执行。

将排序后的交易聚合提交给 zk-prover 模块。

获取 zk-prover 返回的 Zk Proof 并提交至 Layer 1 进行验证。

2. zk-prover

核心职责: 负责交易执行和生成零知识证明(Zk Proof),确保 Layer 2 的状态转换过程是正确的。

具体功能: 🎯接收交易数据: 从zkevm-node接收聚合的交易和状态信息。

🎯交易执行: 执行阶段仅仅是将交易执行,但是不生成proof,执行的目的是确保后续zk proof的准确生成。

🎯生成Zk Proof: 通过zk电路(基于C++/Node.js编写)处理交易和状态转换逻辑。
生成验证Layer2状态转换正确性的零知识证明。

🎯返回Zk Proof: 将生成的Zk Proof返回给zkevm-node,供其提交至Layer1验证。

3. Bridge(Lx <->Ly)

核心职责: 实现Layer1和Layer2之间的资产跨链交互。

具体功能: 🎯 充值(Deposit): 支持从Layer1向Layer2的资产充值。
用户在Layer1上锁定资产,并在Layer2上解锁等值资产。

🎯 提现(Withdraw): 支持从Layer2向Layer1的资产提现。
用户在Layer2上销毁资产,并在Layer1上解锁等值资产。

🎯 全局退出根: 使用全局状态根(Global Exit Root) 管理层交易的状态。
确保跨层操作的一致性和安全性。

4. PolygonZkEvm合约集

核心职责: 管理Zk Rollup的核心逻辑,包括批次处理、证明验证和状态管理。

具体功能: 🎯 RollUpManager: 接收Layer2提交的批次数据。
管理Layer2和Layer1的状态同步。

🎯 Verifier: 验证zk-prover提交的Zk Proof的正确性。
确保Layer2的状态转换过程是可信的。

🎯 其他合约: 存储Layer2的状态信息。 管理用户的充值和提现记录。

三、Polygon ZkEvm项目架构

微信图片_20250224171601.png

  • Jsonrpc: 一组Http接口,和Ethereum的 json-rpc 的行为一致。

  • GasPricer: 定期获取L1的gas, 并使用计算公式计算 L2建议手续费,数据存储在Pool;

  • Sequencer: 负责可信任的交易批次构建,从Tx Pool 池子里面获取交易进行构建,构建完成之后交易变成 trusted;

  • SequencerSender:合并交易批次,将这些交易发送 L1; 发送完成之后,当同步器同步这些交易之后L2的交易变成虚拟状态;

  • EtxManager: 是一个High Level 级别,封装操作交易发送 L1 相关的接口;

  • Synchronize: 同步L1交易,更新StateDB数据,检测重组和处理重组;

  • 状态数据库:交易状态数据持久化存储;

  • Aggragator: 聚合交易递给zk prover 生成 zk proof

  • Zk Prover: 链下生成交易的零知识证明;

  • Verifier: zk proof 验证;

四、Polygon ZkEvm模块深入解析

1. zkevm-node执行过程

微信图片_20250224171716.png

  • 用通过 RPC 发交易,交易进入到 Pool;

  • 可信任的 sequencer 从 Tx Pool 将交易提取出来,本地执行排序,执行完成之后交易的状态(可信任状态)写到 state;

  • Sequencer 将交易批次 Rollup 一层,交易 Rollup 完成之后,同步器同步对应 Rollup, 检查完成交易之后将交易状态修改 "虚拟状态";

  • Aggregator 从State获取对应交易输入,调度Zk Prover生成交易证明,交易的证明会被提交以太坊上;

  • 交易证明提交完成之后,同步器同步到对应 Proof 证明信息,将 L2 交易状态变成 "合并" 状态。

2. Polygon Zkevm的状态

2.1 状态管理流程图

微信图片_20250224171742.png

2.2 Polygon ZkEvm的交易状态

  • Trusted: 可信任状态

  • Virtual: 虚拟状态

  • Consolidated: 合并状态

微信图片_20250224171839.png

3. Polygon的桥

微信图片_20250224171854.png

4. Zk Prover的项目功能架构

微信图片_20250224171917.png

  • 节点将 merkle 树的内容发送并存储到 DB

  • 节点将 Tx 给到 Prover 去进行证明

  • ZKProver 从数据库里面获取 merkle 树根,密钥和 Hash 等生成证明所需要的信息

  • 最后,ZkProver 生成交易证明,并将这些证明返回给节点

五. 总结

Polygon 项目通过 PoS、zkEVM、Miden 和 CDK 等子项目构建了一个功能全面的扩展性生态系统。

其中,Polygon zkEVM 的上线标志着以太坊 Layer 2 技术的一个重要里程碑,其 ZK Rollup 方案为去中心化应用提供了高效、低成本和隐私保护的基础设施。

本文主要对 Polygon zkEVM 项目的大功能模块进行了详细讲解,包括其核心架构和模块职责,为了解 Polygon zkEVM 的整体工作原理提供了清晰的思路。

在接下来的文章中,我们将进一步深入探讨 Polygon zkEVM 每个模块的执行细节,挖掘其背后的业务逻辑和技术实现。

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Dapplink
Dapplink
0xBdcb...f214
首个模块化、可组合的Layer3协议。