Fast amortized Kate proofs

1. 引言

具体见以太坊基金会Feist和khovratovich整理的Fast amortized Kate proofs 文档。

1.1 Setup

g g g 为 a group G \mathbb{G} G element。
[ a ] = a ⋅ g [a] = a\cdot g [a]=ag 为a group element,其中 a a a 为integer。

s s s 为某秘密值,则 a universal setup of degree m m m 包含了 m m m G \mathbb{G} G elements:
[ s ] , [ s 2 ] , … , [ s m ] . [s], [s^2], \ldots, [s^m]. [s],[s2],,[sm].

1.2 Commitment

f ( X ) = ∑ 0 ≤ i ≤ m f i X i f(X) = \sum_{0\leq i \leq m}f_i X^i f(X)=0imfiXi 为 degree为 m m m的多项式,则 commitment C f ∈ G C_f\in \mathbb{G} CfG 定义为:
C f = ∑ 0 ≤ i ≤ m f i [ s i ] , C_f = \sum_{0\leq i \leq m} f_i[s^i], Cf=0imfi[si],
为 an evaluation of f f f at point s s s

1.3 Kate Proof

对于任意的 y y y,都有 f ( X ) − f ( y ) f(X)-f(y) f(X)f(y)可整除 ( X − y ) (X-y) (Xy)。因此,对 f ( y ) = z f(y)=z f(y)=z 的proof定义为:
π [ f ( y ) = z ] = C T , \pi[f(y)=z] = C_T, π[f(y)=z]=CT,
其中 T y ( X ) = f ( X ) − z X − y T_y(X) = \frac{f(X)-z}{X-y} Ty(X)=Xyf(X)z 为 degree为 ( m − 1 ) (m-1) (m1)的多项式。

该proof可由group内的 m m m次scalar multiplication运算来获得。 T y ( X ) = ∑ 0 ≤ i ≤ m − 1 t i X i T_y(X)=\sum_{0\leq i \leq m-1}t_i X^i Ty(X)=0im1tiXi多项式的系数可按如下方式计算,每步有一个scalar multiplication运算:
T y ( X ) = ∑ 0 ≤ i ≤ m − 1 t i X i ; (1) T_y(X) = \sum_{0\leq i \leq m-1}t_i X^i;\tag{1} Ty(X)=0im1tiXi;(1)
t m − 1 = f m ; (2) t_{m-1} = f_m;\tag{2} tm1=fm;(2)
t j = f j + 1 + y ⋅ t j + 1 (3) t_j = f_{j+1}+y\cdot t_{j+1} \tag{3} tj=fj+1+ytj+1(3)

将最后一个等式展开,有:
T y ( X ) = f m X m − 1 + ( f m − 1 + y f m ) X m − 2 + ( f m − 2 + y f m − 1 + y 2 f m ) X m − 3 + + ( f m − 3 + y f m − 2 + y 2 f m − 1 + y 3 ) X m − 4 + ⋯ + ( f 1 + y f 2 + y 2 f 3 + ⋯ + y m − 1 f m ) . (4) \begin{aligned} T_y(X) =f_mX^{m-1} + (f_{m-1}+yf_{m})X^{m-2} + (f_{m-2}+yf_{m-1}+y^2f_m)X^{m-3} +\\+ (f_{m-3}+yf_{m-2}+y^2f_{m-1}+y^3)X^{m-4}+\cdots + (f_{1}+yf_{2}+y^2f_3+\cdots+y^{m-1}f_m). \end{aligned}\tag{4} Ty(X)=fmXm1+(fm1+yfm)Xm2+(fm2+yfm1+y2fm)Xm3++(fm3+yfm2+y2fm1+y3)Xm4++(f1+yf2+y2f3++ym1fm).(4)

2. Multiple proofs

w w w 2 n 2^n 2n-th root of unity。接下来,将为 w , w 2 , w 3 , … , w 2 n = 1 w,w^2,w^3,\ldots, w^{2^n}=1 w,w2,w3,,w2n=1构建Kate proof。

