RedShift: Transparent SNARKs from List Polynomial Commitments学习笔记

1. 引言

纽约大学Kattis和Matter Labs团队2019年论文《RedShift: Transparent SNARKs from List Polynomial Commitments》,提出了:

  • 名为“List Polynomial Commitment(LPC)”的新的IOP原语,可将现有的需要trusted setup的SNARK方案转换为Transparent SNARK方案。
  • 100万( 2 20 2^{20} 220)gates,80-bit security level情况下,生成证明时间约为1分钟(还是半分钟),proof size约为515KB。

开源代码见:

matter-labs有尝试做Recursive Redshift,不过目前好像未完成:

实际上,本文实现的RedShift证明系统为:(compile PLONK IOP with LPC) + FRI多项式承诺。

在这里插入图片描述
上图源自Vitalik 2019年博客Understanding PLONK

本文,将SNARKs(Succinct Non-interactive ARguments of Knowledge)方案分为:

  • 1)pre-processing SNARKs:
    所谓pre-processing,是指需要trusted setup来生成proving/verification key-pair (pk,vk)(又名SRS(Structured Reference String))。
    如Groth16,采用Kate commitment方案,优点是proof size很小,缺点是需要trusted setup。详细可参看博客 Groth16 学习笔记
  • 2)universal SNARKs:但是proof size会比pre-processing SNARKs大。
    所谓universal,是指无需trusted setup。
    其中, T T T为circuit size, d d d为circuit depth, G G G为circuit width。

不过,在本文中,针对某circuit C C C的satisfiability proof system,所实现RedShift证明系统为”fully succinct“ zk-SNARK方案,具有如下属性:【Bulletproofs不具备verifier succinctness,其验证时间与circuit size(即 ∣ C ∣ |C| C)呈线性关系。】

  • Succinctness:Verifier time为poly-logarithmic in ∣ C ∣ |C| C
  • Prover Efficiency:Proving time为quasi-linear in ∣ C ∣ |C| C
  • Proof Succinctness:Proof size为poly-logarithmic in ∣ C ∣ |C| C
  • Transparent:无需可信设置。
  • Plausibly Quantum Resistant:所基于的安全假设是抗量子的。

1.1 多项式承诺方案

所谓多项式承诺方案(PCS,Polynomial Commitment Schemes),是指可高效验证 f f f在其域内任意点的evaluation值。
透明高效的PCS对应transparent SNARK。
现有的多项式承诺方案:【其中 μ \mu μ为多项式中的变量个数, d d d为多项式degree。】

Eli Ben-Sasson等人2019年论文《DEEP-FRI: Sampling outside the box improves soundness》采用了类似STARK证明系统。在DEEP-FRI协议中,Verifier已知:

  • 所有的setup polynomials
  • 所有的constraints
  • 所有的checked relations

DEEP-FRI的Verifier会直接进行验证。
本文:

1.2 本文贡献

本文的主要贡献为:

  • 1)List Polynomial Commitments(LPC):
    Eli Ben-Sasson等人2018年论文《Fast Reed-Solomon interactive oracle proofs of proximity》和 2019年论文 《DEEP-FRI: Sampling outside the box improves soundness》 中介绍了Fast Reed Solomon IOP of Proximity(FRI IOPP)——为高效proximity testing,可检查某指定函数是否close to any low degree polynomial。该proximity tester可转换为透明PCS,其commitment size为 O ( log ⁡ 2 d ) O(\log ^2 d) O(log2d),其中 d d d为多项式degree。但是,该PCS的soundness error相对较大,需迭代多次以达到指定的security level。从而导致大的proof size以及大的计算负担。其具有large soundness error的主要原因在于low sensitivity of FRI:when the Hamming distance between two different polynomials is smaller than some predefined constant, it is impossible for FRI to efficiently distinguish them。
    而在本文中,扩大了DEEP-FRI中的PCS方案:可对a list of proximate polynomials进行承诺——引入了LPC(List Polynomial Commitment)。
  • 2)使用LPC来编译IOP:借助LPC可将任意polynomial IOP编译为preprocessing zk-SNARK。
  • 3)RedShift=(compile PLONK IOP with LPC) + FRI多项式承诺:借助LPC对Plonk进行实例化,去除了其中的trusted setup,所构建的新的证明系统称为RedShift。
    本文为RedShift证明系统提供了正确性和安全性论证,并做了原型实现和benchmark对比。

100万( 2 20 2^{20} 220)gates,80-bit security level情况下,生成证明时间约为半分钟,proof size约为515KB。

1.3 Transparent zk-SNARKs

现有的Transparent zk-SNARKs方案主要有:

  • Auorora(2018年)和Fractal(2019年),均是为R1CS arithmetization设计的IOP,二者提供的编译框架与本文的等价。Auorora(2018年)和Fractal(2019年)分别需要"holographic lincheck argument"/"IOP of Proximity"来构建IOP for R1CS,而本文借助PLONK IOP可避免该情况。
  • Virgo(2020年)以及Libra(2019年,非transparent)采用类似的方案,但采用的为”基于interactive proofs(IPs)的Polynomial IOP“(详细见Goldwasser等人1998年论文《The knowledge complexity of interactive proof systems》)。【详细可参看博客SNARK Design。】
  • Eli Ben-Sasson等人2018年论文《Fast Reed-Solomon interactive oracle proofs of proximity》和 2019年论文 《DEEP-FRI: Sampling outside the box improves soundness》 中,实现了FRI多项式承诺方案,并设计了ALI-IOP for compilation。本文为在此基础上改进。
  • Halo infinite(2020年)定义了具有加法(additive)同态属性的严格版本的PCS,并与Bulletproof(2018年)做了快速递归证明benchmark。然而,这种additive PCS并不适于FRI,若该要求可适当放松,batch效率将可能更高。在Halo infinite(2020年)第4章的batch evaluation problem,等价为,多变量(multivariate)commitment,而LCS可解决该问题。通过放松PCS的binding属性,LCS可替代Kate commitment 为 transparent multivariate commitment,从而可更generally witness polynomials。
  • Plonky2(2022年)借鉴了以上思想,关注 how two modular modifications to the proof system affect performance by using a smaller field for faster modular operations and implementing a leaner PLONK-derived IOP called turboPLONK。【turboPLONK为派生自PLONK-IOP的IOP。】
    在Plonky2中,针对smaller filed会引起soundness loss的问题,对IOP应用tight parallel repetition theorem可提升soundness,同时,Plonky2中选择了合适的extension field来运行FRI。从而使得Plonky2具有高效的recursive proving time,为大规模的transparent recursive proof computation提供解决方案。

