ETH兼容网络Polygon zkEVM. 零知识证明prover模块代码分析

ETH:即以太坊代币。

Polygon zkEVM:即与以太坊网络兼容的私有网络,可以用来组成新的区块链,并可以此基础做二次开发,开发出新链。且并提供兼容以太坊区块的批量聚会后的高速的证明功能。具体可以参考Polygon 官网

其中zkEVM-prover模块即是实现生成证明和验证的生产环境代码。

 

以下为一次metamask简单的转账操作后,zkevm网络产生的批量生成零知识证明请求的时序分析:

配合看的source code:https://github.com/0xPolygonHermez/zkevm-prover

git tag v4.0.19

图解

metamask:即用户使用浏览器时的钱包插件,与区块链使用JSON-RPC通讯。

zkevm:zkevm分为多个组件 主要处理JSON-RPC的请求是(zkevm-node)模块

zkevm-node(golang写的): 里面也有很多模块 这里只需要分析aggregator-server。他即是L2数据聚合器。

zkevm-node右侧后续模块都是zkevm-prover(C++)模块中的代码

基础概念:由于zkEVM的批量处理特性,他需要一个聚合器即aggregator,将L2上的数据(即以太坊网络上需要大量算力的证明过程)和多个L1数据绑定聚合,打包到一个区块上。故对prover这块代码做核心分析解构。目前个人也是正在学习中,如有错误请多包涵。(有错误你过来打我啊~!)