SuperNova论文赏析

1. 引言

前序博客有:

卡内基梅隆大学 Abhiram Kothapalli 和 微软研究中心 Srinath Setty 2022年论文《SuperNova: Proving universal machine executions without universal circuits》,为Nova对半结构化电路的扩展版,开源代码见:

本文主要参考:

2. Nova回顾

2.1 IVC计算模型

所谓IVC(Incremental Verifiable Computation)计算模型,是指:

  • 对于(非确定性)函数 F F F 和 statement ( n , z 0 , z n ) (n, z_0, z_n) (n,z0,zn),证明存在 z 0 = z 0 ′ z_0=z_0' z0=z0 z i + 1 ′ ← F ( z i ′ , w i ) z_{i+1}'\leftarrow F(z_i', w_i) zi+1F(zi,wi),使得 z n = z n ′ z_n=z_n' zn=zn
    在这里插入图片描述

IVC(Incremental Verifiable Computation)最早由Valiant在其2008年论文[Val08] Incrementally verifiable computation or proofs of knowledge imply time/space efficiency 中首次提出,其核心思想为:
在这里插入图片描述
IVC的关键在于,随着迭代次数的增加,其proof size并不会增加。具体为:
在这里插入图片描述
不过,其中存在的问题在于:

  • 实际实现时,在电路中验证SNARK proof是昂贵的。

2.2 Nova(本文称为NIVC):为针对单个指令的IVC

从SuperNova的角度来看Nova(本文称为NIVC):

  • Nova为针对单个指令的IVC。
    在这里插入图片描述

Nova通过引入Folding scheme,在 F ′ F' F中不再做任何proof验证工作:
在这里插入图片描述

2.3 Folding Schemes

交互式folding scheme是指Prover P P P和Verifier V V V交互式地将"2个claim ( u 1 , w 1 ) , ( u 2 , w 2 ) ∈ R (u_1,w_1),(u_2,w_2)\in R (u1,w1),(u2,w2)R" reduce为 “1个claim ( u , w ) ∈ R (u,w)\in R (u,w)R”。
Folding scheme需满足如下属性:

  • Completeness完备性:若 u 1 , u 2 u_1,u_2 u1,u2为satisfiable的,则 u u u也是satisfiable的。
  • Knowledge Soundness可靠性:若Prover可输出satisfying w w w,则Prover必然知道satisfying w 1 , w 2 w_1,w_2 w1,w2
  • Efficiency高效性:Verifier “做Folding操作”,必须比, “对某instance做check操作(即验证proof)” ,要便宜很多。

在这里插入图片描述
以上交互式folding scheme可通过Fiat-Shamir Transformation 来实现非交互式folding scheme。
已知某NP的非交互式folding scheme,通过运行folding Verifier, F ′ F' Fverifiably fold u i u_i ui U i U_i Ui:【fold前后的3个instance具有相同的结构和相同的size。
在这里插入图片描述

2.4 针对R1CS约束系统的Folding Scheme

标准R1CS表示为:
在这里插入图片描述
其中:

  • Z = ( W , x , 1 ) Z=(W,x,1) Z=(W,x,1) W W W为witness vector, x x x为public input/output vector。

需在标准R1CS表示的基础之上,额外引入error vector E E E和scalar u u u,从而构建出Relaxed R1CS:
在这里插入图片描述
其中:

  • Z = ( W , x , u ) Z=(W,x,u) Z=(W,x,u) W W W为witness vector, x x x为public input/output vector。
  • u = 1 , E = 0 ⃗ u=1,E=\vec{0} u=1,E=0 ,则为标准R1CS。即可将标准R1CS看成是Relaxed R1CS的特例情况。

然后是结合具有加法同态属性的承诺方案,来实现对Relaxed R1CS的Folding Scheme:【为避免Prover作弊,并 实现Verifier succinctness,需将 ( E , W ) (E,W) (E,W)一起作为witness,并提前在statement中公开其承诺值 ( E ˉ , W ˉ ) (\bar{E},\bar{W}) (Eˉ,Wˉ)。】
在这里插入图片描述

3. SuperNova

3.1 NIVC计算模型

所谓NIVC(Non-uniform IVC)计算模型,是指:

  • 对于(非确定性)指令集 F 1 , ⋯   , F l F_1,\cdots, F_l F1,,Fl、控制函数 φ \varphi φ 和 statement ( n , z 0 , z n ) (n, z_0, z_n) (n,z0,zn),证明存在 z 0 = z 0 ′ z_0=z_0' z0=z0 z i + 1 ′ ← F φ ( z i ′ , w i ) ( z i ′ , w i ) z_{i+1}'\leftarrow F_{\varphi(z_i', w_i)}(z_i', w_i) zi+1Fφ(zi,wi)(zi,wi),使得 z n = z n ′ z_n=z_n' zn=zn
    在这里插入图片描述

以上为SuperNova核心思想,SuperNova为对Nova的扩展,理论上可将SuperNova用于实现虚拟机。在递归过程中,每个step可动态选择所执行的指令,不再需要在每个step实现 所有指令集 的电路,而是,在每个step只需实现 实际用到的指令 的电路。

SuperNova实现了"a la carte(按菜单点菜)" cost profile:

  • pay only for what is executed。

在这里插入图片描述

3.2 SuperNova的Folding Scheme

Nova中要求 fold前后的3个instance(claim)具有相同的结构和相同的size。
而SuperNova中,针对所支持的每个指令,构建了一个Running Claim(又名Running Instance):
在这里插入图片描述
其中:

  • 每个step的running instance集合 { U i , 1 , U i , 2 , ⋯   , U i , l } \{U_{i,1},U_{i,2}, \cdots, U_{i,l}\} {Ui,1,Ui,2,,Ui,l}可 以Merkle tree或multi-set hash等成熟技术来表示,因为实际在每个step仅使用该running instance集合中的一个,实际电路中没必要枚举所有的running instance。
  • p c i pc_i pci为program counter,用于:
    • 决定集合 { U i , 1 , U i , 2 , ⋯   , U i , l } \{U_{i,1},U_{i,2}, \cdots, U_{i,l}\} {Ui,1,Ui,2,,Ui,l} 中哪个running instance参与Fold。
    • 决定用Fold结果 来 更新集合 { U i + 1 , 1 , U i + 1 , 2 , ⋯   , U i + 1 , l } \{U_{i+1,1},U_{i+1,2}, \cdots, U_{i+1,l}\} {Ui+1,1,Ui+1,2,,Ui+1,l} 中哪个running instance。
  • 基于控制函数 φ \varphi φ w i , z i w_i,z_i wi,zi,来决定下一个step的program counter p c i + 1 pc_{i+1} pci+1

4. SuperNova并行化

具体见视频SuperNova and Parallelising Nova,讨论了实际使用SuperNova来实现zkEVM时的一些考量及并行化策略:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Nova系列博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值