2. 总览

Kate多项式承诺方案中基于的安全假设为: t t t-Strong Diffie Hellman假设,使得任何使用Kate PCS的证明系统均需要trusted setup。
PLONK需要trusted setup的原因仅在于其采用了Kate PCS。

STARK(2019)和 Aurora(2018)中的关键组件为FRI协议。
FRI专注于解决如下proximity problem:

  • Verifier 可oracle access to an evaluation of some function f f f on a fixed domain D ⊂ F D\subset \mathbb{F} DF
  • Prover使Verifier信服,该函数 f f f is close to a polynomial of (predefined) degree d d d

若Verifier query f f f获得所有的 D D D evaluations值,并插值计算出多项式,然后验证该多项式的degree不超过 d d d,则整个过程的complexity为 O ( d ) O(d) O(d)。FRI仅需要a poly-logarithmic number of queries in d d d,相应的FRI PCS直观流程为:【有2个FRI实例】

  • 1)Prover对 f f f commit,提供an oracle to all evaluations of f f f on some predefined domain D D D
  • 2)Prover和Verifier参与FRI for f f f with respect to some degree d d d。若Prover通过验证,则Verifier信服大概率 f f f is close to a polynomial of degree less than d d d
  • 3)Verifier想要获得 f f f i ∉ D i\notin D i/D点的值。
    • Prover发送相应的opening z = f ( i ) z=f(i) z=f(i),然后Prover和Verifier双方开启另一个FRI实例——对应的为某quotient function q ( X ) = ( f ( X ) − z ) / ( X − i ) q(X)=(f(X)-z)/(X-i) q(X)=(f(X)z)/(Xi)的degree小于 d − 1 d-1 d1
    • 注意,此时Verifier具有oracle access to q q q,因其具有oracle access to f f f,且其还知道 i i i z z z
    • 若Prover通过了本FRI实例,则 q ( X ) q(X) q(X)确实对应为某degree小于 d − 1 d-1 d1的多项式函数。
  • 4)根据Bezout理论: h ( t ) = y h(t)=y h(t)=y当且仅当 h ( X ) − y h(X)-y h(X)y可整除 X − t X-t Xt in the ring F [ X ] \mathbb{F}[X] F[X]。因此,这意味着 f ( i ) = z f(i)=z f(i)=z成立。

不过,事实上,以上简化流程仍然不够,因存在以下问题:

  • 1)问题1:FRI具有sensitivity bound:若precise polynomials和functions 足够接近,在某预定义metric(此时为relative Hamming distance)中,则FRI无法区分。
  • 2)问题2:从实现一致性角度,希望以上2个FRI实例基于相同的domain。但是,FRI与degree d d d以及 domain size ∣ D ∣ |D| D是相互关联的,有rate ρ = d / ∣ D ∣ \rho=d/|D| ρ=d/∣D。FRI结构要求rate ρ \rho ρ是“2-adic”的——即形如 2 − R 2^{-R} 2R,其中 R ∈ N R\in \mathbb{N} RN。但是,在不对协议做修改的情况下,相邻的degree d d d d − 1 d-1 d1无法同时满足该要求。

