1. 引言
主要见2023年Polygon Labs和Polygon Zero团队论文《Reed-Solomon codes over the circle group》。
相关开源代码实现见:
本文重点讨论基于Mersenne素数域 F = 2 31 − 1 F=2^{31}-1 F=231−1的复数扩域 C ( F ) \mathbb{C}(F) C(F)的unit circle内所定义的Reed-Solomon codes:
- 1)在该unit circle内,interpolants(插值)是"real",即 F F F-valued,函数也几乎是real的,意味着几乎无额外开销的情况下,可将函数值矫正为某实数值表示。
- 2)采用实数值(real-valued)函数的标准FFT技术,可有效加速编码。
由于Mersenne域的特别高效运算,可期待对其实现“almost native” Reed-Solomon codes,其原生性与 基于高two-adicity的(但不够处理器友好运算的)素数域的Reed-Solomon codes 基本相当。
STARKs(scalable and transparent arguments of knowledge)基于:
- Reed-Solomon codes
- 和 FRI proof of proximity
STARKs的性能取决于其witness trace所表示用的有限域。StarkWare的Cairo zkVM仍使用的是密码学大素数域,Plonky2采用的是64位小素数域,其模为:
p
=
2
64
−
2
32
+
1
p=2^{64}-2^{32}+1
p=264−232+1
通常称其为Goldilocks域。
Goldilocks域的模支持在标准计算机架构中高效实现,其乘法群足够smooth,two-adic subgroup size大至 2 32 2^{32} 232,可支持高效FFT Reed-Solomon编码。目前Polygon Hermez和Polygon Miden等项目均采用了Goldilocks域。
但是,从高效域实现以及算术电路的角度来看,需要更小的域。本文成稿时,RISC Zero为唯一往更小域努力的项目,其采用31位Baby Bear小素数域:
p
=
2
31
−
2
27
+
1
p=2^{31}-2^{27}+1
p=231−227+1
作为其witness的原生模。与Goldilocks域一样,Baby Bear的multiplicative group对大多数实际应用来说足够smooth:
p
−
1
=
2
27
⋅
3
⋅
5
p-1=2^{27}\cdot 3\cdot 5
p−1=227⋅3⋅5。与Baby Bear类似的现有素数,如
p
=
2
31
+
2
30
+
1
p=2^{31}+2^{30}+1
p=231+230+1,其也有相当的smooth multiplicative group和高效域运算。
最高效的域运算似乎是Mersenne filed,其形式为
p
=
2
e
−
1
p=2^e-1
p=2e−1。
特别是Mersenne素数域
p
=
2
31
−
1
p=2^{31}-1
p=231−1,其可在32位架构中非常高效地运行:
- 由于 2 32 = 2 ( m o d p ) 2^{32}=2(\mod p) 232=2(modp),因此形如 2 32 ⋅ x h i + x l o 2^{32}\cdot x_{hi}+x_{lo} 232⋅xhi+xlo的宽乘积编码,可 reduce为小得多的量级: 2 ⋅ x h i + x l o 2\cdot x_{hi}+x_{lo} 2⋅xhi+xlo。
- 但是,由于 p − 1 = 2 ⋅ 3 2 ⋅ 7 ⋅ 11 ⋅ 31 ⋅ 151 ⋅ 331 p-1=2\cdot 3^2\cdot 7\cdot 11\cdot 31\cdot 151\cdot 331 p−1=2⋅32⋅7⋅11⋅31⋅151⋅331,其乘法群缺少two-adic subgroups。而two-adic subgroups对于高效Cooley-Tukey FFT实现非常有用。
为此,本文描述了对Mersenne field的almost native Reed-Solomon codes,其利用的是基于复数扩域的circle group S 1 S_1 S1的FFT编码。
扩展到复数扩域,初看似乎效率不高:
- 1)扩域运算要比基域运算昂贵得多。
- 2)code words以复数表示,会将code rate减半。
但是,对于定义于
S
1
S_1
S1 subgroup的实数函数(即basefield-valued),其基于该circle group的剩余部分的插值点,也几乎是实数的,即意味着其值在某线性实数子空间内,其仅依赖于该subgroup的coset。进一步,采用标准技术来改进real-valued函数的FFT,插值开销将减半。
基于这些事实,所获得的Reed-Solomon codes是“almost native”的:
- 1)对于实数函数,编码开销,与具有相同size且high two-adicity的Cooley-Tukey-based编码开销,基本相当。
- 2)所编码获得的codewords,可压缩为完全实数表示,从而具有与原生方式完全相同的承诺开销。
由于
p
=
2
31
−
1
p=2^{31}-1
p=231−1具有特别高效的运算,其almost native Reed-Solomon codes性能,与Baby Bear的原生解决方案,基本相当。同时,
p
=
2
31
−
1
p=2^{31}-1
p=231−1具有更快的域运算,可用于trace计算和算术哈希计算。
2. 复数扩域和实数FFT
尽管本文重点关注Mersenne域,但本节结论适于每个素数域 F = F p F=F_p F=Fp,其中 p = 3 m o d 4 p=3\mod 4 p=3mod4。即要求 p − 1 2 \frac{p-1}{2} 2p−1是技术,或 − 1 -1 −1不是a quadratic residue。此时:
- 多项式 X 2 + 1 X^2+1 X2+1为irreducible over F F F
从而可构建复数扩域
C
(
F
)
=
F
[
X
]
/
(
X
2
+
1
)
\mathbb{C}(F)=F[X]/(X^2+1)
C(F)=F[X]/(X2+1)。该复数扩域通过连接formal root
i
:
=
−
1
i:=\sqrt{-1}
i:=−1而构成:
C
(
F
)
=
{
x
+
i
⋅
y
:
x
,
y
∈
F
}
\mathbb{C}(F)=\{x+i\cdot y:x,y\in F\}
C(F)={x+i⋅y:x,y∈F}
该复数扩域的域运算被强加了对该root的代数约束
i
2
=
−
1
i^2=-1
i2=−1。
基于
F
F
F的unit circle为代数集合:
S
1
=
{
(
x
,
y
)
∈
F
2
:
x
2
+
y
2
=
1
}
S_1=\{(x,y)\in F^2:x^2+y^2=1\}
S1={(x,y)∈F2:x2+y2=1},或以复数形式表示为:
S
1
=
{
z
∈
C
(
F
)
∗
:
z
⋅
z
ˉ
=
1
}
S_1=\{z\in\mathbb{C}(F)^*:z\cdot \bar{z}=1\}
S1={z∈C(F)∗:z⋅zˉ=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。由于共轭复数是field automorphism的,因此
S
1
S_1
S1在复数乘法下是闭环的,形成复数乘法群
C
(
F
)
∗
\mathbb{C}(F)^*
C(F)∗的子群——即(unit)circle group。
Lemma 1 (Circle group):
- 令 F = F p F=F_p F=Fp为素数域,有 p = 3 m o d 4 p=3\mod 4 p=3mod4,则基于 F F F的circle group S 1 S_1 S1,为 C ( F ) \mathbb{C}(F) C(F)中的 ( p + 1 ) (p+1) (p+1)-th roots of unity group,其order为 p + 1 p+1 p+1。
由于有共轭等价为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。
基于 F F F的几何复数平面,类似于calculus经典案例。尽管后续不需要,仍可迅速总结出复数值的极坐标表示。
Proposition 1:
- 令
F
=
F
p
F=F_p
F=Fp为素数域,有
p
=
3
m
o
d
4
p=3\mod 4
p=3mod4,由所有复数平方
Q
C
=
{
z
2
:
z
∈
C
(
F
)
∗
}
Q_{\mathbb{C}}=\{z^2:z\in\mathbb{C}(F)^*\}
QC={z2:z∈C(F)∗}组成的乘法子群,可分解为:
Q C = Q F ⊗ S 1 Q_{\mathbb{C}}=Q_F\otimes S_1 QC=QF⊗S1
其中:- Q F Q_F QF为基域 F F F内的 p − 1 2 \frac{p-1}{2} 2p−1个quadratic residues,
- S 1 S_1 S1为基于 F F F的order为 p + 1 p+1 p+1的unit circle group。
Remark 1:
- 从group orders来看,有 ∣ Q C ∣ = p 2 − 1 2 = ( p − 1 ) ⋅ ( p + 1 ) 2 |Q_{\mathbb{C}}|=\frac{p^2-1}{2}=\frac{(p-1)\cdot (p+1)}{2} ∣QC∣=2p2−1=2(p−1)⋅(p+1)。实数quadratic residues Q F Q_F QF对应奇数 p − 1 2 \frac{p-1}{2} 2p−1项,且unit circle group S 1 S_1 S1互素数因子 p + 1 p+1 p+1。
Remark 2:
- 整个乘法群
C
(
F
)
∗
\mathbb{C}(F)^*
C(F)∗可分解为:
C ( F ) ∗ = Q F ⊗ S ± 1 \mathbb{C}(F)^*=Q_F\otimes S_{\pm 1} C(F)∗=QF⊗S±1
其中:- S ± 1 = { z ∈ C ( F ) ∗ : z ⋅ z ˉ ∈ { ± 1 } } S_{\pm 1}=\{z\in\mathbb{C}(F)^*: z\cdot \bar{z}\in\{\pm 1\}\} S±1={z∈C(F)∗:z⋅zˉ∈{±1}},为由unit circle group和anti-unit circle group S − 1 = { z ∈ C ( F ) ∗ : z ⋅ z ˉ = − 1 } S_{-1}=\{z\in\mathbb{C}(F)^*: z\cdot \bar{z}=-1\} S−1={z∈C(F)∗:z⋅zˉ=−1}组成的subgroup。其中 S ± 1 S_{\pm 1} S±1对应的group order为 ∣ C ( F ) ∗ ∣ = 2 ⋅ ( p + 1 ) ⋅ p − 1 2 |\mathbb{C}(F)^*|=2\cdot (p+1)\cdot \frac{p-1}{2} ∣C(F)∗∣=2⋅(p+1)⋅2p−1中的 2 ⋅ ( p + 1 ) 2\cdot (p+1) 2⋅(p+1)项。
2.1 傅里叶变换和实数FFT
令
H
H
H为任意有限域
K
K
K的乘法子群,其order为
∣
H
∣
=
N
|H|=N
∣H∣=N,令
g
g
g为
H
H
H的generator。
对函数
f
:
H
→
K
f:H\rightarrow K
f:H→K的(discrete)Fourier transform
f
^
\hat{f}
f^函数基于
H
H
H定义为:
f
^
(
g
k
)
:
=
1
N
⋅
∑
j
=
0
N
−
1
f
(
g
j
)
⋅
g
−
k
⋅
j
\begin{equation}\hat{f}(g^k):=\frac{1}{N}\cdot \sum_{j=0}^{N-1}f(g^j)\cdot g^{-k\cdot j}\end{equation}
f^(gk):=N1⋅j=0∑N−1f(gj)⋅g−k⋅j
其中
k
=
0
,
⋯
,
N
−
1
k=0,\cdots,N-1
k=0,⋯,N−1。这些值是
f
f
f插值点的系数,即,存在唯一的degree小于
N
N
N的多项式
p
(
X
)
p(X)
p(X),
p
(
X
)
p(X)
p(X)是对
f
f
f基于
H
H
H对所有的
i
=
0
,
⋯
,
N
−
1
i=0,\cdots,N-1
i=0,⋯,N−1插值:
f
(
g
i
)
=
∑
k
=
0
N
−
1
f
^
(
g
k
)
⋅
g
k
⋅
i
\begin{equation} f(g^i)=\sum_{k=0}^{N-1}\hat{f}(g^k)\cdot g^{k\cdot i} \end{equation}
f(gi)=k=0∑N−1f^(gk)⋅gk⋅i
等式(2)右侧为 f ^ : H → K \hat{f}: H\rightarrow K f^:H→K的inverse Fourier transform。
用于傅里叶变换的标准算法为Cooley-Tukey算法。该算法利用了
H
H
H的group结构,并利用所有的:
∣
H
∣
⋅
log
∣
H
∣
⋅
(
1
2
⋅
M
+
A
)
\begin{equation} |H|\cdot \log |H|\cdot (\frac{1}{2}\cdot M+A) \end{equation}
∣H∣⋅log∣H∣⋅(21⋅M+A)
来计算上面的等式(1)(以及等式(2)),其中:【详情见Introduction to algorithms (3rd ed.),或 Modern computer algebra (3rd ed.)】
- M M M:表示 K K K中的乘法运算。
- A A A:表示 K K K中的加法/减法运算。
当
K
=
C
(
F
)
K=\mathbb{C}(F)
K=C(F)时,即为有限素数域
F
F
F(模为
p
=
3
m
o
d
4
p=3\mod 4
p=3mod4)的复数扩域,可使用order为
8
8
8的如下roots of unity简单形式:
c
⋅
(
1
+
i
)
,
i
,
c
⋅
(
−
1
+
i
)
,
−
1
,
c
⋅
(
−
1
−
i
)
,
−
i
,
c
⋅
(
1
−
i
)
,
1
c\cdot (1+i), i, c\cdot (-1+i), -1, c\cdot (-1-i), -i, c\cdot (1-i),1
c⋅(1+i),i,c⋅(−1+i),−1,c⋅(−1−i),−i,c⋅(1−i),1
其中:
- c c c为 + 1 2 +\frac{1}{2} +21或 − 1 2 -\frac{1}{2} −21的实数二次方根,具体取决于二者哪个是quadratic residue modulo p p p。
- 这些roots的乘法,包含更少的实数乘法,甚至没有实数乘法。从而产生了更高效的FFT更高radix变种,如:
- radix-4和radix-8变种。(详情见 A fast Fourier transform algorithm using base 8 iterations.)
- split-radix变种:
- 开销要略少于radix-8,在3/3-regme中,最多为: ∣ H ∣ ⋅ log ∣ H ∣ ⋅ ( 1 ⋅ M F + 3 ⋅ A F ) |H|\cdot \log |H|\cdot (1\cdot M_F + 3\cdot A_F) ∣H∣⋅log∣H∣⋅(1⋅MF+3⋅AF),其中每个复数乘法运算对应3个实数乘法运算 M F M_F MF和3个实数加法运算 A F A_F AF(详情见Real-valued fast Fourier transform algorithms)。
- 比Cooley-Tukey radix-2 FFT算法少33%的乘法运算和少20%的加法运算。
- radix 2和radix 4混合变种。
此外,所有这些不同radix FFT算法,都可利用傅里叶变换的Hermitian对称性来对real-valued函数
f
:
H
→
F
f:H\rightarrow F
f:H→F进行加速,即对每个
w
∈
H
w\in H
w∈H,有:
f
^
(
w
ˉ
)
=
f
^
(
w
)
‾
\hat{f}(\bar{w})=\overline{\hat{f}(w)}
f^(wˉ)=f^(w)
该对称性可用于让算法中每一步的计算次数减半,对反傅里叶变换也可使用Hermitian对称性。
尽管本文描述的是对实数 R \mathbb{R} R的复数扩域的经典情况,该算法及其开销分析也适用于有限域。具体总结为Theorem 3(详情见Real-valued fast Fourier transform algorithms):
- 令
K
=
C
(
F
)
K=\mathbb{C}(F)
K=C(F)对有限素数域
F
F
F的复数扩域,其中
F
F
F域的素数模满足
p
=
3
m
o
d
4
p=3\mod 4
p=3mod4,令
H
H
H为
K
K
K的two-adic乘法子群。对real-valued函数
f
:
H
→
F
f:H\rightarrow F
f:H→F的傅里叶变换,以及对共轭Hermitian函数
f
^
:
H
→
K
\hat{f}:H\rightarrow K
f^:H→K的反傅里叶变换,均可以少于:
∣ H ∣ ⋅ log ∣ H ∣ ⋅ ( 1 2 ⋅ M + 3 2 ⋅ A ) \begin{equation} |H|\cdot \log |H|\cdot (\frac{1}{2}\cdot M+\frac{3}{2}\cdot A)\end{equation} ∣H∣⋅log∣H∣⋅(21⋅M+23⋅A)
次数计算,其中 M M M和 A A A分别表示基于基域 F F F的域乘法和域加法运算。
Remark 4:
- 当针对模为
p
=
2
31
−
1
p=2^{31}-1
p=231−1的Mersenne域,其8-th primitive root of unity为
1
2
⋅
(
1
+
i
)
=
2
15
⋅
(
1
+
i
)
\frac{1}{\sqrt{2}}\cdot (1+i)=2^{15}\cdot (1+i)
21⋅(1+i)=215⋅(1+i)。使得与8-th roots of unity的乘法运算仅包含位移、加法和减法。为此,可使用packing trick和radix-8 transform来实现类似的运算次数:
- 1)将函数按size对半切分(对应2个cosets of an index 2 subgroup值)
- 2)将他们组合为单个复数形式,并应用radix-8算法。
- 3)可从步骤2)中的结果中提取2个half-sized函数的傅里叶变换,然后按Cooley-Tukey方式实现所需结果。
3. 基于 S 1 S_1 S1插值
如下proposition是基于unit circle group的Reed Solomon code实数表示的关键。尽管本文关注的是Mersenne素数域,但结论适用于所有满足 p = 3 m o d 4 p=3\mod 4 p=3mod4的素数域。
Proposition 2:
- 令
F
=
F
p
F=F_p
F=Fp为素数域,其中
p
=
3
m
o
d
4
p=3\mod 4
p=3mod4,且
H
H
H为复数扩域
C
(
F
)
\mathbb{C}(F)
C(F)的unit circle group
S
1
S_1
S1的子群,
H
H
H的order为偶数
∣
H
∣
≥
2
|H|\geq 2
∣H∣≥2。对于每个基于
H
H
H的
F
F
F-valued函数
f
f
f,其基于coset
τ
⋅
H
,
τ
∈
S
1
\tau\cdot H,\tau\in S_1
τ⋅H,τ∈S1的插值
p
(
X
)
=
c
0
+
∑
k
=
1
∣
H
∣
−
1
c
k
⋅
X
k
p(X)=c_0+\sum_{k=1}^{|H|-1}c_k\cdot X^k
p(X)=c0+∑k=1∣H∣−1ck⋅Xk的值,在由
c
0
和
τ
c_0和\tau
c0和τ决定的
C
(
F
)
\mathbb{C}(F)
C(F)实数线性子空间中,即,对于所有的
x
∈
τ
⋅
H
x\in\tau\cdot H
x∈τ⋅H,有:
p ( x ) − c 0 ∈ ϕ ( τ ) ⋅ F \begin{equation}p(x)-c_0\in\phi(\tau)\cdot F\end{equation} p(x)−c0∈ϕ(τ)⋅F
其中:
ϕ ( τ ) = τ ∣ H ∣ 2 \begin{equation} \phi(\tau)=\tau^{\frac{|H|}{2}}\end{equation} ϕ(τ)=τ2∣H∣
此外,mapping ϕ \phi ϕ定义了injective homomorphism ϕ : S 1 / H → S 1 / { ± 1 } \phi:S_1/H\rightarrow S_1/\{\pm 1\} ϕ:S1/H→S1/{±1},其image等于the “projective” cyclic subgroup C 2 ⋅ β / { ± 1 } C_{2\cdot \beta}/\{\pm 1\} C2⋅β/{±1},其中 β = ∣ S 1 ∣ / ∣ H ∣ \beta=|S_1|/|H| β=∣S1∣/∣H∣。
Remark 5:
- 对于具有奇数order的子群 H H H,以上结论也成立,只是需更小心的证明,因为 τ \sqrt{\tau} τ可能在anti-unit circle S − 1 S_{-1} S−1中,从而破坏了conjugate-equals-inverse关系 τ ⋅ τ ‾ = − 1 \sqrt{\tau}\cdot \overline {\sqrt{\tau}}=-1 τ⋅τ=−1。本文不使用该特例情况,因此忽略相应细节。
由于 f f f是基于 H H H的实数函数,其插值 p ( X ) = ∑ k = 0 ∣ H ∣ − 1 c k ⋅ X k p(X)=\sum_{k=0}^{|H|-1}c_k\cdot X^k p(X)=∑k=0∣H∣−1ck⋅Xk的系数对其共轭是Hermitian对称的,即 c 0 = ⟨ c ∣ 0 c_0=\bra{c}_0 c0=⟨c∣0,对于所有的 k = 1 , ⋯ , ∣ H ∣ − 1 k=1,\cdots,|H|-1 k=1,⋯,∣H∣−1,有 c ∣ H ∣ − k = c ˉ k c_{|H|-k}=\bar{c}_k c∣H∣−k=cˉk。
接下来考虑基于 τ ⋅ H \tau\cdot H τ⋅H的 p ( X ) − c 0 p(X)-c_0 p(X)−c0值,其中 τ ∈ S 1 \tau \in S_1 τ∈S1,有:
p ( τ ⋅ X ) − c 0 = ∑ k = 1 ∣ H ∣ − 1 c k ⋅ τ k ⋅ X k = ∑ k d k ⋅ X k p(\tau \cdot X)-c_0=\sum_{k=1}^{|H|-1}c_k\cdot \tau^k\cdot X^k=\sum_k d_k\cdot X^k p(τ⋅X)−c0=∑k=1∣H∣−1ck⋅τk⋅Xk=∑kdk⋅Xk
其中:
d k = { c k ⋅ τ k for 1 ≤ k ≤ ∣ H ∣ − 1 0 otherwise. d_k= \left\{\begin{matrix} c_k\cdot \tau ^k & \text{for } 1\leq k\leq |H|-1 \\ 0&\text{otherwise.} \end{matrix}\right. dk={ck⋅τk0for 1≤k≤∣H∣−1otherwise.
将该函数扩大
τ
−
∣
H
∣
2
\tau^{-\frac{|H|}{2}}
τ−2∣H∣,有系数
d
k
′
:
=
τ
−
∣
H
∣
2
⋅
d
k
d_k':=\tau^{-\frac{|H|}{2}\cdot d_k}
dk′:=τ−2∣H∣⋅dk,其满足Hermitian对称性,即对所有的
k
=
1
,
⋯
,
∣
H
∣
−
1
k=1,\cdots,|H|-1
k=1,⋯,∣H∣−1,有:
d
∣
H
∣
−
k
′
=
τ
−
∣
H
∣
2
⋅
τ
∣
H
∣
−
k
⋅
c
∣
H
∣
−
k
=
τ
∣
H
∣
2
⋅
τ
−
k
⋅
c
ˉ
k
=
τ
−
∣
H
∣
2
⋅
τ
k
⋅
c
k
‾
=
d
′
ˉ
k
d'_{|H|-k}=\tau^{-\frac{|H|}{2}}\cdot \tau ^{|H|-k}\cdot c_{|H|-k}=\tau^{\frac{|H|}{2}}\cdot \tau^{-k}\cdot \bar{c}_k=\overline{\tau^{-\frac{|H|}{2}}\cdot \tau^k\cdot c_k}=\bar{d'}_k
d∣H∣−k′=τ−2∣H∣⋅τ∣H∣−k⋅c∣H∣−k=τ2∣H∣⋅τ−k⋅cˉk=τ−2∣H∣⋅τk⋅ck=d′ˉk
从而可得出结论:
- 对于每个 x ∈ H x\in H x∈H,可得出结论 τ − ∣ H ∣ 2 ⋅ ( p ( τ ⋅ x ) − c 0 ) ∈ F \tau^{-\frac{|H|}{2}}\cdot (p(\tau\cdot x)-c_0)\in F τ−2∣H∣⋅(p(τ⋅x)−c0)∈F,从而证明了Proposition 2中的第一条claim。
对于Proposition 2中的第二条claim:
- 事实上,对于每个 x ∈ H x\in H x∈H,有 x ∣ H ∣ 2 ∈ { ± 1 } x^{\frac{|H|}{2}}\in\{\pm 1\} x2∣H∣∈{±1},从而有 ( τ ⋅ x ) ∣ H ∣ 2 ∈ τ ∣ H ∣ 2 ⋅ { ± 1 } (\tau \cdot x )^{\frac{|H|}{2}}\in \tau ^{\frac{|H|}{2}}\cdot \{\pm 1\} (τ⋅x)2∣H∣∈τ2∣H∣⋅{±1}。由于 ϕ \phi ϕ指向由 S 1 / H S_1/H S1/H到 S 1 / { ± 1 } S_1/\{\pm 1\} S1/{±1}的isomorphism,该isomorphism的kernel是trivial的,因为 τ ∣ H ∣ 2 ∈ { ± 1 } \tau^{\frac{|H|}{2}}\in\{\pm 1\} τ2∣H∣∈{±1}等价为 τ ∣ H ∣ = 1 \tau^{|H|}=1 τ∣H∣=1。由于 S 1 S_1 S1是cyclic的,因此,the projective unit circle S 1 / { ± 1 } S_1/\{\pm 1\} S1/{±1}和 ϕ \phi ϕ的images order为 β = ∣ S 1 / H ∣ \beta=|S_1/H| β=∣S1/H∣的唯一子群,其等价为 C 2 ⋅ β / { ± 1 } C_{2\cdot \beta}/\{\pm 1\} C2⋅β/{±1}子群。
4. Mersenne域的almost native Reed-Solomon codes
对Mersenne域 F = F p F=F_p F=Fp,其中素数模满足 p = 2 e − 1 p=2^e-1 p=2e−1,应用如上结论。
根据Lemma 1,unit circle group
S
1
S_1
S1是
C
(
F
)
∗
\mathbb{C}(F)^*
C(F)∗的purely two-adic子群:
∣
S
1
∣
=
p
+
1
=
2
e
|S_1|=p+1=2^e
∣S1∣=p+1=2e
其可用于第2节中的FFT算法。在STARKs上下文中,使用witness多项式的Lagrange表示,如AIR( algebraic intermediate representations)或Plonkish算术化,这就需要面对如下问题:
- 已知witness多项式基于某witness domain
H
H
H的值,对其插值到更大的sampling domain
D
D
D,有
∣
D
∣
=
β
⋅
∣
H
∣
|D|=\beta \cdot |H|
∣D∣=β⋅∣H∣,其中
β
\beta
β为整数,并对所获得的值通过Merkle hash进行承诺。若
H
H
H和
D
D
D均在unit circle group
S
1
S_1
S1内,则可获得almost native Reed-Solomon code:
- 对real-valued函数做mixed-radix FFT(见Theorem 3),计算插值及其所需的coset值,其开销与等同size具有high two-adicity域 的开销几乎相同。
- 首先计算real witness函数 w : H → F w:H\rightarrow F w:H→F的傅里叶变换,然后,对每个coset KaTeX parse error: Undefined control sequence: \codt at position 5: \tau\̲c̲o̲d̲t̲ ̲H\subset D,将shifted factors τ k − ∣ H ∣ 2 , k = 1 , ⋯ , ∣ H ∣ − 1 \tau^{k-\frac{|H|}{2}},k=1,\cdots,|H|-1 τk−2∣H∣,k=1,⋯,∣H∣−1与 w w w的傅里叶变换相乘。
- 然后对Hermititian对称函数应用反傅里叶变换,以获得矫正后的基于 τ ⋅ H \tau\cdot H τ⋅H的 τ − ∣ H ∣ 2 ⋅ ( w ( X ) − c 0 ) \tau ^{-\frac{|H|}{2}}\cdot (w(X)-c_0) τ−2∣H∣⋅(w(X)−c0)的实数值。
- codeword的native表示中,包含实数coset evaluations:
τ − ∣ H ∣ 2 ⋅ ( w ( x ) − c 0 ) x ∈ τ ⋅ H \begin{equation} \tau^{-\frac{|H|}{2}}\cdot (w(x)-c_0)_{x\in \tau\cdot H}\end{equation} τ−2∣H∣⋅(w(x)−c0)x∈τ⋅H
其中 τ ⋅ H ⊂ D \tau\cdot H\subset D τ⋅H⊂D,常量项 c 0 = ∑ x ∈ H w ( x ) c_0=\sum_{x\in H}w(x) c0=∑x∈Hw(x)。- 不对 w ( x ) ∣ x ∈ D w(x)|_{x\in D} w(x)∣x∈D进行承诺,改为仅对(7)中的校正值进行承诺,并额外对scalar c 0 c_0 c0进行announce或commit。
- 在很多应用中,甚至可假设 c 0 = 0 c_0=0 c0=0,通常,并不是整个domain H H H都会被witness数据所消费,可将未用值调整使该domain之和为0。
- 对real-valued函数做mixed-radix FFT(见Theorem 3),计算插值及其所需的coset值,其开销与等同size具有high two-adicity域 的开销几乎相同。
在非零值设置下,当考虑sampling domain D = S 1 D=S_1 D=S1的size为 2 31 2^{31} 231,对应的blow-up factor β = 2 \beta=2 β=2时,对Mersenne素数 p = 2 31 − 1 p=2^{31}-1 p=231−1可支持size到 2 30 2^{30} 230的witness domain H H H的almost native Reed-Solomon codes。
当考虑零知识属性时, H H H的最大size 为 2 29 2^{29} 229,采用的disjoint sampling domain D D D within in S 1 S_1 S1 of double the size of H H H。
在标准计算机架构下,Mersenne算术运算可balance掉,基于复数扩域的mixed-radix FFT所引入的加法运算此时。具体benchmark为:
对应上面的等式(3)和(4),基于M31(Mersenne31域)的mixed-radix real FFT,在Apple M1 ARM处理器上和Intel Ice Lake x86处理器上的开销分别为:
∣
H
∣
⋅
log
∣
H
∣
⋅
(
1
2
⋅
0.31
+
3
2
⋅
0.19
)
≈
0.44
⋅
∣
H
∣
⋅
log
∣
H
∣
|H|\cdot \log |H|\cdot (\frac{1}{2}\cdot 0.31+\frac{3}{2}\cdot 0.19)\approx 0.44\cdot |H|\cdot \log |H|
∣H∣⋅log∣H∣⋅(21⋅0.31+23⋅0.19)≈0.44⋅∣H∣⋅log∣H∣
∣
H
∣
⋅
log
∣
H
∣
⋅
(
1
2
⋅
0.31
+
3
2
⋅
0.09
)
≈
0.31
⋅
∣
H
∣
⋅
log
∣
H
∣
|H|\cdot \log |H|\cdot (\frac{1}{2}\cdot 0.31+\frac{3}{2}\cdot 0.09)\approx 0.31\cdot |H|\cdot \log |H|
∣H∣⋅log∣H∣⋅(21⋅0.31+23⋅0.09)≈0.31⋅∣H∣⋅log∣H∣
个clock cycles,而对Baby Bear域应用Cooley-Tukey算法,在Apple M1 ARM处理器上和在Intel Ice Lake x86处理器上开销分别为:
∣
H
∣
⋅
log
∣
H
∣
⋅
(
1
2
⋅
0.5
+
1
2
⋅
0.19
)
≈
0.44
⋅
∣
H
∣
⋅
log
∣
H
∣
|H|\cdot \log |H|\cdot (\frac{1}{2}\cdot 0.5+\frac{1}{2}\cdot 0.19)\approx 0.44\cdot |H|\cdot \log |H|
∣H∣⋅log∣H∣⋅(21⋅0.5+21⋅0.19)≈0.44⋅∣H∣⋅log∣H∣
∣
H
∣
⋅
log
∣
H
∣
⋅
(
1
2
⋅
0.44
+
1
2
⋅
0.09
)
≈
0.31
⋅
∣
H
∣
⋅
log
∣
H
∣
|H|\cdot \log |H|\cdot (\frac{1}{2}\cdot 0.44+\frac{1}{2}\cdot 0.09)\approx 0.31\cdot |H|\cdot \log |H|
∣H∣⋅log∣H∣⋅(21⋅0.44+21⋅0.09)≈0.31⋅∣H∣⋅log∣H∣
因此,基于Mersenne域的almost native Reed-Solomon codes,其性能与具有相同size和高two-adic域 的性能相当,同时,提供了额外更快的域运算。