SNARK原理示例

news/2023/6/9 20:27:06

1. 引言

前序博客有:

  • SNARK Design
  • Rollup项目的SNARK景观

SNARK方案由 Polynomial IOP ➕多项式承诺方案 组成。

当前的Polynomial IOP主要分为三大类:

  • 1)基于interactive proofs(IPs)的Polynomial IOP:如Hyrax、vSQL、Libra、Virgo等。【PPP无需做FFT运算】
  • 2)基于multi-prover interactive proofs(MIPs)的Polynomial IOP:如Spartan、Brakedown、Xiphos等。【PPP无需做FFT运算】
  • 3)基于constant-round的Polynomial IOP:如Marlin、PlonK、StarkWare的SNARKs等。【PPP需要做FFT运算】

以上方案都是通过增加PPP开销,来减少proof长度以及降低VVV开销。
以上1)2)类,只要其结合的多项式承诺方案也不需要FFT,则PPP无需做FFT运算。

当前的多项式承诺方案主要分为四大类:

  • 1)基于pairing的多项式承诺方案(既不transparent,也不post-quantum)
    • KZG10、PST13、ZGKPP18等。
    • 独特属性有:具有constant sized evaluation proofs。
  • 2)基于discrete logarithm的多项式承诺方案(transparent,但不post-quantum)
    • 如BCCGP16、Bulletproofs、Hyrax、Dory等。【其中Dory即需要discret-log hardness,还需要pairing。】
  • 3)基于IOPs+hashing(transparent 且 post-quantum)
    • 如Ligero、FRI、Brakedown等。
  • 4)基于Groups of unknown order的多项式承诺方案(若使用class groups具有transparent属性,但不是post-quantum的)
    • 如DARK、Dew等。
    • 由于使用class groups,PPP非常慢。

本文将:

  • 1)从“Multi-prover Interactive Proofs”(即基于MIP)的Polynomial IOP 分类中选择一个示例
  • 2)从“IOPs+hashing”的多项式承诺方案 分类中选择一个示例
  • 3)将以上1)2)2个示例组合,展示SNARK的工作原理
  • 4)将以上1)2)2个示例组合,所构成的SNARK具有novel efficiency:
    • 4.1)从文献来看,具有最快的PPP(concretely and asymptotically);
    • 4.2)可基于任意(足够大)的域(即具有field agnosticism(域不可知)属性);
    • 4.3)首个实现见Brakedown [GLSTW21]:
      • 详细见 Alexander Golovnev、Jonathan Lee、Srinath Setty、Justin Thaler和Riad S. Wahby等人2021年论文 Brakedown: Linear-time and post-quantum SNARKs for R1CS)
      • 开源代码见:https://github.com/conroi/lcpc(Rust)
    • 4.4)缺点在于:proof相当大——近期已对其进行了改进,可参看Tiancheng Xie等人2022年论文Orion: Zero Knowledge Proof with Linear Prover Time。【Orion改进了proof size,但是牺牲了field agnosticism(域不可知)属性。
      在这里插入图片描述

2. Polynomial IOP示例

本文的Polynomial IOP示例运行在Arithmetic Circuit Satisfiability上下文中。
所谓Arithmetic Circuit Satisfiability,是指:

  • 已知某 arithmetic circuit CCC over F\mathbb{F}F of size SSS且输出为yyy,判断是否存在某www,使得C(w)=yC(w)=yC(w)=y

w={a1,a2,a3,a4},y=a12+a22+a32+a42w=\{a_1,a_2,a_3,a_4\}, y=a_1^2+a_2^2+a_3^2+a_4^2w={a1,a2,a3,a4}y=a12+a22+a32+a42为例:
在这里插入图片描述
arithmetic circuit CCCtranscript TTT 是指:

  • 对电路中每个gate的赋值

若电路中各个gate的赋值对应有效的witness www,则称TTTcorrect transcript。
在这里插入图片描述
可将transcript看成是 domain为{0,1}log⁡S\{0,1\}^{\log S}{0,1}logSfunction,为CCC中的每个gate赋予 a (log⁡S)−(\log S)-(logS)bit gate label,看将TTT看成是将gate labels映射为FFF的函数:【逐层赋值】
在这里插入图片描述

所谓Polynomial IOP是指:

  • 1)PPP的第一个message为某具有(log⁡S)(\log S)(logS)个变量的多项式hhhPPP声称该多变量多项式hhhextend a correct transcript TTT,即意味着:
    h(x)=T(x),∀x∈{0,1}log⁡Sh(x)=T(x),\forall x\in\{0,1\}^{\log S}h(x)=T(x),x{0,1}logS
    仍以上图为例,相应的多变量多项式hhh为:【可基于Boolean domain,借助multilinear Lagrange interpolation来获得多变量多项式】
    在这里插入图片描述
    该多变量多项式hhh满足:h(0,0,0,0)=3,h(0,0,0,1)=2,h(0,0,1,0)=0,h(0,0,1,1)=0h(0,0,0,0)=3,h(0,0,0,1)=2,h(0,0,1,0)=0,h(0,0,1,1)=0h(0,0,0,0)=3,h(0,0,0,1)=2,h(0,0,1,0)=0,h(0,0,1,1)=0等等。
    注意,hhh不仅适于x∈{0,1}log⁡Sx\in\{0,1\}^{\log S}x{0,1}logS的情况,还适于所有x∈Flog⁡Sx\in \mathbb{F}^{\log S}xFlogS的情况:如,h(2,2,2,2)=−19h(2,2,2,2)=-19h(2,2,2,2)=19
    也就是说,transcript仅基于bit vectors域,而多变量多项式hhh的定义域更大。
  • 2)VVV需要检查PPP声称的h(x)=T(x),∀x∈{0,1}log⁡Sh(x)=T(x),\forall x\in\{0,1\}^{\log S}h(x)=T(x),x{0,1}logS成立,但是,VVV仅能learn a few evaluations of hhh
    为何VVV仅凭少量evaluations of hhh,就可信服PPP的声称呢?原因在于:
    • 2.1)将hhh看成是对transcript TTTdistance-amplified encoding
    • 2.2)TTT的domain为{0,1}log⁡S\{0,1\}^{\log S}{0,1}logShhh的domain为Flog⁡S\mathbb{F}^{\log S}FlogS,要比TTT的大得多。可称hhhTTT的extension polynomial。
      在这里插入图片描述
    • 2.3)根据Schwartz-Zippel:若2个transcript T和T′T和T'TT哪怕仅有一个gate value值不同,二者相应的extension polynomial h和h′h和h'hhFlog⁡S\mathbb{F}^{\log S}FlogS几乎所有的evaluation值都不相同(准确来说,不相同的概率为1−log⁡(S)/∣F∣1-\log (S)/|\mathbb{F}|1log(S)/∣F)。
    • 2.4)这种encoding的distance-amplifying特性,使得,哪怕整个transcript中仅有一个“inconsistency”,VVV也可以发现。