问题1 意味着需可正确处理函数只是非常接近某多项式的情况。现有的承诺方案无法满足该要求。
f f f δ \delta δ-ball around多项式集合 { f 1 ′ , f 2 ′ , ⋯   , f n ′ } \{f_1',f_2',\cdots,f_n'\} {f1,f2,,fn},可称该集合为 δ \delta δ-neighborhood of f f f δ \delta δ-list of f f f,标记为 L δ = L δ ( f ) L_{\delta}=L_{\delta}(f) Lδ=Lδ(f)。其中 δ \delta δ的取值取决于FRI sensitivity。

  • δ \delta δ足够小,则 L δ L_{\delta} Lδ内仅包含一个多项式,可称 δ \delta δ lies in the unique-decoding radius。但是这种情况下,相同的soundness对应更大的proof size。
  • 增大 δ \delta δ可降低proof size,对应 L δ L_{\delta} Lδ的size要大于1。

为解决该问题,考虑relaxed版本的承诺方案——即,不open to 指定的多项式 f f f,改为,open to a polynomial in the δ \delta δ-list L δ L_{\delta} Lδ

  • 当向Prover请求在 i i i点的evaluation值时,Prover返回的为 f ′ ( i ) f'(i) f(i),其中 f ′ ∈ L δ f'\in L_{\delta} fLδ。在后续章节将展示,这种方案足以对holographic IOPs进行compilation。

在PLONK执行过程中,Prover和Verifier需evaluate a set of ‘constraint’(or setup)polynomials c ( X ) c(X) c(X) encoding the constraint system itself。为实现succinctness,Verifier不会自己计算在 i i i点的值 c ( i ) c(i) c(i)。PLONK依赖Kate承诺:

  • c c c的commitment值和 i i i值为输入,Prover和Verifier运行Kate协议。借助Kate承诺的binding属性,Verifier可信服Prover所发送的evaluation值 c ( i ) c(i) c(i)确实是指定多项式 c ( X ) c(X) c(X) i i i点的值。

对其relaxation为:

  • 对整个neighborhood L δ ( c ) L_{\delta}(c) Lδ(c) of c ( X ) c(X) c(X)进行commit,而不是仅对 c ( X ) c(X) c(X)自身进行commit,这会牺牲uniqueness。可对LPC稍作修改实现polynomial evaluation scheme。

本文借助list polynomial commitments和polynomial evaluation schemes,可修改PLONK来实现full transparency,修改后的证明系统称为RedShift,并在IOP model下证明其正确性。而这并未修改PLONK的完备性。

基于FRI的协议不具备Kate承诺的hiding属性,这意味着需要额外的策略来实现zero-knowledge。
PLONK的安全模型为Algebraic Group Model(AGM),RedShift基于FRI——安全模型为IOP model,从而会影响the soundness proof以及the proof of knowledge approaches。

3. 定义

3.1 标记规则

  • F q \mathbb{F}_q Fq表示模为 q q q的素数域。
  • D ⊂ F D\subset \mathbb{F} DF对应为Reed Solomon codes的evaluation domain。
  • f ∣ D f|_D fD表示restriction of function f f f to domain D D D
  • 对于function pair f , g f,g f,g,其对某domain D D D的relative Hamming distance表示为:
    Δ ( f , g ) = ∣ { x ∈ D : f ( x ) ≠ g ( x ) } ∣ ∣ D ∣ \Delta(f,g)=\frac{|\{x\in D: f(x)\neq g(x)\}|}{|D|} Δ(f,g)=D{xD:f(x)=g(x)}

3.2 Reed-Solomon Codes序言

相关定义摘自 Huffman等人2003年论文《Fundamentals of error-correcting codes》:
在这里插入图片描述
JOHSON BOUND定理为:
在这里插入图片描述
与 Eli Ben-Sasson等人2019年论文《DEEP-FRI: Sampling outside the box improves soundness》 类似,对JOHSON BOUND定理进行改进,获得(强)猜想:
在这里插入图片描述
从而可认为,distance parameter δ \delta δ提供了unique decodability。最后,提供the unique decodability of RS codes的standard results:
在这里插入图片描述
Reed-Solomon code V = R S [ F , D , ρ ] V=RS[\mathbb{F},D,\rho] V=RS[F,D,ρ]的解码问题,对应为,找到某codeword u ∈ V u\in V uV, 其与某指定word v ∈ F D v\in \mathbb{F}^D vFD的distance为 δ \delta δ(对应Hamming distance)。现有名为Guruswami-Sudan算法(为标准的polynomial-time解决方案)可解决该问题,其输出包含了 v v v的所有 δ \delta δ-ball codewords。【详细见Guruswami和Sudan1999年论文《Improved decoding of Reed-Solomon and algebraic-geometry codes》】
在这里插入图片描述

3.3 Interactive Oracle Proofs 和 IOPs of Proximity

对某relation R ⊆ S × T \mathcal{R}\subseteq S\times T RS×T,有 ( x , w ) ∈ R (x,w)\in \mathcal{R} (x,w)R,其中 x x x为instance, w w w为witness。

Eli Ben-Sasson等人2016年论文 Interactive oracle proof中,Interactive Oracle Proof(IOP)model为Interactive Proofs和Probabilistically Checkable Proofs的generalization。
以holographic IOP为例,其(preprocessed)序号会通过oracle提供给各参与方。该模式中包含了一个prover/verifier tuple ( P , V ) (P,V) (P,V) of two probabilistic interactive algorithms。交互的round数,表示为 k = r ( x ) k=r(x) k=r(x),可称为系统的round complexity。在single round内,Prover发送消息 a i a_i ai(可能会依赖之前的interaction),Verifier回复 m i m_i mi。Verifier最终输出为accept或reject。可将整个交互表示为 < P ( x , w ) ↔ V ( x ) > <P(x,w)\leftrightarrow V(x)> <P(x,w)V(x)>,其中 V V V的输入为 x ∈ S x\in S xS P P P的输入为 ( x , w ) ∈ S × T (x,w)\in S\times T (x,w)S×T。proof length为Prover发送的消息总长度,可表示为 l ( x ) = ∑ i = 1 k a i l(x)=\sum_{i=1}^{k}a_i l(x)=i=1kai。该协议的query complexity,标记为 q ( x ) q(x) q(x)——为Verifier读取的entries总数。
【PPT:probabilistic polynomial time 】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Interactive Oracle Proof of Proximity (IOPP) 为 r r r-round interactive IOP system,其针对的问题为:

  • 已知某field F \mathbb{F} F,degree d ∈ N d\in \mathbb{N} dN,proximity δ > 0 \delta>0 δ>0和domain D ⊂ F D\subset \mathbb{F} DF
  • Prover已知某函数 f f f
  • Verifier可oracle access f f f的evaluation on domain D D D(即an oracle f ^ ( x ) \hat{f}(x) f^(x) to f ( x ) ∣ D f(x)|_D f(x)D
  • Prover使Verifier信服 f ∣ D f|_D fD为the evaluation of some degree d d d polynomial on domain D D D。即, f ∈ R S [ F , D , ρ = d / ∣ D ∣ ] f\in RS[\mathbb{F},D,\rho=d/|D|] fRS[F,D,ρ=d/∣D]

本文遵循Eli Ben-Sasson等人2018年论文《Fast Reed-Solomon interactive oracle proofs of proximity》中的定义:
在这里插入图片描述
本文后续将以 I O P P ( f 0 , C ) → { 0 , 1 } IOPP(f^0,C)\rightarrow \{0,1\} IOPP(f0,C){0,1}来表示an IOPP protocol IOPP with purported code-word f 0 ∈ C f^0\in C f0C and C C C error-correcting code family。

3.4 Fast Reed-Solomon IOPP

RedShift中采用 Eli Ben-Sasson等人2018年论文《Fast Reed-Solomon interactive oracle proofs of proximity》和 2018年论文《Worst-case to Average Case Reductions for the Distance to a Code》中的FRI:

  • 已知某RS code family R S [ F , D , ρ ] RS[\mathbb{F},D,\rho] RS[F,D,ρ],其中domain ∣ D ∣ = n = 2 k |D|=n=2^k D=n=2k,rate ρ = 2 − R \rho=2^{-R} ρ=2R k , R ∈ N k,R\in \mathbb{N} k,RN。这意味着degree bound d d d 2 k − R 2^{k-R} 2kR
  • r ∈ [ 1 , log ⁡ d = k − R ] r\in [1,\log d=k-R] r[1,logd=kR]为协议的round number
  • 对于每个 η ∈ ( 0 , 1 ] \eta\in (0,1] η(0,1],令 J η : [ 0 , 1 ] → [ 0 , 1 ] J_{\eta}:[0,1]\rightarrow [0,1] Jη:[0,1][0,1]为Johnson function J η ( x ) = 1 − 1 − x ( 1 − η ) J_{\eta}(x)=1-\sqrt{1-x(1-\eta)} Jη(x)=11x(1η)

针对以上参数选择,对于某域 F \mathbb{F} F,FRI具有如下属性:
在这里插入图片描述

4. LPC(List Polynomial Commitment)

常规的承诺方案 ∑ = ( G e n , C o m , O p e n ) \sum=(Gen, Com, Open) =(Gen,Com,Open)具有binding属性,其定义为:
在这里插入图片描述
LPC的主要不同之处在于:

  • LPC展示的是 g ( z ) = y g(z)=y g(z)=y,其中 g g g f f f δ \delta δ-neighborhood。 L δ ( f ) L_{\delta}(f) Lδ(f) δ \delta δ-list of f f f

4.1 LPC Specification

LPC定义为:
在这里插入图片描述

4.2 LPC Instantiation

本文设置public parameters为 p p = ( F , D ) pp=(\mathbb{F},D) pp=(F,D),将 C o m Com Com函数看成是oracle f ∣ D f|_D fD,使得双方可simulate FRI over the coset domain D D D by calculating the values of q ∣ D q|_D qD。因为双方可明确构建interpolation polynomials且可access to f ∣ D f|_D fD。因此,Verifier可使用oracle calls to f ∣ D f|_D fD来simulate q ∣ D q|_D qD,从而可检查 c = C o m ( q ) c=Com(q) c=Com(q)。因此,根据FRI的安全属性可知获得的LPC scheme满足如上定义。具体展示在以下定理中:
在这里插入图片描述

4.3 源自LPC的Polynomial Commitments

以上LPC定义足以处理证明系统中的“witness” polynomials w ( X ) w(X) w(X),因为仅要求存在这样的多项式,而不要求该多项式的唯一性。但是,当处理编码了约束系统自身的“setup” polynomials c ( X ) c(X) c(X)时,需做额外的考量,此时:

  • 需确保Prover所提供的openings确实是多项式 c ( X ) c(X) c(X)自身的evaluations值,而不是某多项式 g ∈ L δ ( c ) g\in L_{\delta}(c) gLδ(c)
  • Verifier可自己evaluate setup polynomial values,但是这不满足succinctness要求,因Verifier自己evaluate需要 O ( d ) O(d) O(d) computations。

不过,本文基于的事实为:

  • 给定某setup polynomial c ( X ) c(X) c(X),Prover和Verifier均可计算其list L δ ( c ) L_{\delta}(c) Lδ(c)

  • 因此,Prover和Verifier均可找到某distinguishing point i i i,使得 c ( i ) ≠ g ( i ) , ∀ g ∈ L δ ( c ) c(i)\neq g(i),\forall g\in L_{\delta}(c) c(i)=g(i),gLδ(c)。寻找某distinguishing point i i i的过程为:

    • fully transparent
    • 每个circuit只需寻找一次,找到符合要求的distinguishing point i i i即可。

    因此,寻找某distinguishing point i i i的过程仅在协议开始时执行一次,可作为offline phase。
    offline phase的主要作用就是:找到符合要求的distinguishing point i i i。这样就可通过LPC来强化所有的evaluations源自特定的多项式 c ( X ) c(X) c(X)。这与PCS提供的通用proof of knowledge等价。这样的预处理与Marlin中的indexer作用类似。

在这里插入图片描述
以上定理依赖一个简单的观察:

  • 若已知某distinguishing point-evaluation pair ( x , f ( x ) ) (x,f(x)) (x,f(x)),使得 f ( x ) ≠ g ( x ) , ∀ g ∈ L δ ∖ { f } f(x)\neq g(x),\forall g\in L_{\delta}\setminus\{f\} f(x)=g(x),gLδ{f},则将 ( x , f ( x ) ) (x,f(x)) (x,f(x))添加到LPC的openings中农,即意味着仅 f f f为a valid witness。
  • 寻找distinguishing point-evaluation pair ( x , f ( x ) ) (x,f(x)) (x,f(x))仅需在LPC scheme setup中执行一次,而需要binding security的每个LPC示例可从proving key中获得 ( x , f ( x ) ) (x,f(x)) (x,f(x))这样的点。

4.3.1 polynomial evaluation scheme P E S PES PES Instantiation

基于不同的list distinguisher choices,本文提供了2种polynomial evaluation scheme P E S PES PES的实例化方案,并对比了不同list ›distinguisher的权衡取舍:

  • 1)List Decodability distinguisher:无soundness error,但time complexity高。
  • 2)Random Sampling distinguisher:选择 μ \mu μ个随机点,借助Schwartz-Zippel lemma,以相对快的速度,具有可接受的soundness error:
    在这里插入图片描述