w k w^k wk的Kate proof为:
π [ f ( w k ) = z k ] = C T w k = f m [ s m − 1 ] + ( f m − 1 + w k f m ) [ s m − 2 ] + ( f m − 2 + w k f m − 1 + w 2 k f m ) [ s m − 3 ] + + ( f m − 3 + w k f m − 2 + w 2 k f m − 1 + w 3 k ) [ s m − 4 ] + ⋯ + ( f 1 + w k f 2 + w 2 k f 3 + ⋯ + w ( m − 1 ) k f m ) . (5) \begin{aligned} \pi[f(w^k)=z^k] = C_{T_{w^k}} =f_m[s^{m-1}] + (f_{m-1}+w^kf_{m})[s^{m-2}] + (f_{m-2}+w^kf_{m-1}+w^{2k}f_m)[s^{m-3}] +\\+ (f_{m-3}+w^kf_{m-2}+w^{2k}f_{m-1}+w^{3k})[s^{m-4}]+\cdots + (f_{1}+w^kf_{2}+w^{2k}f_3+\cdots+w^{(m-1)k}f_m). \end{aligned}\tag{5} π[f(wk)=zk]=CTwk=fm[sm1]+(fm1+wkfm)[sm2]+(fm2+wkfm1+w2kfm)[sm3]++(fm3+wkfm2+w2kfm1+w3k)[sm4]++(f1+wkf2+w2kf3++w(m1)kfm).(5)

将以上等式右侧各项进行重组,对于 2 n ≥ m 2^n\geq m 2nm,有:
C T w k = ( f m [ s m − 1 ] + f m − 1 [ s m − 2 ] + f m − 2 [ s m − 3 ] + ⋯ + f 2 [ s ] + f 1 ) + + ( f m [ s m − 2 ] + f m − 1 [ s m − 3 ] + f m − 2 [ s m − 4 ] + ⋯ + f 3 [ s ] + f 2 ) w k + + ( f m [ s m − 3 ] + f m − 1 [ s m − 4 ] + f m − 2 [ s m − 5 ] + ⋯ + f 4 [ s ] + f 3 ) w 2 k + + ( f m [ s m − 4 ] + f m − 1 [ s m − 5 ] + f m − 2 [ s m − 6 ] + ⋯ + f 5 [ s ] + f 4 ) w 3 k + ⋯ + ( f m [ s ] + f m − 1 ) w ( m − 2 ) k + f m w ( m − 1 ) k . (6) \begin{aligned} C_{T_{w^k}} =&\left(f_m[s^{m-1}]+f_{m-1}[s^{m-2}]+f_{m-2}[s^{m-3}]+\cdots + f_2[s]+f_1\right)+\\ &+\left(f_m[s^{m-2}]+f_{m-1}[s^{m-3}]+f_{m-2}[s^{m-4}]+\cdots + f_3[s]+f_2\right)w^k+\\ &+\left(f_m[s^{m-3}]+f_{m-1}[s^{m-4}]+f_{m-2}[s^{m-5}]+\cdots + f_4[s]+f_3\right)w^{2k}+\\ &+\left(f_m[s^{m-4}]+f_{m-1}[s^{m-5}]+f_{m-2}[s^{m-6}]+\cdots + f_5[s]+f_4\right)w^{3k}+\\ &\cdots\\ &+(f_m[s]+f_{m-1})w^{(m-2)k}+f_mw^{(m-1)k}.\tag{6} \end{aligned} CTwk=(fm[sm1]+fm1[sm2]+fm2[sm3]++f2[s]+f1)++(fm[sm2]+fm1[sm3]+fm2[sm4]++f3[s]+f2)wk++(fm[sm3]+fm1[sm4]+fm2[sm5]++f4[s]+f3)w2k++(fm[sm4]+fm1[sm5]+fm2[sm6]++f5[s]+f4)w3k++(fm[s]+fm1)w(m2)k+fmw(m1)k.(6)

对于 1 ≤ i ≤ 2 n 1\leq i \leq 2^n 1i2n,定义:
h i = ( f m [ s m − i ] + f m − 1 [ s m − i − 1 ] + f m − 2 [ s m − i − 2 ] + ⋯ + f i + 1 [ s ] + f i ) h_i = \left(f_m[s^{m-i}]+f_{m-1}[s^{m-i-1}]+f_{m-2}[s^{m-i-2}]+\cdots + f_{i+1}[s]+f_i\right) hi=(fm[smi]+fm1[smi1]+fm2[smi2]++fi+1[s]+fi)
i > m i>m i>m时,有 h i = 0 h_i=0 hi=0

