美文网首页
关于Nove 系列方案介绍

关于Nove 系列方案介绍

作者: 雪落无留痕 | 来源:发表于2023-09-25 14:47 被阅读0次

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

    • Nova: 对R1CS实现folding
    • Sangria : Nova 方案推广到PLONKish 电路;
    • SuperNova: 广义的Nova;
    • HyperNova: 通过sum-checksCCS (customizable constraint system) 实现folding的方案;
    • ProtoStar: 对于NovaSangria 实现高效广义化。

    递归和聚合

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

    • 证明其它证明的验证

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

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

    • 用生证明聚合

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

    • IVC

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

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

    IVC 可以用在以下方面:

    • 将一个长的证明分解成一系列相似的步骤,有效减少证明者的内存大小;
    • 生成一个简法的证明,证明区块链当前的状态是正确的;
    • F 当作一个或多个延迟函数,和IVC构成 VDF方案 (Verifiable Delay Function).
    • ZK-VM: F 作为VM的一个计算步骤(例如一个OPCODE 码),例如EVM,LLVM, WASM等;
    • zkBridge: F 根据状态验证区块链共识规则。

    但是构建电路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 方案,即:

    • R1CS实例是为: R1CS 程序 A, B, C 和公开输入 (x, u, E), 其中 c 为标量,E为向量,表示噪音参数;
    • 公开输入为: (x_1,c_1, E_1) 和 witness 为 z_1=(x_1, w_1);
    • 公开输入为: (x_2,c_2, E_2) 和 witness 为 z_2=(x_2, w_2);
    • 对于z_1, z_2都满足 (Az)\bigcirc(Bz)=u(Cz) + E.

    Folding的过程为:

    • 使用随机数r, 使得:(1) x=x_1+r*x_2; (2) u=u_1+r*u_2; (3) E=E_1+rT+r^2*E_2, 其中 Tcross-term
    • 计算 z = z_1 + r * z_2 = (x_1 + r*x_2, w_1 + r*w_2) ;
    • 计算 (Az)\bigcirc(Bz);
    • 则满足 (Az)\bigcirc(Bz)=u(Cz) + E

    其中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, 主要如下:

    • 对于witness W=(w_a, w_b, w_c), 添加噪音向量e;
    • 实例公开输入为:X=(x_a, x_b, x_c), 标量 u, 以及承诺comm(w_a), comm(w_b), comm(w_c), comm(e).
    • Relaxed 的门电路方程为:

    SuperNova

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

    参考

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

    相关文章

      网友评论

          本文标题:关于Nove 系列方案介绍

          本文链接:https://www.haomeiwen.com/subject/heqcbdtx.html