Two-step plan of attack:

  • 1)已知任意的(log⁡S)(\log S)(logS)个变量的多项式hhh,找到相应的具有(3log⁡S)(3\log S)(3logS)个变量的多项式ghg_hgh,使得:

    • hhh extends a correct transcript TTT,当且仅当,对于任意的∀(a,b,c)∈{0,1}3log⁡S\forall(a,b,c)\in\{0,1\}^{3\log S}(a,b,c){0,1}3logS,有gh(a,b,c)=0g_h(a,b,c)=0gh(a,b,c)=0。【即ghg_hgh vanish over the Boolean hypercube,等价为,PPP的原始声称——即“ hhh extends a correct transcript TTT”。】
    • 此外,为evaluate gh(r)g_h(r)gh(r) at any input rrr,足以通过evaluate hhh at only 3 inputs来实现。

    为简化描述,以仅有乘法门的电路为例,可仅关注下述等式右侧的第二项,其输入为3个gate labels a,b,ca,b,ca,b,c,其中mult~(a,b,c)\widetilde{mult}(a,b,c)mult(a,b,c)表示的是gates之间的wiring关系,也称为wiring polynomial。
    在这里插入图片描述

  • 2)为检查 gh(a,b,c)=0,∀(a,b,c)∈{0,1}3log⁡Sg_h(a,b,c)=0,\forall(a,b,c)\in\{0,1\}^{3\log S}gh(a,b,c)=0,(a,b,c){0,1}3logS,设计了一个interactive proof:

    • 其中VVV仅需要evaluate gh(r)g_h(r)gh(r) at one point rrr

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4559254.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

win7系统数据库服务器,win7数据库服务器怎么开启

win7数据库服务器怎么开启 内容精选换一换CDC(Change Data Capture),即数据变更抓取,通过为源端数据源开启CDC,ROMA Connect可实现数据源的实时数据同步以及数据表的物理删除同步。ROMA Connect支持Oracle的XStream和LogMiner两种CDC模式&…

进程概念理解

既然要了解计算机的进程,那么就需要先了解一下计算机的底层结构 目录 冯洛伊曼体系结构 操作系统 系统调用接口 进程 PCB task_struct 内容 操作系统如何组织进程 冯洛伊曼体系结构 想了解计算机的底层结构,那么必定绕不开冯洛伊曼体系结构&…

win7系统iis建立ftp服务器,win7 iis建立ftp服务器

win7 iis建立ftp服务器 内容精选换一换当完成创建外部服务器后,在GaussDB(DWS)数据库中创建一个OBS/HDFS只写外表,用来访问存储在OBS/HDFS上的数据。此外表是只写的,只能用于导出操作。创建外表创建外表的语法格式如下,详细的描述…

1125和855最小公倍数C语言,2016衢州省考行测数量关系送分题:最小公倍数和最大公约数...

二、真题回顾1.如图,街道XYZ在Y处拐弯,XY1125米,YZ855米,在街道一侧等距装路灯,要求X、Y、Z处各装一盏路灯,这条街道最少要安装多少盏路灯?A.47 B.46 C.45 D.44【中公解析】要使X、Y、Z处各装一盏路灯&…

做到这些,再长高10厘米不是梦

标题想长高的盆友就私信我,危害长高的要素有什么?吃的社会学取决于营养均衡,营养成分充足很容易,难的是要确保关键原素的摄取能够 做到是配备。 因此,营养成分篇便是千万不要挑食,提高的关键窍门便是要尤其…

新房装修|厨房台面给我做高了10公分,做饭不方便

真的太想哭了,千算万算,工人竟然把厨房台面做高了,就不知道长点心么!而且还不止一点点,足足有10公分,做饭不方便这可咋整啊,以后可是要一直用下去的啊,急急急!&#xff0…

kicad最小布线宽度默认是多少_常见停车场管理系统项目的安装布线及注意事项...

现在很多现代化的智能停车场系统都广泛应用于各大小型停车场、地下车库、公寓小区进出口、公司单位的大门口等,智能停车场的主要组成部分是:系统由出口控制机、入口控制机、电动道闸机、车辆检测器、地感、通讯转换器、IC读卡器,停车场管理软…

怎么判断30公分?看我的图文传教就清楚了

想当年,我学车的时候也是糊里糊涂啊,练了一天都没练好,30公分到底是什么鬼?而且不仅是科目二要30公分,科目三也要用到30公分!!!所以说,学会判断30公分,是考车…