此时,可将 C T w k C_{T_{w^k}} CTwk表示为:
C T w k = h 1 + h 2 w k + h 3 w 2 k + ⋯ + h m w ( m − 1 ) k . C_{T_{w^k}} = h_1 + h_2w^k + h_3w^{2k}+\cdots + h_mw^{(m-1)k}. CTwk=h1+h2wk+h3w2k++hmw(m1)k.

回想下,对于系数 a = [ a 1 , a 2 , … , a 2 n ] \mathbf{a}=[a_1,a_2,\ldots,a_{2^n}] a=[a1,a2,,a2n],经Discrete Fourier Transform转换为点值表示为:
a ^ = [ a 1 ^ , a 2 ^ , … , a 2 n ^ ] \widehat{\mathbf{a}}= [\widehat{a_1},\widehat{a_2},\ldots,\widehat{a_{2^n}}] a =[a1 ,a2 ,,a2n ]
其中:
a k ^ = ∑ i a i w k i \widehat{a_k} = \sum_{i}a_iw^{ki} ak =iaiwki

因此,对于 h = [ h 1 , h 2 , … , h 2 n ] \mathbf{h} = [h_1,h_2,\ldots,h_{2^n}] h=[h1,h2,,h2n] C T w k C_{T_{w^k}} CTwk,可将
C T = [ C T w 1 , C T w 2 , … , C T w 2 n ] \mathbf{C}_T = [C_{T_{w^1}},C_{T_{w^2}},\ldots,C_{T_{w^{2^n}}}] CT=[CTw1,CTw2,,CTw2n]
看成是对 h \mathbf{h} h的点值表示,采用FFT算法,计算cost为 O ( n 2 n ) O(n2^n) O(n2n):【此时要求 m ≤ 2 n m\leq 2^n m2n,若 m > 2 n m>2^n m>2n,向量 h \mathbf{h} h可稍作调整——“wrapping around” the extra ≠ 0 \neq 0 =0 terms,然后也成立。】
C T = D F T ( h ) \mathbf{C}_T = \mathrm{DFT}(\mathbf{h}) CT=DFT(h)

2.1 计算 h \mathbf{h} h

假设 m = O ( 2 n ) m=O(2^n) m=O(2n)
以上等式 ( 6 ) (6) (6)中,若直接计算 h \mathbf{h} h,计算cost为 O ( 2 2 n ) O(2^{2n}) O(22n)

可进一步优化,将 ( h ) \mathbf(h) (h)计算表示为:
[ h 1 h 2 h 3 ⋮ h m − 1 h m ] = [ f m f m − 1 f m − 2 f m − 3 ⋯ f 1 0 f m f m − 1 f m − 2 ⋯ f 2 0 0 f m f m − 1 ⋯ f 3 ⋱ 0 0 0 0 ⋯ f m − 1 0 0 0 0 ⋯ f m ] ⋅ [ [ s m − 1 ] [ s m − 2 ] [ s m − 3 ] ⋮ [ s ] 1 ] \begin{bmatrix} h_1\\ h_2\\ h_3\\ \vdots\\ h_{m-1}\\ h_m \end{bmatrix}= \begin{bmatrix} f_m &f_{m-1}&f_{m-2}&f_{m-3}&\cdots & f_1\\ 0& f_m &f_{m-1}&f_{m-2}&\cdots & f_2\\ 0 & 0& f_m &f_{m-1}&\cdots & f_3\\ &&\ddots&&&\\ 0 & 0& 0 &0&\cdots & f_{m-1}\\ 0 & 0& 0 &0&\cdots & f_m\\ \end{bmatrix}\cdot\begin{bmatrix} [s^{m-1}]\\ [s^{m-2}]\\ [s^{m-3}]\\ \vdots\\ [s]\\ 1 \end{bmatrix} h1h2h3hm1hm=fm0000fm1fm000fm2fm1fm00fm3fm2fm100f1f2f3fm1fm[sm1][sm2][sm3][s]1

其中矩阵
A = [ f m f m − 1 f m − 2 f m − 3 ⋯ f 1 0 f m f m − 1 f m − 2 ⋯ f 2 0 0 f m f m − 1 ⋯ f 3 ⋯ 0 0 0 0 ⋯ f m − 1 0 0 0 0 ⋯ f m ] A = \begin{bmatrix} f_m &f_{m-1}&f_{m-2}&f_{m-3}&\cdots & f_1\\ 0& f_m &f_{m-1}&f_{m-2}&\cdots & f_2\\ 0 & 0& f_m &f_{m-1}&\cdots & f_3\\ &&\cdots&&&\\ 0 & 0& 0 &0&\cdots & f_{m-1}\\ 0 & 0& 0 &0&\cdots & f_m\\ \end{bmatrix} A=fm0000fm1fm000fm2fm1fm00fm3fm2fm100f1f2f3fm1fm
为Toeplitz矩阵。根据 http://www.netlib.org/utk/people/JackDongarra/etemplates/node384.html 中的FFT算法可知,向量 与 m × m m\times m m×m Toeplitz矩阵 相乘 的cost为 O ( m log ⁡ m ) O(m\log m) O(mlogm)