借助Random Sampling distinguisher + 之前章节构建的LPC scheme,可获得如下定理:
在这里插入图片描述

5. RedShift

RedShift为:(compile PLONK IOP with LPC) + FRI多项式承诺。
RedShift的约束系统沿用了PLONK中的定义,详细参看博客:PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge 学习笔记
在这里插入图片描述

将fan-in two arithmetic circuits of unlimited fan-out with n n n gates and m m m wires 以constraint system的形式来表达。有 n ≤ m ≤ 2 n n\leq m\leq 2n nm2n

constraint system L = ( V , Q ) \mathscr{L}=(\mathcal{V},\mathcal{Q}) L=(V,Q)定义如下:

  • V \mathcal{V} V 的形式为: V = ( a ⃗ , b ⃗ , c ⃗ ) \mathcal{V}=(\vec{a},\vec{b},\vec{c}) V=(a ,b ,c ),其中 a ⃗ , b ⃗ , c ⃗ ∈ [ m ] n \vec{a},\vec{b},\vec{c}\in[m]^n a ,b ,c [m]n,可将 a ⃗ , b ⃗ , c ⃗ \vec{a},\vec{b},\vec{c} a ,b ,c 看成是 L \mathscr{L} L的左侧、右侧和输出序列。【 a ⃗ i , b ⃗ i , c ⃗ i \vec{a}_i, \vec{b}_i,\vec{c}_i a i,b i,c i分别表示第 i i i个gate的左、右、输出wire序号, i i i的取值范围为 0 ∼ n 0\sim n 0n,有 a ⃗ i ∈ [ 0 , m − 1 ] , b ⃗ i ∈ [ 0 , m − 1 ] , , c ⃗ i ∈ [ 0 , m − 1 ] \vec{a}_i\in [0,m-1], \vec{b}_i\in [0,m-1],,\vec{c}_i\in [0,m-1] a i[0,m1],b i[0,m1],,c i[0,m1]。】
  • Q \mathcal{Q} Q 的形式为: Q = ( q ⃗ L , q ⃗ R , q ⃗ O , q ⃗ M , q ⃗ C ) ∈ ( F n ) 5 \mathcal{Q}=(\vec{q}_L,\vec{q}_R,\vec{q}_O,\vec{q}_M,\vec{q}_C)\in(\mathbb{F}^n)^5 Q=(q L,q R,q O,q M,q C)(Fn)5,其中 q ⃗ L , q ⃗ R , q ⃗ O , q ⃗ M , q ⃗ C ∈ F n \vec{q}_L,\vec{q}_R,\vec{q}_O,\vec{q}_M,\vec{q}_C\in\mathbb{F}^n q L,q R,q O,q M,q CFn 可看成是”selector vectors“。【 ( ( q ⃗ L ) i , ( q ⃗ R ) i , ( q ⃗ O ) i , ( q ⃗ M ) i , ( q ⃗ C ) i ) ((\vec{q}_L)_i,(\vec{q}_R)_i,(\vec{q}_O)_i,(\vec{q}_M)_i,(\vec{q}_C)_i) ((q L)i,(q R)i,(q O)i,(q M)i,(q C)i)表示第 i i i个gate的selector赋值。】

