1. 引言
Polygon团队Ulrich Hab¨ock等人2023年论文 Reed-Solomon codes over the circle group。
前序博客有:
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=264−232+1【64bit素数域】
- RISC Zero(2021):Babybear域: p = 2 31 − 2 17 + 1 p=2^{31}-2^{17}+1 p=231−217+1【31bit素数域】
- Plonky3(2023):约31bit素数域——Mersenne M31域: p = 2 31 − 1 p=2^{31}-1 p=231−1【31bit素数域】
寻找Mersenne域的目的是:
- 相比于Babybear域,具有更快的运算(针对标准CPU架构,如:ARM,x86)
- STARK友好(即FFT友好)
2. Mersenne M31域
Mersenne M31域: p = 2 31 − 1 p=2^{31}-1 p=231−1【31bit素数域】
- 其优点在于:具有非常快的运算。【乘法运算比Babybear快约30%到50%。】

- 其缺点在于:不是FFT友好的。因 p − 1 = 2 31 − 2 = 2 ⋅ ( 2 30 − 1 ) p-1=2^{31}-2=2\cdot(2^{30}-1) p−1=231−2=2⋅(230−1),其仅具有two-adic roots: ± 1 \pm 1 ±1。
可能的应对策略有:
- 1)non-twoadic FFT:不够快。

- 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+i⋅y:x,y∈M31}【有
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∗∣=p2−1=(p+1)⋅(p−1)=231⋅(231−2) - 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+i⋅y∈M31C: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=z⋅zˉ=z⋅zp=zp+1。其中 z ˉ \bar{z} zˉ为 z = x + i ⋅ y z=x+i\cdot y z=x+i⋅y的共轭复数 z ˉ = x − i ⋅ y \bar{z}=x-i\cdot y zˉ=x−i⋅y。
由于有共轭等价为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=z⋅zˉ=zp+1,同时有 ( p + 1 ) ∣ ( p 2 − 1 ) (p+1)|(p^2-1) (p+1)∣(p2−1),从而可得出结论:该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域。】

原因在于其具有很好的对称性和共轭性:

4. Extrapolation
H
H
H为
S
1
S_1
S1的subgroup,
t
⋅
H
t\cdot H
t⋅H为a coset,
f
:
H
→
M
31
f:H\rightarrow M31
f:H→M31为某“real”函数。
如下图所示,黑点表示
H
H
H subgroup,红点表示
t
⋅
H
t\cdot H
t⋅H coset。

STARK处理流程中包括:
- FFT-interpolate插值,以获得 f ^ ( z ) \hat{f}(z) f^(z)多项式。
- 基于 t ⋅ H t\cdot H t⋅H对 f ^ ( z ) \hat{f}(z) f^(z)多项式做 FFT-evaluate。【complex output!】
当
f
f
f为real,且具有zero mean时,对应有如下定理:


5. 结论
可基于M31域获取“almost native” Reed-Solomon codes:
- 基于coset
t
⋅
H
t\cdot H
t⋅H的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
文章探讨了MersenneM31域在STARKs(SuccinctTransparentArgumentofKnowledge)中的优势,特别是在处理FFT(FastFourierTransform)时的性能提升。它与较小的域大小相关,提供更快的运算速度,但非FFT友好。文中还提到如何通过MersenneFFT和利用循环群特性来优化Reed-Solomon编码的效率。
7090

被折叠的 条评论
为什么被折叠?