因此,根据 S R S SRS SRS来计算 h \mathbf{h} h,然后计算所有 2 n 2^n 2n个Kate proof(即 C T \mathbf{C}_T CT),仅需要 O ( n 2 n ) O(n2^n) O(n2n)次scalar multiplication。

3. Multi-reveal

ψ ∈ F p \psi\in\mathbb{F}_p ψFp ℓ \ell -th root of unity,有 ψ ℓ = 1 \psi^{\ell}=1 ψ=1

针对的场景为:
想reveal多个polynomial evaluations f ( y ) = z 0 f(y) = z_0 f(y)=z0, f ( ψ y ) = z 1 f(\psi y) = z_1 f(ψy)=z1, … \ldots , f ( ψ ℓ − 1 y ) = z ℓ − 1 f(\psi^{\ell-1} y)=z_{\ell - 1} f(ψ1y)=z1

注意有:
( x − y ) ⋅ ( x − ψ y ) ⋯ ( x − ψ ℓ − 1 y ) = x ℓ − y ℓ (x-y)\cdot(x-\psi y) \cdots (x - \psi^{\ell-1} y) = x^\ell - y^\ell (xy)(xψy)(xψ1y)=xy

因此,相应的proof为计算多项式:
g ( x ) = f ( x ) / / ( x ℓ − y ℓ ) g(x) = f(x) // (x^\ell - y^\ell) g(x)=f(x)//(xy)
其中 / / // // 表示the truncated long division,然后计算proof:
π [ f ( y ) = z 0 , … , f ( ψ ℓ − 1 y ) = z ℓ − 1 ] = [ g ( s ) ] \pi[f(y) = z_0, \ldots, f(\psi^{\ell-1}y)=z_{\ell - 1}] = [g(s)] π[f(y)=z0,,f(ψ1y)=z1]=[g(s)]

根据现有值 插值 可获得 checking polynomial h ( x ) = f ( x ) m o d    ( x ℓ − y ℓ ) h(x)=f(x)\mod (x^\ell-y^\ell) h(x)=f(x)mod(xy),然后验证如下方程式成立即可:
e ( C f , ⋅ ) = e ( π [ f ( y ) = z 0 , … , f ( ψ ℓ − 1 y ) = z ℓ − 1 ] , [ s ℓ − y ℓ ] ) e ( h ( s ) , ⋅ ) e(C_f, \cdot) = e(\pi[f(y) = z_0, \ldots, f(\psi^{\ell-1}y)=z_{\ell - 1}], [s^\ell - y^\ell]) e(h(s),\cdot) e(Cf,)=e(π[f(y)=z0,,f(ψ1y)=z1],[sy])e(h(s),)

3.1 Multiple multi-reveals——奇数 ℓ \ell

将第节的multiproof进一步归纳为multiple multi-reveals。

w w w 2 n 2^n 2n-th root of unity,需计算proofs:
π [ f ( 1 ) , … , f ( ψ ℓ − 1 ) ] = C T w 0 , ℓ π [ f ( w ) , … , f ( w ψ ℓ − 1 ) ] = C T w 1 , ℓ ⋮ π [ f ( w 2 n − 1 ) , … , f ( w 2 n − 1 ψ ℓ − 1 ) ] = C T w 2 n − 1 , ℓ \begin{aligned} \pi[f(1), \ldots, f(\psi^{\ell-1})] &=& C_{T_{w^0, \ell}} \\ \pi[f(w), \ldots, f(w\psi^{\ell-1})] &=& C_{T_{w^1, \ell}} \\ &\vdots& \\ \pi[f(w^{2^n-1}), \ldots, f(w^{2^n-1}\psi^{\ell-1})] &=& C_{T_{w^{2^n-1}, \ell}} \end{aligned} π[f(1),,f(ψ1)]π[f(w),,f(wψ1)]π[f(w2n1),,f(w2n1ψ1)]===CTw0,CTw1,CTw2n1,

