Mina中的多项式承诺方案

Posted mutourend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mina中的多项式承诺方案相关的知识,希望对你有一定的参考价值。

1. 引言

Mina系列博客有:

2. 多项式 VS 函数

R R R为某域,基于域 R R R变量为 X X X的多项式表示为:
a 0 + a 1 X + a 2 X 2 + ⋯ + a d X d a_0+a_1X+a_2X^2+\\cdots +a_dX^d a0+a1X+a2X2++adXd
其中 a i ∈ R a_i\\in R aiR d d d为任意自然数。

针对基于 R R R的多项式的函数 e v a l : R [ X ] → ( R → R ) \\mathsfeval:R[X]\\rightarrow (R\\rightarrow R) eval:R[X](RR)定义为:【可将 e v a l \\mathsfeval eval看成是对多项式采样。】
e v a l ( a 0 + a 1 X + ⋯ + a d X d ) = ( x : R ) ↦ a 0 + a 1 x + ⋯ + a d x d \\mathsfeval(a_0+a_1X+\\cdots+a_dX^d)=(x:R)\\mapsto a_0+a_1x+\\cdots +a_dx^d eval(a0+a1X++adXd)=(x:R)a0+a1x++adxd
其中 X X X为未赋值的变量名, e v a l \\mathsfeval eval将其映射为field element x x x,整个evaluation函数可看成是系数 < a 0 , a 1 , ⋯   , a d > <a_0,a_1,\\cdots,a_d> <a0,a1,,ad> < 1 , x , ⋯   , x d > <1,x,\\cdots, x^d> <1,x,,xd>的inner product。

注意,多项式与函数是不同的。多项式是一组系数列表,基于某些域值,对于多项式 p 1 , p 2 p1,p2 p1,p2,会存在 e v a l ( p 1 ) = e v a l ( p 2 ) \\mathsfeval(p1)=\\mathsfeval(p2) eval(p1)=eval(p2),但 p 1 ≠ p 2 p1\\neq p2 p1=p2的情况。
如,以 F 2 [ X ] \\mathbbF_2[X] F2[X]为域的多项式 X X X X 2 X^2 X2,二者可映射为相同的函数 F 2 → F 2 \\mathbbF_2\\rightarrow \\mathbbF_2 F2F2(即意味着对 x ∈ R = F 2 = 0 , 1 x\\in R=\\mathbbF_2=\\0,1\\ xR=F2=0,1 x = x 2 x=x^2 x=x2),但是二者是不同的多项式。

使用多项式的原因在于:

  • 1)将关于一组域值的statement 转换为 关于多项式的statement,从而可构建zkSNARKs。
  • 2)基于多项式的特定运算效率更高。

对于函数 φ : A → F \\varphi: A\\rightarrow F φ:AF A A A为数组,长度为 ∣ A ∣ |A| A,需基于 ∀ x ∈ A , ( x , φ ( x ) ) \\forall x\\in A, (x,\\varphi(x)) xA,(x,φ(x))进行插值构建多项式。
对于每一个 x i ∈ A x_i\\in A xiA,可构建多项式:
f i ( X ) = φ ( x i ) X = x i 0 X ≠ x i f_i(X) =\\left\\\\beginmatrix \\varphi(x_i)& X=x_i\\\\ 0 & X\\neq x_i \\endmatrix\\right. fi(X)=φ(xi)0X=xiX=xi
最终的多项式: f ( X ) = ∑ i f i ( X ) f(X)=\\sum_if_i(X) f(X)=ifi(X)

相应的vanishing 多项式表示为:
v S ( X ) = ( X − x 0 ) ( X − x 1 ) ⋯ ( X − x d ) v_S(X)=(X-x_0)(X-x_1)\\cdots(X-x_d) vS(X)=(Xx0)(Xx1)(Xxd)

同时有 i n t e r p A ( e v a l A ( f ) ) = f \\mathsfinterp_A(\\mathsfeval_A(f))=f interpA(evalA(f))=f,即对多项式 f f f基于 A A A采样后,再插值获得的多项式仍然是 f f f。(多项式degree为 d d d,不同的采样点数为 d + 1 d+1 d+1。)【 i n t e r p

以上是关于Mina中的多项式承诺方案的主要内容,如果未能解决你的问题,请参考以下文章

基于FATE的可验证秘密分享算法详解及应用场景分享:学习

多项式承诺Polynomial commitment方案汇总

[2018.6.22集训]admirable-拆系数FFT-多项式相关

Spark 多项式 Logistic 回归中的意外系数

多项式的系数怎么求

在python中模拟二项式系数(nCr)