码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Polygon zkEVM中的子约束系统


    1. 引言

    前序博客有:

    • Polygon zkEVM工具——PIL和CIRCOM
    • PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge 学习笔记
    • PLONK + PLOOKUP
    • PLOOKUP
    • V神博客 Understanding PLONK

    Polygon zkEVM中主要设计了3种子约束系统:

    • 1)Permutation check子约束系统:PIL中的关键字为is。
      在这里插入图片描述
      在这里插入图片描述

    • 2)Plookup 子约束系统:PIL中的关键字为in。
      在这里插入图片描述
      在这里插入图片描述

    • 3)Connection check(Copy constraint)子约束系统:PIL中的关键字为connect。
      在这里插入图片描述
      在这里插入图片描述

    2. Permutation check VS Connection check VS Plookup

    • Plonk的核心技术为:grand product check。
    • Plookup的核心技术为:multiset-equality check,在Plookup中引入了查找表。

    所谓grand product check,是指:

    • public info:commitments to polynomials f , g f,g f,g over a finite field F \mathbb{F} F,及 a subset H = { x 1 , ⋯   , x n } ⊂ F H=\{x_1,\cdots,x_n\}\subset \mathbb{F} H={x1​,⋯,xn​}⊂F
    • private info:多项式 f , g f,g f,g。
    • 待证明relation: ∏ i ∈ [ n ] a i = ∏ i ∈ [ n ] b i \prod_{i\in[n]}a_i=\prod_{i\in[n]}b_i ∏i∈[n]​ai​=∏i∈[n]​bi​,其中 a i = f ( x i ) , b i = g ( x i ) a_i=f(x_i),b_i=g(x_i) ai​=f(xi​),bi​=g(xi​)。

    在PLONK论文中指出,当 H H H为a multiplicative subgroup时,可高效实现相应证明。

    此文讨论的长为 n n n的vector a ⃗ \vec{a} a ,在协议的实际实现中,均为Prover会对多项式 f f f进行commit,其中 f ( x i ) = a i f(x_i)=a_i f(xi​)=ai​。

    PLOOKUP的核心技术为:

    • multiset-equality check

    借助少量的randomness,可将grand product check 转换为更强大的primitive——the multiset equality check:

    • 已知两个vector a ⃗ = ( a 1 , ⋯   , a n ) , b ⃗ = ( b 1 , ⋯   , b n ) \vec{a}=(a_1,\cdots,a_n),\vec{b}=(b_1,\cdots,b_n) a =(a1​,⋯,an​),b =(b1​,⋯,bn​),check两者是否具有相同的元素,计算相应的重复值,顺序可以不对应。

    如 ( 1 , 1 , 2 , 3 ) (1,1,2,3) (1,1,2,3) 与 ( 2 , 1 , 1 , 3 ) (2,1,1,3) (2,1,1,3) 是multiset-equal的,但是与 ( 1 , 2 , 3 , 3 ) (1,2,3,3) (1,2,3,3)或 ( 1 , 1 , 2 , 4 ) (1,1,2,4) (1,1,2,4)都不是 multiset-equal的。

    电路证明中常用到permutation check,用于证明电路中门之间wires赋值的一致性(establishes the consistency of the assignment of wires to gates)。
    Permutation是指:

    • public info:permutation σ : [ n ] → [ n ] \sigma:[n]\rightarrow [n] σ:[n]→[n]
    • private info: a ⃗ , b ⃗ \vec{a},\vec{b} a ,b
    • 待证明relation: b ⃗ = σ ( a ⃗ ) \vec{b}=\sigma(\vec{a}) b =σ(a ),即对于每一个 i i i,有 b i = a σ ( i ) b_i=a_{\sigma(i)} bi​=aσ(i)​。

    2.1 Plookup子约束系统

    根据Plookup论文,相应的Plookup子约束系统证明系统为:
    在这里插入图片描述

    2.2 Permutation check约束子系统

    根据Plonk论文可知,Permutation check约束子系统证明系统为:
    在这里插入图片描述

    2.3 Connection check(Copy constraint)约束子系统

    Permutation check约束子系统 为 Connection check(Copy constraint)约束子系统的特例情况,Connection check(Copy constraint)约束子系统 更具有通用性。

    参考资料

    [1] How PLONK Works: Part 1
    [2] How PLONK Works: Part 2

    附录: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电路转换
  • 相关阅读:
    吃透Spring源码分析专题
    学习日记(单元测试、反射、注解、动态代理)
    MYSQL高可用架构之MHA实战二 安装和配置MHA架构(真实可用)
    AIGC领航,智能AI赋能乡村教育,梦想扬帆远航
    vue3 + ts: layout布局
    nodejs+vue+elementui前台美食网上订餐点菜系统 vscode项目
    解决注册Kaggle出现的“Captcha must be filled out”问题
    创邻科技亮相ISWC 2023,国际舞台见证知识图谱领域研究突破
    部署项目半途而废后续
    adb删除系统应用
  • 原文地址:https://blog.csdn.net/mutourend/article/details/128205837
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号