w k w^k wk的proof为:
π [ f ( w k ) , … , f ( w k ψ ℓ − 1 ) ] = C T w k , ℓ = f m [ s m − ℓ ] + f m − 1 [ s m − ℓ − 1 ] + ⋯ + f m − ℓ + 1 [ s m − 2 ℓ + 1 ] + + ( f m − ℓ + w k ℓ f m ) [ s m − 2 ℓ ] + ( f m − ℓ − 1 + w k ℓ f m − 1 ) [ s m − 2 ℓ − 1 ] + ⋯ + ( f m − 2 ℓ + 1 + w k ℓ f m − ℓ + 1 ) [ s m − 3 ℓ + 1 ] + + ( f m − 2 ℓ + w k ℓ f m − ℓ + w 2 k ℓ f m ) [ s m − 3 ℓ ] + ( f m − 2 ℓ − 1 + w k ℓ f m − ℓ − 1 + w 2 k ℓ f m − 1 ) [ s m − 3 ℓ − 1 ] + ⋯ + ( f m − 3 ℓ + 1 + w k ℓ f m − 2 ℓ + 1 + w 2 k ℓ f m − ℓ + 1 ) [ s m − 4 ℓ + 1 ] + ⋮ \begin{aligned} \pi[f(w^k), \ldots, f(w^k\psi^{\ell-1})] = C_{T_{w^k,\ell}} =f_m[s^{m-\ell}] + f_{m-1}[s^{m-\ell - 1}] + \dots + f_{m-\ell+1}[s^{m-2\ell+1}] +\\+ (f_{m-\ell}+w^{k\ell}f_{m})[s^{m-2\ell}] + (f_{m-\ell-1}+w^{k\ell}f_{m-1})[s^{m-2\ell-1}] + \cdots + (f_{m-2\ell+1}+w^{k\ell}f_{m-\ell+1})[s^{m-3\ell+1}] +\\+ (f_{m-2\ell}+w^{k\ell}f_{m-\ell} +w^{2k\ell}f_{m})[s^{m-3\ell}] + (f_{m-2\ell-1}+w^{k\ell}f_{m-\ell-1} + w^{2k\ell}f_{m-1})[s^{m-3\ell-1}] + \\ \cdots + (f_{m-3\ell+1}+w^{k\ell}f_{m-2\ell+1}+w^{2k\ell}f_{m-\ell+1})[s^{m-4\ell+1}] +\\ \vdots \\ \end{aligned} π[f(wk),,f(wkψ1)]=CTwk,=fm[sm]+fm1[sm1]++fm+1[sm2+1]++(fm+wkfm)[sm2]+(fm1+wkfm1)[sm21]++(fm2+1+wkfm+1)[sm3+1]++(fm2+wkfm+w2kfm)[sm3]+(fm21+wkfm1+w2kfm1)[sm31]++(fm3+1+wkfm2+1+w2kfm+1)[sm4+1]+

