关于Nove 系列方案介绍

2023-09-25  本文已影响0人  雪落无留痕

目前folding 方案取得了一系列进展,可以实现IVC (Incrementally Verifiable Computation), 主要有以几种方案:

递归和聚合

递归SNARK 允许通过一个SNARK 证明另外SNARK 证明的验证。主要有三方面的应用:

其中内部电路一般比较大,主要生成知道witness的证明,一般证明生成速度比较快,证明比较大。对于外部电路,主要生成知道proof 的证明, 一般证明生成速度比较慢,证明比较小。

需要保证验证电路(外部电路)比statement 电路(内部电路)的尺寸非常小才行。

主要用于zkRollup之中,不必为所有的交易生成一个单一的证明,而是分组生成证明并聚合,直到最后的证明。

IVC 可以将比较长的迭代计算聚合成一个证明,验证最终状态的正确性。

生成电路的证明包含两部分:F(s_{n-1}, w_n)= s_nV(vp, (n-1, s_0, s_{n-1}), \pi_{n-1})=true

IVC 可以用在以下方面:

但是构建电路C 去验证 V(vp, x, \pi) 验证算法, 其中对多项式承诺的估计证明计算代码较高。

ZK-SNARKs的演化过程为:

Nova

Nova 通过对R1CS 进行folding 实现递归。通过Folding, 可以将两个实现压缩成一个,并生成压缩正确性的证明。

对于R1CS程序 A, B, C, 公开输入为x, witness 为w, z=(x, w), 则 (Az)\bigcirc(Bz)=Cz, 其中\bigcirc 是Hardmard 乘积。

为了方便folding, 引入Relaxed R1CS 方案,即:

Folding的过程为:

其中E 是比较大,可以通过对于E进行承诺comm(E)进行优化。

基于Nova 设计的IVC 比基于可信设置的SNARK 计算量减少10倍,比无可信设计的SNARK 计算少100倍。

Sangria

Sangria 是实现Plonk 约束系统的folding 方案。

Plonk 电路为:

Plonk 电路的每一行需要满足如下约束:
(q_L)_ia_i + (q_R)_ib_i+ (q_O)_ic_i+(q_M)_ia_ib_i+(q_C)_i=0
为了方便 folding, 需要对Plonk电路进行 relaxation, 主要如下:

SuperNova

对于Nova, 每个函数F 都是一样的,SuperNova进一步扩展,每一个都是不同的处理函数, 即NIVC(Non-uniform IVC)。

参考

https://taiko.mirror.xyz/tk8LoE-rC2w0MJ4wCWwaJwbq8-Ih8DXnLUf7aJX1FbU

上一篇下一篇

猜你喜欢

热点阅读