码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Polygon zkEVM工具——PIL和CIRCOM


    1. 引言

    前序博客有:

    • ZK-Rollups工作原理
    • Polygon zkEVM——Hermez 2.0简介
    • Polygon zkEVM网络节点
    • Polygon zkEVM 基本概念
    • Polygon zkEVM Prover

    2022年8月8日Jordi Baylina(Iden3合伙人,Polygon Hermez zkEVM技术负责人)在Zcon3分享 Tooling for building zkEVM: PIL and Circom - Jordi Baylina at Zcon3。

    Polygon zkEVM主网路线图为:
    在这里插入图片描述

    Polygon Hermez 总体架构为:
    在这里插入图片描述
    其中zkProver总体示意为:
    在这里插入图片描述
    zkProver内部示意为:
    在这里插入图片描述
    以Fibonacci序列为例:
    在这里插入图片描述
    Fibonacci序列(1024个元素)对应的CIRCOM R1CS电路表示为:
    在这里插入图片描述
    以上CIRCOM R1CS电路对应的Polynomial Identities/State Machine为:
    在这里插入图片描述
    将以上Polynomial Identities以PIL程序表示为:
    在这里插入图片描述
    构建pre-processed polynomials,并计算witnesses(为state machine):
    在这里插入图片描述
    以fibonacci.js和fibonacci.pil构建测试用例:
    在这里插入图片描述

    2. PIL中的Permutation Check

    在这里插入图片描述
    在这里插入图片描述

    3. PIL中的Plookup

    在这里插入图片描述
    在这里插入图片描述

    4. PIL中的Connection Check(Copy constraints)

    在这里插入图片描述
    在这里插入图片描述

    5. PIL表示PLONK

    在这里插入图片描述

    6. CIRCOM中的Custom Gates

    在这里插入图片描述
    CIRCOM中的Custom Gates:

    • 可用作normal templates
    • 与其它模板类似,由CIRCOM生成Witness calculator
    • No constraints are allowed.
    • 所有的custom gates都导出为.r1cs文件。
    • 支持以circom来编写电路,而使用STARK来prove/verify该电路。
    • 当前circom支持的primes有:BN128、BLS-12 381、Goldilocks。

    7. pil-STARK

    https://github.com/0xPolygonHermez/pil-stark pil-STARK工具的作用:

    • 根据pil生成a STARK proof system。
    • 生成a CIRCOM circuit以verify该STARK。

    Demo演示见 Tooling for building zkEVM: PIL and Circom - Jordi Baylina at Zcon3视频第24分钟。

    7.1 Recursive STARK

    pil-STARK实现了 Recursive STARK,可生成a CIRCOM circuit that can be verified with another STARK:

    • Hash:Optimized poseidon hash for Goldilocks。
    • Field operations in the same prime field。

    借助Recursive STARK,可:

    • reduce the complexity of the proof
    • aggregate many proofs

    7.2 以PLONK/Groth16来验证STARK

    pil-STARK生成regular CIRCOM circuit,使得可以snarkJS(PLONK或Groth16)来验证:

    • Hash:Optimized poseidon hash for BN128 curve.
    • Field operations in different prime field。(Acceptable proving cost)

    使用Groth16/PLONK proof的优势在于:

    • proof具有constant size。
    • 链上验证很便宜。

    8. zkProver

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    9. EVM Processor总体架构

    EVM Processor总体架构为:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    9.1 借助Plookup连接2个state machines

    在这里插入图片描述

    10. zkasm-rom

    https://github.com/0xPolygonHermez/zkevm-rom/ zkasm-rom:

    • 为以太坊交易processor
    • FREE Input the Transactions and the hash must match
    • About 16 clocks per gas unit
    • zkCounters to prevent the proof to fail(DOS)

    11. zkEVM测试

    Polygon zkEVM使用以太坊test suit来验证zkEVM,目的是维护a high level of equivalence。
    当前状态为:

    • 以太坊test suit中的有13,000个测试
    • Polygon zkEVM当前通过了7,209个测试(60%的覆盖率)

    目标是实现100%覆盖。

    12. zkEVM性能

    当前Polygon zkEVM性能为:

    • 在具有64核的单CPU(AWS收费为2.5$/h),生成500K gas proof用时约需5分钟。

    单笔交易的开销为:0.00875$

    仍然有很大的改进空间:

    • 优化代码
    • 优化数学表达
    • GPU/FPGA加速
    • 改进设计

    参考资料

    [1] 2022年8月8日Jordi Baylina在Zcon3分享 Tooling for building zkEVM: PIL and Circom - Jordi Baylina at Zcon3

  • 相关阅读:
    CSS布局概念与技术教程
    java计算机毕业设计华水疫情预警与防护用品调度系统MyBatis+系统+LW文档+源码+调试部署
    alibaba.fastjson的使用(五)-- Json数组字符串 ==》 JSONArray
    在 TensorFlow 中调试
    基于html+css+javascript+jquery+bootstarp响应式网页设计——大理我的家乡旅游景点
    Oracle——数据操纵DML(一)
    jmeter 压测脚本JMX
    【29】CISC和RISC:为什么手机芯片都是ARM?
    【LeetCode:1155. 掷骰子等于目标和的方法数 | 递归->缓存->dp】
    Python 求矩阵的局部极大值
  • 原文地址:https://blog.csdn.net/mutourend/article/details/126261546
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号