2 n ≥ m 2^n\geq m 2nm,对以上等式右侧各项重组,有:
C T w k , ℓ = ( f m [ s m − ℓ ] + f m − 1 [ s m − ℓ − 1 ] + f m − 2 [ s m − ℓ − 2 ] + ⋯ + f ℓ + 1 [ s ] + f ℓ ) + + ( f m [ s m − 2 ℓ ] + f m − 1 [ s m − 2 ℓ − 1 ] + f m − 2 [ s m − 2 ℓ − 2 ] + ⋯ + f 2 ℓ + 1 [ s ] + f 2 ℓ ) w k ℓ + + ( f m [ s m − 3 ℓ ] + f m − 1 [ s m − 3 ℓ − 1 ] + f m − 2 [ s m − 3 ℓ − 2 ] + ⋯ + f 3 ℓ + 1 [ s ] + f 3 ℓ ) w 2 k ℓ + + ( f m [ s m − 4 ℓ ] + f m − 1 [ s m − 4 ℓ − 1 ] + f m − 2 [ s m − 4 ℓ − 2 ] + ⋯ + f 4 ℓ + 1 [ s ] + f 4 ℓ ) w 3 k ℓ + ⋮ ( ⋯   ) w ⌊ m / ℓ ⌋ k ℓ \begin{aligned} C_{T_{w^k,\ell}} =&\left(f_m[s^{m-\ell}]+f_{m-1}[s^{m-\ell -1}]+f_{m-2}[s^{m-\ell-2}]+\cdots + f_{\ell+1}[s]+f_\ell\right)+\\ &+\left(f_m[s^{m-2\ell}]+f_{m-1}[s^{m-2\ell-1}]+f_{m-2}[s^{m-2\ell-2}]+\cdots + f_{2\ell+1}[s]+f_{2\ell}\right)w^{k\ell}+\\ &+\left(f_m[s^{m-3\ell}]+f_{m-1}[s^{m-3\ell-1}]+f_{m-2}[s^{m-3\ell-2}]+\cdots + f_{3\ell+1}[s]+f_{3\ell}\right)w^{2k\ell}+\\ &+\left(f_m[s^{m-4\ell}]+f_{m-1}[s^{m-4\ell-1}]+f_{m-2}[s^{m-4\ell-2}]+\cdots + f_{4\ell+1}[s]+f_{4\ell}\right)w^{3k\ell}+\\ &\vdots \\ & (\cdots) w^{\lfloor m / \ell\rfloor k\ell} \end{aligned} CTwk,=(fm[sm]+fm1[sm1]+fm2[sm2]++f+1[s]+f)++(fm[sm2]+fm1[sm21]+fm2[sm22]++f2+1[s]+f2)wk++(fm[sm3]+fm1[sm31]+fm2[sm32]++f3+1[s]+f3)w2k++(fm[sm4]+fm1[sm41]+fm2[sm42]++f4+1[s]+f4)w3k+()wm/k
对于 i ≥ 1 i\geq 1 i1,有:【当 i > m i>m i>m,有 h i = 0 h_i=0 hi=0。】
h i = ( f m [ s m − i ] + f m − 1 [ s m − i − 1 ] + f m − 2 [ s m − i − 2 ] + ⋯ + f i + 1 [ s ] + f i ) . h_i = \left(f_m[s^{m-i}]+f_{m-1}[s^{m-i-1}]+f_{m-2}[s^{m-i-2}]+\cdots + f_{i+1}[s]+f_i\right). hi=(fm[smi]+fm1[smi1]+fm2[smi2]++fi+1[s]+fi).
从而有:
C T w k , ℓ = h ℓ + h 2 ℓ w k ℓ + h 3 ℓ w 2 k ℓ + ⋯ + h m ℓ w ( m − 1 ) k ℓ (28) C_{T_{w^k,\ell}} = h_\ell + h_{2\ell}w^{k\ell} + h_{3\ell}w^{2k\ell}+\cdots + h_{m\ell}w^{(m-1)k\ell} \tag{28} CTwk,=h+h2wk+h3w2k++hmw(m1)k(28)

令:
C T ℓ = [ C T w , ℓ , C T w 2 , ℓ , … , C T w 2 n , ℓ ] \mathbf{C}_{T_\ell} = [C_{T_{w, \ell}},C_{T_{w^{2}, \ell}},\ldots,C_{T_{w^{2^n}, \ell}}] CT=[CTw,,CTw2,,,CTw2n,]
以及
h ℓ = [ h ℓ , 0 h ℓ + 1 , … , 0 h 2 ℓ − 1 , h 2 ℓ , 0 h 2 ℓ + 1 , … , 0 h 3 ℓ − 1 , h 3 ℓ + 1 , 0 h 3 ℓ + 1 , … , 0 h 2 n + ℓ − 1 ] . \mathbf{h_\ell} = [h_\ell,0h_{\ell+1},\ldots,0h_{2\ell-1},h_{2\ell},0h_{2\ell+1},\ldots,0h_{3\ell-1},h_{3\ell+1},0h_{3\ell+1},\ldots,0h_{2^n+\ell-1}]. h=[h,0h+1,,0h21,h2,0h2+1,,0h31,h3+1,0h3+1,,0h2n+1].

根据 h ℓ \mathbf{h_{\ell}} h,采用FFT算法,计算 C T ℓ \mathbf{C}_{T_{\ell}} CT的计算cost为 O ( n 2 n ) O(n2^n) O(n2n)
C T ℓ = D F T ( h ℓ ) \mathbf{C}_{T_\ell} = \mathrm{DFT}(\mathbf{h_\ell}) CT=DFT(h)

3.1.1 计算 h ℓ \mathbf{h_\ell} h