x ⃗ ∈ F m \vec{x}\in\mathbb{F}^m x Fm satisfies L \mathscr{L} L 当且仅当 对于每一个 i ∈ [ n ] i\in[n] i[n] 均有:【 x ⃗ \vec{x} x 表示对所有wire的赋值, x ⃗ j \vec{x}_j x j表示对第 j j j个wire的序号, j j j的取值范围为 0 ∼ m 0\sim m 0m(即 a ⃗ i , b ⃗ i , c ⃗ i \vec{a}_i,\vec{b}_i,\vec{c}_i a i,b i,c i)。】
( q ⃗ L ) i ⋅ x ⃗ a ⃗ i + ( q ⃗ R ) i ⋅ x ⃗ b ⃗ i + ( q ⃗ O ) i ⋅ x ⃗ c ⃗ i + ( q ⃗ M ) i ⋅ ( x ⃗ a ⃗ i ⋅ x ⃗ b ⃗ i ) + ( q ⃗ C ) i = 0 (\vec{q}_L)_i\cdot \vec{x}_{\vec{a}_i} +(\vec{q}_R)_i\cdot \vec{x}_{\vec{b}_i}+(\vec{q}_O)_i\cdot \vec{x}_{\vec{c}_i}+(\vec{q}_M)_i\cdot (\vec{x}_{\vec{a}_i}\cdot \vec{x}_{\vec{b}_i})+(\vec{q}_C)_i=0 (q L)ix a i+(q R)ix b i+(q O)ix c i+(q M)i(x a ix b i)+(q C)i=0

定义正整数 l ≤ m l\leq m lm,子集 I ⊂ [ m ] \mathcal{I}\subset [m] I[m] of “public inputs”。
进一步不失一般性地假设 I = { 1 , ⋯   , l } \mathcal{I}=\{1,\cdots,l\} I={1,,l}
定义relation R L \mathcal{R}_{\mathscr{L}} RL为:
the set of pairs ( x ⃗ , w ⃗ ) (\vec{x},\vec{w}) (x ,w ) with x ⃗ ∈ F l , w ∈ F m − l \vec{x}\in\mathbb{F}^l,w\in\mathbb{F}^{m-l} x Fl,wFml,使得 x : = ( x ⃗ , w ⃗ ) \mathbf{x}:=(\vec{x},\vec{w}) x:=(x ,w ) satisfies L \mathscr{L} L。【区分public input和witness。】

for i ∈ [ l ] i\in[l] i[l],当满足如下条件时,可称 L \mathscr{L} L is prepared for l l l public inputs:【即 l l l个public inputs,均为前 l l l个gate的左侧输入。】
a i = i , ( q ⃗ L ) i = 1 , ( q ⃗ M ) i = ( q ⃗ R ) i = ( q ⃗ O ) i = 0 , ( q ⃗ C ) i = 0 a_i=i,(\vec{q}_L)_i=1,(\vec{q}_M)_i=(\vec{q}_R)_i=(\vec{q}_O)_i=0,(\vec{q}_C)_i=0 ai=i,(q L)i=1,(q M)i=(q R)i=(q O)i=0,(q C)i=0

从而可认为给定的约束系统为prepared form。

为将多项式方式表达约束系统,还需要额外的要素:

  • g ∈ F ∗ g\in \mathbb{F}^* gF为order为 n + 1 n+1 n+1的元素, D = < g > ⊆ F ∗ D=<g>\subseteq\mathbb{F}^* D=<g>⊆F为由 g g g生成的cyclic subgroup。 D ∗ = D / { e } D^*=D/\{e\} D=D/{e},其中 e = g 0 e=g^0 e=g0为identity。
  • 对于 i ∈ [ n + 1 ] i\in[n+1] i[n+1] L i ( X ) L_i(X) Li(X) F ≤ n [ X ] \mathbb{F}_{\leq n}[X] Fn[X]的element,有 L i ( g i ) = 1 L_i(g^i)=1 Li(gi)=1 L i ( a ) = 0 , ∀ a ∈ ( D / { g i } ) L_i(a)=0,\forall a\in (D/\{g^i\}) Li(a)=0,a(D/{gi})
    可称 { L i ( X ) } i = 1 n + 1 \{L_i(X)\}_{i=1}^{n+1} {Li(X)}i=1n+1 D D D的Lagrange basis。
  • Z ( X ) = ∏ a ∈ D ∗ ( X − a ) ∈ F ≤ n [ X ] Z(X)=\prod_{a\in D^*}(X-a)\in \mathbb{F}_{\leq n}[X] Z(X)=aD(Xa)Fn[X] D ∗ D^* D的domain polynomial,即zero only on D ∗ D^* D

PLONK论文中的 checking “extended” permutations的目的是:
check a permutation “across” the values of several polynomials。

假设有多个多项式 f 1 , ⋯   , f k ∈ F < n [ X ] f_1,\cdots,f_k\in\mathbb{F}_{<n}[X] f1,,fkF<n[X] 和 permutation σ : [ k n ] → [ k n ] \sigma: [kn]\rightarrow [kn] σ:[kn][kn]

对于 ( g 1 , ⋯   , g k ) ∈ ( F < n [ X ] ) k (g_1,\cdots,g_k)\in(\mathbb{F}_{<n}[X])^k (g1,,gk)(F<n[X])k,当以下条件成立时,可称 ( g 1 , ⋯   , g k ) = σ ( f 1 , ⋯   , f k ) (g_1,\cdots,g_k)=\sigma(f_1,\cdots,f_k) (g1,,gk)=σ(f1,,fk)
定义序列 ( f ( 1 ) , ⋯   , f ( k n ) ) , ( g ( 1 ) , ⋯   , g ( k n ) ) ∈ F k n (f_{(1)},\cdots,f_{(kn)}),(g_{(1)},\cdots,g_{(kn)})\in\mathbb{F}^{kn} (f(1),,f(kn)),(g(1),,g(kn))Fkn 为:
f ( ( j − 1 ) ⋅ n + i ) : = f j ( g i ) , g ( ( j − 1 ) ⋅ n + i ) : = g j ( g i ) f_{((j-1)\cdot n +i)}:= f_j(\mathbf{g}^i),g_{((j-1)\cdot n +i)}:= g_j(\mathbf{g}^i) f((j1)n+i):=fj(gi),g((j1)n+i):=gj(gi)
for each j ∈ [ k ] , i ∈ [ n ] j\in[k], i\in [n] j[k],i[n]。则有 g l = f σ ( l ) g_{l}=f_{\sigma(l)} gl=fσ(l) for each l ∈ [ k n ] l\in[kn] l[kn]

