基于circle group的Reed-Solomon codes

1. 引言

Polygon团队Ulrich Hab¨ock等人2023年论文 Reed-Solomon codes over the circle group。

前序博客有:

  • Plonky3 Mersenne素数域的Reed-Solomon codes设计

STARKs支持任意size的域,而不要求是椭圆曲线。STARKs中在选择域size时,越小越好,原因在于:

  • 更紧凑的trace表示。越紧凑,相应的FFT运算约cheap。
  • 大多数prover not in the extension field:
    • commit:FFT运算和hash运算为commit的主要开销。Prover的大部分开销在于commit。
    • evaluating constraints:FFT运算为evaluate的主要开销。

STARKs需要更小的域,当前有:

  • Plonky2(2021):Goldilocks域: p = 2 64 − 2 32 + 1 p=2^{64}-2^{32}+1 p=264232+1【64bit素数域】
  • RISC Zero(2021):Babybear域: p = 2 31 − 2 17 + 1 p=2^{31}-2^{17}+1 p=231217+1【31bit素数域】
  • Plonky3(2023):约31bit素数域——Mersenne M31域: p = 2 31 − 1 p=2^{31}-1 p=2311【31bit素数域】

寻找Mersenne域的目的是:

  • 相比于Babybear域,具有更快的运算(针对标准CPU架构,如:ARM,x86)
  • STARK友好(即FFT友好)

2. Mersenne M31域

Mersenne M31域: p = 2 31 − 1 p=2^{31}-1 p=2311【31bit素数域】

  • 其优点在于:具有非常快的运算。【乘法运算比Babybear快约30%到50%。】
    在这里插入图片描述
  • 其缺点在于:不是FFT友好的。因 p − 1 = 2 31 − 2 = 2 ⋅ ( 2 30 − 1 ) p-1=2^{31}-2=2\cdot(2^{30}-1) p1=2312=2(2301),其仅具有two-adic roots: ± 1 \pm 1 ±1

可能的应对策略有:

  • 1)non-twoadic FFT:不够快。
    基于circle group的Reed-Solomon codes_第1张图片
  • 2)像Brakedown中的Expander codes:huge proof sizes,not faster。
  • 3)基于椭圆曲线的Algebraic Geometry(AG) codes,如ECFFT:advanced math。
  • 4)基于M31域,可使用更简单的Mersenne FFT。

3. 何为Mersenne FFT?

M31域的complex extension表示为:
M 3 1 C = M 31 [ i ] / ( i 2 + 1 ) = { x + i ⋅ y : x , y ∈ M 31 } M31_{\mathbb{C}}=M31[i]/(i^2+1)=\{x+i\cdot y:x,y\in M31\} M31C=M31[i]/(i2+1)={x+iy:x,yM31}【有 i 2 = − 1 i^2=-1 i2=1。】

M31的复数扩域具有如下属性:

  • 1)FFT友好性:
    ∣ M 3 1 C ∗ ∣ = p 2 − 1 = ( p + 1 ) ⋅ ( p − 1 ) = 2 31 ⋅ ( 2 31 − 2 ) |M31_{\mathbb{C}}^*|=p^2-1=(p+1)\cdot (p-1)=2^{31}\cdot (2^{31}-2) M31C=p21=(p+1)(p1)=231(2312)
  • 2) ( p + 1 ) (p+1) (p+1)-th roots of unity属于:【即 2 31 2^{31} 231-th roots of unity属于】
    S 1 = { x + i ⋅ y ∈ M 3 1 C : x 2 + y 2 = 1 } S_1=\{x+i\cdot y\in M31_{\mathbb{C}}:x^2+y^2=1\} S1={x+iyM31C:x2+y2=1}【有 ∣ S 1 ∣ = 2 31 |S_1|=2^{31} S1=231。】
    事实上:
    x 2 + y 2 = z ⋅ z ˉ = z ⋅ z p = z p + 1 x^2+y^2=z\cdot \bar{z}=z\cdot z^p=z^{p+1} x2+y2=zzˉ=zzp=zp+1

    其中 z ˉ \bar{z} zˉ z = x + i ⋅ y z=x+i\cdot y z=x+iy的共轭复数 z ˉ = x − i ⋅ y \bar{z}=x-i\cdot y zˉ=xiy
    由于有共轭等价为Frobenius isomorphism,即 z ˉ = z p \bar{z}=z^p zˉ=zp。从而有 x 2 + y 2 = z ⋅ z ˉ = z p + 1 x^2+y^2=z\cdot \bar{z}=z^{p+1} x2+y2=zzˉ=zp+1,同时有 ( p + 1 ) ∣ ( p 2 − 1 ) (p+1)|(p^2-1) (p+1)(p21),从而可得出结论:该circle group为 ( p + 1 ) (p+1) (p+1)-th roots of unity subgroup,具有的order为 p + 1 p+1 p+1

  • 3)对有理数的(知名)FFT 要比 对复数的FFT快得多:【下图的 b b bb bb是指Babybear域。】
    基于circle group的Reed-Solomon codes_第2张图片
    原因在于其具有很好的对称性和共轭性:
    基于circle group的Reed-Solomon codes_第3张图片

4. Extrapolation

H H H S 1 S_1 S1的subgroup, t ⋅ H t\cdot H tH为a coset, f : H → M 31 f:H\rightarrow M31 f:HM31为某“real”函数。
如下图所示,黑点表示 H H H subgroup,红点表示 t ⋅ H t\cdot H tH coset。
基于circle group的Reed-Solomon codes_第4张图片

STARK处理流程中包括:

  • FFT-interpolate插值,以获得 f ^ ( z ) \hat{f}(z) f^(z)多项式。
  • 基于 t ⋅ H t\cdot H tH f ^ ( z ) \hat{f}(z) f^(z)多项式做 FFT-evaluate。【complex output!

f f f为real,且具有zero mean时,对应有如下定理:
基于circle group的Reed-Solomon codes_第5张图片
基于circle group的Reed-Solomon codes_第6张图片

5. 结论

可基于M31域获取“almost native” Reed-Solomon codes:

  • 基于coset t ⋅ H t\cdot H tH的values可弄成real(“compressed”)。
    • 基于M31域的承诺开销,与Babybear域的承诺开销基本相当,甚至会更快。具体取决于所采用的哈希函数。
  • 编码开销与native Reed-Solomon相当:
    • 基于M31域的FFT开销,与Babybear域的FFT开销基本相当,且有希望能更快。即将完成相应代码实现。

参考资料

[1] Ulrich Hab¨ock等人2023年论文 Reed-Solomon codes over the circle group
[2] 2023年11月视频 “Reed Solomon codes over the circle group" - Ulrich

你可能感兴趣的:(零知识证明,零知识证明)