对2.1节算法稍作调整,即可用于计算 h ℓ \mathbf{h_\ell} h

首先定义:
h ℓ , i ℓ , j = f m − j [ s m − i ℓ − j ] + f m − ℓ − j [ s m − ( i + 1 ) ℓ − j ] + f m − 2 ℓ − j [ s m − ( i + 2 ) ℓ − j ] + ⋯ + f ( m − j ) % ℓ + ( i + 1 ) ℓ [ s ( m − j ) % ℓ + ℓ ] + f ( m − j ) % ℓ + i ℓ [ s ( m − j ) % ℓ ] . \begin{aligned} \mathbf{h}_{\ell, i\ell, j} = f_{m-j}[s^{m-i\ell-j}] + f_{m-\ell-j}[s^{m-(i+1)\ell-j}] + f_{m-2\ell-j}[s^{m-(i+2)\ell-j}] + \cdots\\ + f_{(m - j) \% \ell + (i+1)\ell}[s^{(m-j)\% \ell + \ell}] + f_{(m - j) \% \ell + i\ell}[s^{(m-j)\% \ell}]. \end{aligned} h,i,j=fmj[smij]+fmj[sm(i+1)j]+fm2j[sm(i+2)j]++f(mj)%+(i+1)[s(mj)%+]+f(mj)%+i[s(mj)%].
有:
h i ℓ = ∑ j = 0 ℓ − 1 h ℓ , i ℓ , j \mathbf{h}_{i\ell} = \sum_{j=0}^{\ell-1}\mathbf{h}_{\ell, i\ell, j} hi=j=01h,i,j

h ℓ , i ℓ , j \mathbf{h}_{\ell, i\ell, j} h,i,j可根据 ℓ \ell Toeplitz matrix multiplication计算:
[ h ℓ , 1 ℓ , j h ℓ , 2 ℓ , j h ℓ , 3 ℓ , j ⋮ h ℓ , ( ⌊ m − j ℓ ⌋ − 1 ) ℓ , j h ℓ , ⌊ m − j ℓ ⌋ ℓ , j ] = [ f m − j f m − 1 ℓ − j f m − 2 ℓ − j f m − 3 ℓ − j ⋯ f ( m − j ) % ℓ + ℓ 0 f m − j f m − 1 ℓ − j f m − 2 ℓ − j ⋯ f ( m − j ) % ℓ + 2 ℓ 0 0 f m − j f m − 1 ℓ − j ⋯ f ( m − j ) % ℓ + 3 ℓ ⋱ 0 0 0 0 ⋯ f m − ℓ − j 0 0 0 0 ⋯ f m − j ] ⋅ [ [ s m − 1 ℓ − j ] [ s m − 2 ℓ − j ] [ s m − 3 ℓ − j ] ⋮ [ s ( m − j ) % ℓ + ℓ ] [ s ( m − j ) % ℓ ] ] \begin{bmatrix} h_{\ell,1\ell,j}\\ h_{\ell,2\ell,j}\\ h_{\ell,3\ell,j}\\ \vdots\\ h_{\ell,(\lfloor \frac{m-j}{\ell}\rfloor-1)\ell,j}\\ h_{\ell,\lfloor \frac{m-j}{\ell}\rfloor\ell,j} \end{bmatrix}= \begin{bmatrix} f_{m-j} &f_{m-1\ell-j}&f_{m-2\ell-j}&f_{m-3\ell-j}&\cdots & f_{(m - j) \% \ell + \ell}\\ 0& f_{m-j} &f_{m-1\ell-j}&f_{m-2\ell-j}&\cdots & f_{(m - j) \% \ell + 2\ell}\\ 0 & 0& f_{m-j} &f_{m-1\ell-j}&\cdots & f_{(m - j) \% \ell + 3\ell}\\ &&&&\ddots&\\ 0 & 0& 0 &0&\cdots & f_{m-\ell-j}\\ 0 & 0& 0 &0&\cdots & f_{m-j}\\ \end{bmatrix}\cdot\begin{bmatrix} [s^{m-1\ell-j}]\\ [s^{m-2\ell-j}]\\ [s^{m-3\ell-j}]\\ \vdots\\ [s^{(m-j)\% \ell + \ell}]\\ [s^{(m-j)\% \ell}] \end{bmatrix} h,1,jh,2,jh,3,jh,(mj1),jh,mj,j=fmj0000fm1jfmj000fm2jfm1jfmj00fm3jfm2jfm1j00f(mj)%+f(mj)%+2f(mj)%+3fmjfmj[sm1j][sm2j][sm3j][s(mj)%+][s(mj)%]