PLONK论文中的 checking “extended copy constraints” using a permutation,对应实际的primitive为:
T = { T 1 , ⋯   , T s } \mathcal{T}=\{T_1,\cdots,T_s\} T={T1,,Ts} 为 a partition of [ k n ] [kn] [kn] into disjoint blocks。

对于特定的 f 1 , ⋯   , f k ∈ F < n [ X ] f_1,\cdots, f_k\in\mathbb{F}_{<n}[X] f1,,fkF<n[X],定义 ( f ( 1 ) , ⋯   , f ( k n ) ) ∈ F k n (f_{(1)},\cdots,f_{(kn)})\in\mathbb{F}^{kn} (f(1),,f(kn))Fkn,若有 f ( l ) = f ( l ′ ) f_{(l)}=f_{(l')} f(l)=f(l) whenever l , l ′ l,l' l,l belong to the same block of T \mathcal{T} T,则可称 f 1 , ⋯   , f k f_1,\cdots,f_k f1,,fk copy-satisfy T \mathcal{T} T

PLONK论文 5.2节的protocol for extended permutations可直接拿来check whether f 1 , ⋯   , f k f_1,\cdots,f_k f1,,fk satisfy T \mathcal{T} T,具体为:
定义a permutation σ ( T ) \sigma(\mathcal{T}) σ(T) on [ k n ] [kn] [kn],使得对于 T \mathcal{T} T中的每一个block T i T_i Ti σ ( T ) \sigma(\mathcal{T}) σ(T) 包含了a cycle going over all elements of T i T_i Ti
则 当且仅当 ( f 1 , ⋯   , f k ) = σ ( f 1 , ⋯   , f k ) (f_1,\cdots,f_k)=\sigma(f_1,\cdots,f_k) (f1,,fk)=σ(f1,,fk),有 ( f 1 , ⋯   , f k ) (f_1,\cdots,f_k) (f1,,fk) copy-satisfy T \mathcal{T} T

具体定义为:
在这里插入图片描述
其中:

  • P I ( X ) \mathbf{PI}(X) PI(X):为public input多项式
  • f L ( X ) , f R ( X ) , f O ( X ) \mathbf{f_L}(X),\mathbf{f_R}(X),\mathbf{f_O}(X) fL(X),fR(X),fO(X):分别为left、right、output Wire Polynomials,对应为Prover的private data。

注意:

  • 以上PLONK约束系统的Definition 13和Definition 16是等价的。
  • f L ( X ) , f R ( X ) , f O ( X ) \mathbf{f_L}(X),\mathbf{f_R}(X),\mathbf{f_O}(X) fL(X),fR(X),fO(X)的degree为 n − 1 n-1 n1,其中 n n n L \mathcal{L} L size。不过为实现zero-knowledge,RedShift中将其degree放松到了某 k > n k>n k>n

5.1 RedShift协议实例化

  • L ′ = ( q L , q R , q O , q M , q C , σ , n ) \mathcal{L}'=(\mathbf{q_L},\mathbf{q_R},\mathbf{q_O},\mathbf{q_M},\mathbf{q_C}, \sigma, n) L=(qL,qR,qO,qM,qC,σ,n)为待证明的约束系统。
  • k 1 , k 2 , k 3 ∈ F ∗ k_1,k_2,k_3\in \mathbb{F}^* k1,k2,k3F F ∗ ∖ D \mathbb{F}^*\setminus D FD中的不同cosets,其中 k 1 = e = g 0 k_1=e=g^0 k1=e=g0为identity。
  • τ \tau τ P 1 = [ 3 n ] P_1=[3n] P1=[3n] P 2 = D ∗ ∪ k 2 D ∗ ∪ k 3 D ∗ P_2=D^*\cup k_2D^* \cup k_3D^* P2=Dk2Dk3D之间的双射,满足:
    τ [ n ⋅ ( j − 1 ) + i ] = k j g i , i ∈ [ n ] , j ∈ [ 3 ] \tau[n\cdot (j-1)+i]=k_jg^i,i\in [n], j\in [3] τ[n(j1)+i]=kjgi,i[n],j[3]
  • σ \sigma σ为permutation on P 1 P_1 P1 σ ′ = τ ∘ σ ∘ τ − 1 \sigma'=\tau\circ\sigma\circ\tau^{-1} σ=τστ1为permutation on P 2 P_2 P2
  • 定义 { S i d i ( X ) } i = 1 3 , { S σ j ( X ) } j = 1 3 \{S_{id_i}(X)\}_{i=1}^3, \{S_{\sigma_j}(X)\}_{j=1}^3 {Sidi(X)}i=13,{Sσj(X)}j=13为degree不超过 n n n的Permutation Polynomials:
    • S i d j ( X ) = k j X , j ∈ [ 3 ] S_{id_j}(X)=k_jX, j\in[3] Sidj(X)=kjX,j[3]:【本质为:分别对所有gate的左侧输入wire、右侧输入wire和output wire 进行编号。如每个gate的左侧输入wire依次编号为 ( k 1 , 2 ⋅ k 1 , ⋯   , n ⋅ k 1 ) (k_1,2\cdot k_1,\cdots,n\cdot k_1) (k1,2k1,,nk1),每个gate的右侧输入wire依次编号为 ( k 2 , 2 ⋅ k 2 , ⋯   , n ⋅ k 2 ) (k_2,2\cdot k_2,\cdots,n\cdot k_2) (k2,2k2,,nk2),每个gate的output wire依次编号为 ( k 3 , 2 ⋅ k 3 , ⋯   , n ⋅ k 3 ) (k_3,2\cdot k_3,\cdots,n\cdot k_3) (k3,2k3,,nk3)。】
    • S σ j ( g i ) = σ ′ ( k j g i ) , i ∈ [ n ] , j ∈ [ 3 ] S_{\sigma_j}(g^i)=\sigma'(k_jg^i),i\in[n],j\in[3] Sσj(gi)=σ(kjgi),i[n],j[3] i i i的取值为0~n-1,对应为gate, j j j的取值对应为左、右、output wire。【本质为:表示的是gate之间的输入、输出连接关系,如某gate的output wire为另一gate的left input wire等。】

通过以上Permutation Polynomials可定义待证明问题的Setup Polynomials,Setup Polynomials由以下多项式组成:【Setup Polynomials应具有unique属性,确保待证明问题不可延展。

  • 1)Selector Polynomials: q L , q R , q O , q M , q C \mathbf{q_L},\mathbf{q_R},\mathbf{q_O},\mathbf{q_M},\mathbf{q_C} qL,qR,qO,qM,qC
  • 2)Permutation Polynomials: { S i d i ( X ) } i = 1 3 , { S σ j ( X ) } j = 1 3 \{S_{id_i}(X)\}_{i=1}^3, \{S_{\sigma_j}(X)\}_{j=1}^3 {Sidi(X)}i=13,{Sσj(X)}j=13
  • 3)Lagrange-basis Polynomials: { L i } i ∈ [ n + 1 ] \{L_i\}_{i\in [n+1]} {Li}i[n+1]

