1. 引言
Polygon zkEVM自2022年12月1日已开始审计,为未来的主网上线做准备。审计公司有2个:Spearbit和Hexens,审计的内容有:
Polygon zkEVM采用模块化设计,审计的内容主要分为:
- client端:包括RPC节点、sequencer和生成证明的aggregator。
- executor:负责将交易作为输入,使用以zkASM语言编写的ROM程序指令集 来创建execution trace matrix。execution trace matrix需转换为一组多项式,这些多项式应满足PIL中定义的等式关系。
- 证明可保证state transition为根据所处理的交易集正确计算而来。
未来几周后,Polygon zkEVM将进行大幅升级。当前Polygon zkEVM为每笔交易生成一个proof,在增加recursion功能——借鉴了Polygon Zero团队的方案和设计思想,之后,Polygon zkEVM将可生成递归证明,从而实现交易吞吐量扩容。关于递归以及sequencer的实现及改进,后续将更新博客,若想要了解递归思想,可参看:Plonky2:A Deep Dive。
- 在7$/h的AWS实例中,单个batch的proving时间为2.5分钟。(可并行运行多个provers,事实上aggregator就像一个mining pool,多个provers可根据网络需要相互连接合作。影响交易手续费的一个重要参数在于Prover的成本,当前已低于0.3¢。)
- 每个batch的gas limit为1000万。
- proof aggregation:Provers可proof any segment size of the chain。
- 借助Polygon Zero的Plonky2方案,可快速生成上图的infinite recursive proof。
- 借鉴了Polygon Miden的STARK优化策略,以及Dan Boneh的处理intermediate多项式的很有用的trick。
参考资料
[1] Jordi twitter
[2] It’s Not a Race: Auditing Polygon zkEVM
附录:Polygon Hermez 2.0 zkEVM系列博客
- ZK-Rollups工作原理
- Polygon zkEVM——Hermez 2.0简介
- Polygon zkEVM网络节点
- Polygon zkEVM 基本概念
- Polygon zkEVM Prover
- Polygon zkEVM工具——PIL和CIRCOM
- Polygon zkEVM节点代码解析
- Polygon zkEVM的pil-stark Fibonacci状态机初体验
- Polygon zkEVM的pil-stark Fibonacci状态机代码解析
- Polygon zkEVM PIL编译器——pilcom 代码解析
- Polygon zkEVM Arithmetic状态机
- Polygon zkEVM中的常量多项式
- Polygon zkEVM Binary状态机
- Polygon zkEVM Memory状态机
- Polygon zkEVM Memory Align状态机
- Polygon zkEVM zkASM编译器——zkasmcom
- Polygon zkEVM哈希状态机——Keccak-256和Poseidon
- Polygon zkEVM zkASM语法
- Polygon zkEVM可验证计算简单状态机示例
- Polygon zkEVM zkASM 与 以太坊虚拟机opcode 对应集合
- Polygon zkEVM zkROM代码解析(1)
- Polygon zkEVM zkASM中的函数集合
- Polygon zkEVM zkROM代码解析(2)
- Polygon zkEVM zkROM代码解析(3)
- Polygon zkEVM公式梳理
- Polygon zkEVM中的Merkle tree
- Polygon zkEVM中Goldilocks域元素circom约束
- Polygon zkEVM Merkle tree的circom约束
- Polygon zkEVM FFT和多项式evaluate计算的circom约束
- Polygon zkEVM R1CS与Plonk电路转换
- Polygon zkEVM中的子约束系统
- Polygon zkEVM交易解析