与2.1节类似,可采用FFT算法来计算。向量 与 Toeplitz矩阵 乘法与多项式系数无关,因此该FFT可提前预计算,在预计算中处理 ℓ \ell Fourier transforms of size 2 m / ℓ 2m/\ell 2m/。但是,the output of the multiplication can be added before transforming back,因此仅需要一次IFT of size 2 m / ℓ 2m/\ell 2m/

3.2 Multiple multi-reveals—— ℓ \ell 为power of two

ℓ = 2 r < 2 n \ell=2^r<2^n =2r<2n,定义 ψ = w 2 n − r \psi=w^{2^{n-r}} ψ=w2nr

针对的场景为,计算proofs:
π [ f ( 1 ) , … , f ( ψ ℓ − 1 ) ] = C T w 0 , ℓ π [ f ( w ) , … , f ( w ψ ℓ − 1 ) ] = C T w 1 , ℓ ⋮ π [ f ( w 2 n − r − 1 ) , … , f ( w 2 n − r − 1 ψ ℓ − 1 ) ] = C T w 2 n − r − 1 , ℓ . \begin{aligned} \pi[f(1), \ldots, f(\psi^{\ell-1})] &=& C_{T_{w^0, \ell}} \\ \pi[f(w), \ldots, f(w\psi^{\ell-1})] &=& C_{T_{w^1, \ell}} \\ &\vdots& \\ \pi[f(w^{2^{n-r}-1}), \ldots, f(w^{2^{n-r}-1}\psi^{\ell-1})] &=& C_{T_{w^{2^{n-r}-1}, \ell}} \text{.} \end{aligned} π[f(1),,f(ψ1)]π[f(w),,f(wψ1)]π[f(w2nr1),,f(w2nr1ψ1)]===CTw0,CTw1,CTw2nr1,.

因为已覆盖了,此时无需再证明 w 2 n − r w^{2^{n-r}} w2nr w 2 n − 1 w^{2^{n}-1} w2n1

类似等式(28),此时有:
C T w k , ℓ = h ℓ + h 2 ℓ w k ℓ + h 3 ℓ w 2 k ℓ + ⋯ + h m ℓ w ( m − 1 ) k ℓ C_{T_{w^k,\ell}} = h_\ell + h_{2\ell}w^{k\ell} + h_{3\ell}w^{2k\ell}+\cdots + h_{m\ell}w^{(m-1)k\ell} CTwk,=h+h2wk+h3w2k++hmw(m1)k

定义 φ = w ℓ \varphi=w^\ell φ=w ,有:
C T w k , ℓ = h ℓ + h 2 ℓ φ k + h 3 ℓ φ 2 k + ⋯ + h m ℓ φ ( m − 1 ) k C_{T_{w^k,\ell}} = h_\ell + h_{2\ell}\varphi^{k} + h_{3\ell}\varphi^{2k}+\cdots + h_{m\ell}\varphi^{(m-1)k} CTwk,=h+h2φk+h3φ2k++hmφ(m1)k

定义:
C T ℓ = [ C T w , C T w 2 , … , C T w 2 n − r ] \mathbf{C}_{T_\ell} = [C_{T_{w}},C_{T_{w^{2}}},\ldots,C_{T_{w^{2^{n-r}}}}] CT=[CTw,CTw2,,CTw2nr]
以及
h ℓ ′ = [ h ℓ , h 2 ℓ , … , h ( 2 n − r − 1 ) ℓ ] , \mathbf{h'_\ell} = [h_\ell, h_{2\ell},\ldots,h_{(2^{n-r}-1)\ell}], h=[h,h2,,h(2nr1)],

则,已知 h ℓ ′ \mathbf{h'_\ell} h,采用FFT算法计算 C T ℓ \mathbf{C}_{T_\ell} CT的cost为 O ( ( n − r ) 2 n − r ) O((n-r)2^{n-r}) O((nr)2nr):【向量 h ℓ ′ \mathbf{h'_\ell} h可采用类似3.1.1节的方法来计算】
C T ℓ = D F T φ ( h ℓ ) \mathbf{C}_{T_\ell} = \mathrm{DFT}_\varphi(\mathbf{h_\ell}) CT=DFTφ(h)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值