而Witness Polynomials组成为:【Witness Polynomials不要求unique属性。

  • 1)Wire Polynomials: f L , f R , f O \mathbf{f_L},\mathbf{f_R},\mathbf{f_O} fL,fR,fO

Public Input Polynomials表示为:

  • P I ( X ) \mathbf{PI}(X) PI(X)

RedShift协议,在交互层与DEEP-ALI协议类似,只是采用的为PLONK约束系统。
RedShift中:

  • 将distinguisher oracle O D \mathcal{O}^{\mathcal{D}} OD queries 实例化为:indexer algorithm I \mathcal{I} I的evaluations:其接收某low-degree polynomial input f f f,输出 μ \mu μ个不同的points及其evaluations { x i , f ( x i ) } i = 1 μ \{x_i,f(x_i)\}_{i=1}^{\mu} {xi,f(xi)}i=1μ
  • 为实现非交互式,其random sampling distinguisher采用 n c ⋅ μ ⋅ n n_c\cdot \mu\cdot n ncμn次queries(其中 n c n_c nc为Constraint Polynomials数量),并将这些point作为PLONK证明系统IOP 的输入(详细见PLONK论文Section 7)。

为便于模块化,使用 ( ϵ , k ) (\epsilon,k) (ϵ,k)-LPC来模拟 ( ϵ , k , η ) (\epsilon,k,\eta) (ϵ,k,η)-polynomial evaluation scheme P E S = ( D , L P C ) PES=(\mathcal{D},LPC) PES=(D,LPC)——可access to μ \mu μ-dimensional η \eta η-distinguisher D \mathcal{D} D
其思想为,将对某low-degree polynomial的承诺实例,替换为,使用LPC和PES,以满足证明系统的knowledge soundness要求。实际实现采用的是FRI协议,为改进proof size,选择的FRI maximal levels为 δ \delta δ。RedShift中才分了2类多项式,分别具有不同的要求:

  • 1)Setup Polynomials:需满足unique属性,Prover需知道其所commit的具体多项式。
  • 2)Witness Polynomials:无unique要求,仅需要证明存在some low-degree polynomials。

RedShift中,Verifier可访问的为:

  • 1)Public Input Polynomial P I ( X ) \mathbf{PI}(X) PI(X)
  • 2) { S i d i ( X ) } i = 1 3 , { S σ j ( X ) } j = 1 3 , { L i } i ∈ [ n + 1 ] , q L , q R , q O , q M , q C ∈ pp \{S_{id_i}(X)\}_{i=1}^3, \{S_{\sigma_j}(X)\}_{j=1}^3,\{L_i\}_{i\in [n+1]},\mathbf{q_L},\mathbf{q_R},\mathbf{q_O},\mathbf{q_M},\mathbf{q_C}\in\text{pp} {Sidi(X)}i=13,{Sσj(X)}j=13,{Li}i[n+1],qL,qR,qO,qM,qCpp的commitment oracle。

在这里插入图片描述
其中,以上:

  • 第12步可知,由于:
    • Constraint Polynomials:由Selector Polynomials q L , q R , q O , q M , q C \mathbf{q_L},\mathbf{q_R},\mathbf{q_O},\mathbf{q_M},\mathbf{q_C} qL,qR,qO,qM,qC 和 Permutation Polynomials { S i d i ( X ) } i = 1 3 , { S σ j ( X ) } j = 1 3 \{S_{id_i}(X)\}_{i=1}^3, \{S_{\sigma_j}(X)\}_{j=1}^3 {Sidi(X)}i=13,{Sσj(X)}j=13组成,对Verifier已知,调用的是PES进行验证。
    • Witeness Polynomials f L , f R , f O \mathbf{f_L},\mathbf{f_R},\mathbf{f_O} fL,fR,fO 和 中间多项式Grand Product Polynomials P , Q \mathbf{P},\mathbf{Q} P,Q 以及 Quotient多项式 T \mathbf{T} T 为隐私数据,对Verifier是未知的,调用的是LPC进行验证。
  • 整个RedShift的完备性在于:对于honest Prover, { F i } i = 1 6 \{F_i\}_{i=1}^6 {Fi}i=16为identically zero on domain D ∗ D^* D,即意味着所有的 F i ( X ) F_i(X) Fi(X) are divisible by Z ( X ) Z(X) Z(X) in the ring F [ X ] \mathbb{F}[X] F[X],因此其linear combination F ( X ) = ∑ i = 1 6 a i F i ( X ) F(X)=\sum_{i=1}^{6}a_iF_i(X) F(X)=i=16aiFi(X)也可整除 Z ( X ) Z(X) Z(X)
    第8步中: F 1 , F 2 , F 3 , F 4 , F 5 F_1,F_2,F_3,F_4,F_5 F1,F2,F3,F4,F5用于检查Witness Polynomials的copy-satisfiability。
    从而RedShift的完备性 与 PLONK的完备性 等价。
  • S i d j S_{id_j} Sidj:仅需要将 D D D 映射为 不相交集合 P 1 , P 2 , P 3 P_1,P_2,P_3 P1,P2,P3
  • S σ j S_{\sigma_j} Sσj:以“permuted”方式 映射为 相同的集合 P = P 1 ∪ P 2 ∪ P 3 P=P_1\cup P_2\cup P_3 P=P1P2P3。为permutation σ \sigma σ构建了map τ \tau τ来将domain [ n ] [n] [n] 映射为 P P P
    最简单的方式是,定义 S i d k S_{id_{k}} Sidk [ n ] [n] [n] 分别映射为 [ 1 , ⋯   , n ] , [ n + 1 , ⋯   , 2 n ] , [ 2 n + 1 , ⋯   , 3 n ] [1,\cdots,n],[n+1,\cdots,2n],[2n+1,\cdots,3n] [1,,n],[n+1,,2n],[2n+1,,3n]。此时,不需要借助 τ \tau τ来做domain translation( P = [ n ] P=[n] P=[n])。这样做的问题在于,所有的 S i d j S_{id_j} Sidj多项式的degree将为 n n n
    RedShift中构建的 S i d j S_{id_j} Sidj最小degree可为1,使得Verifier在验证时可节约evaluation开销。该优化源自PLONK论文。
  • 第10步中的random evaluation point y y y 取自domain D D D之外,这样可实现Perfect-zero knowledge,而不是statistical-zero knowledge。
  • N N N表示随机取的challenge point数量,RedShift中设置 N = 1 N=1 N=1
  • 受degree上限限制,可能需要将 第9步 中的 T T T切分为不同的多项式 { T 0 , T 1 , T 2 } \{T_0,T_1,T_2\} {T0,T1,T2},然后分别进行commit。
  • RedShift的knowledge soundness为:
    在这里插入图片描述
    使用“CS-proof”技术来将oracles编译为constraint functions,从而将以上IOP实例化为Non-Interactive Random Oracle Proof(NIROP)。
    即假设存在某哈希函数 H : F × F → F \mathcal{H}:\mathbb{F}\times \mathbb{F}\rightarrow \mathbb{F} H:F×FF,构建的 C o m ( f ) Com(f) Com(f)为root c c c of a Merkle tree where the leaves form the evaluations of f f f on D D D。注意,这样会为每个query引入 log ⁡ ∣ D ∣ \log {|D|} logD开销。

6. RedShift系统实例化

在这里插入图片描述

7. RedShift Results

以Proth prime为例, q = r ⋅ 2 192 + 1 q=r\cdot 2^{192}+1 q=r2192+1 r = 576460752303423505 r=576460752303423505 r=576460752303423505,取 ρ = 1 / 16 \rho=1/16 ρ=1/16,构建Merkle tree时采用Blake2s哈希函数:

在Apple MacBook Pro 18.2 with an M1 Max 10-core processor and 64 GB RAM上运行,记录的 proof generation times, verification times and proof sizes 与不同的 predicate sizes 之间的关系为:
在这里插入图片描述

8. 优化及变种

8.1 batch FRI

在这里插入图片描述

8.2 Binary Fields

PLONK仅适于prime fields,因其内嵌的为pairing-friendly椭圆曲线。而Eli Ben-Sasson等人2018年论文《Fast Reed-Solomon interactive oracle proofs of proximity》中提出了基于binary field的FRI协议。
RedShift适于prime fields,也适于binary fields。

8.3 递归

可将RedShift的verification subroutine表示为电路,该电路内主要包含的与少奶奶为Merkle path验证或inclusion proof验证。剩下的算术运算基于的field与原始circuit中定义的域相同,因此,无需cycles over pairing-friendly elliptic curves。

以BL12-381曲线为例,其subgroup order ∣ G ∣ |G| G满足 2 32 ∣ ( ∣ G ∣ − 1 ) 2^{32} | (|G|-1) 232(G1),借助递归,使其inner circuit验证开销更cheaper:
在这里插入图片描述

8.4 不同的证明系统

Sonic和Marlin中采用的为单变量多项式承诺,可将本文的LPC和PES用于Sonic和Marlin等不同的证明系统中。

附录 C FRI batch open

Efficient polynomial commitment schemes for multiple points and polynomials学习笔记 思路类似:
在这里插入图片描述

附录 D FRI Overview

FRI基础知识可参看博客:

附录 F RedShift proof size优化

为降低proof size,可做如下优化:

  • 1)Merge Oracles:将不同类别的多项式合并,可由原来的17个独立的Merkle authentication path,降低为4个,从而可降低proof size,减少验证时间。
    • 1.1)Constraint Polynomials:Selector Polynomials q L , q R , q O , q M , q C \mathbf{q_L},\mathbf{q_R},\mathbf{q_O},\mathbf{q_M},\mathbf{q_C} qL,qR,qO,qM,qC 和 Permutation Polynomials S i d 1 , S σ 1 , S σ 2 , S σ 3 S_{id_1},S_{\sigma_1},S_{\sigma_2},S_{\sigma_3} Sid1,Sσ1,Sσ2,Sσ3,这些多项式相互独立,且在setup时prepared。
    • 1.2)Witness Polynomials: f L , f R , f O \mathbf{f_L},\mathbf{f_R},\mathbf{f_O} fL,fR,fO
    • 1.3)Grand Product Polynomials: P , Q \mathbf{P},\mathbf{Q} P,Q
    • 1.4)Quotient多项式 T \mathbf{T} T中的 T 0 , T 1 , T 2 T_0,T_1,T_2 T0,T1,T2多项式:
      T ( X ) = X 2 n T 2 ( X ) + X n T 1 ( X ) + T 0 T(X)=X^{2n}T_2(X)+X^nT_1(X)+T_0 T(X)=X2nT2(X)+XnT1(X)+T0
  • 2)Bitreversed Domain Element Enumeration as Merkle Tree Leaves:FRI的另一个重要优化是:当将claimed LDE values放入Merkle tree时,使用“bitreverse” enumeration
    。此时,FRI “folding” step中构成coset所需的values总是adjacent的,从而可放入同一leaf内(结合下面的优化策略),共享a single Merkle path per FRI intermediate oracle query step。在本文PoC实现中未采用该优化措施。
  • 3)Concatenating Merkle Tree Leaves:对oracle实例化时,在每棵Merkle tree的leaf中放入更多的values。该优化可为FRI采用更大的“localization parameter”,从而降低intermediate oracles数量。需对“localization parameter”(通常取值为8)进行动态调整,降低该值会使Merkle tree变浅,增大该值会使Merkle path变长。
  • 4)其它优化策略:
    • 对从transcript中获得的challenge values进行处理,以降低所需的FRI query次数。

参考资料

[1] SNARK Design
[2] HyperPlonk——实现zkEVM的一种zk-proof system
[3] REDSHIFT:不需要可信设置的PLONK
[4] Research Summary: REDSHIFT: Transparent SNARKs from List Polynominal Commitment IOPs

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值