1. 引言
前序博客有:
本文主要考虑的是 Gallant等人2001年论文 Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms 中提到的曲线:
E
(
F
p
)
:
y
2
=
x
3
+
b
E(\mathbb{F}_p):\ y^2=x^3+b
E(Fp): y2=x3+b
其中
p
p
p为素数,满足
p
≡
1
m
o
d
3
p\equiv 1 \mod 3
p≡1mod3,即
3
∣
p
−
1
3|p-1
3∣p−1。
曲线
E
(
F
p
)
E(\mathbb{F}_p)
E(Fp)具有prime order
q
q
q。该曲线上的所有非
O
\mathcal{O}
O点都称为
F
p
\mathbb{F}_p
Fp-rational points
(
x
,
y
)
(x,y)
(x,y)。取该曲线基点
G
G
G。
scalar multiplication
[
k
]
G
[k]G
[k]G 中的scalar值
k
∈
F
q
k\in\mathbb{F}_q
k∈Fq。
1.1 endomorphism定义
因
3
∣
p
−
1
3|p-1
3∣p−1,即
F
p
\mathbb{F}_p
Fp 有 a primitive cube root of unity,若
ζ
p
∈
F
p
\zeta_p\in \mathbb{F}_p
ζp∈Fp为an element of order 3(即
ζ
p
3
=
1
m
o
d
p
\zeta_p^3=1\mod p
ζp3=1modp),则椭圆曲线
y
2
=
x
3
+
b
y^2=x^3+b
y2=x3+b上的point
(
x
,
y
)
(x,y)
(x,y) 存在2个cousin points:
(
ζ
p
x
,
y
)
(\zeta_px,y)
(ζpx,y)和
(
ζ
p
2
x
,
y
)
(\zeta_p^2x,y)
(ζp2x,y)。
由于 ζ p 3 = 1 m o d p \zeta_p^3=1\mod p ζp3=1modp,有 o r d e r ( ζ p ) = 3 order(\zeta_p)=3 order(ζp)=3,以及 ζ p 2 + ζ p + 1 ≡ 0 m o d p \zeta_p^2+\zeta_p+1\equiv 0 \mod p ζp2+ζp+1≡0modp。
使用map
(
x
,
y
)
↦
(
ζ
p
x
,
y
)
(x,y)\mapsto (\zeta_px,y)
(x,y)↦(ζpx,y)即为 应用an endomorphism over the curve,则对曲线
E
(
F
P
)
E(\mathbb{F}_P)
E(FP)的endomorphism定义为:
ϕ
(
x
,
y
)
↦
(
ζ
p
x
,
y
)
,
ϕ
(
O
)
=
O
\phi(x,y)\mapsto(\zeta_px,y), \phi(\mathcal{O})=\mathcal{O}
ϕ(x,y)↦(ζpx,y),ϕ(O)=O
具有如下属性:
ϕ
(
P
1
+
P
2
)
=
ϕ
(
P
1
)
+
ϕ
(
P
2
)
,
∀
P
1
,
P
2
∈
E
(
F
p
)
\phi(P_1+P_2)=\phi(P_1)+\phi(P_2),\forall P_1,P_2\in E(\mathbb{F_p})
ϕ(P1+P2)=ϕ(P1)+ϕ(P2),∀P1,P2∈E(Fp)
(
ϕ
2
+
ϕ
+
1
)
(
P
)
=
O
,
∀
P
∈
E
(\phi^2+\phi+1)(P)=\mathcal{O},\forall P\in E
(ϕ2+ϕ+1)(P)=O,∀P∈E【因为
(
ϕ
2
+
ϕ
+
1
)
(
P
)
=
ϕ
2
(
P
)
+
ϕ
(
P
)
+
1
(
P
)
=
(
ζ
p
2
x
,
y
)
+
(
ζ
p
x
,
y
)
+
(
x
,
y
)
=
(
−
ζ
p
2
x
−
ζ
p
x
,
−
y
)
+
(
x
,
y
)
=
(
x
,
−
y
)
+
(
x
,
y
)
=
O
(\phi^2+\phi+1)(P)=\phi^2(P)+\phi(P)+1(P)=(\zeta_p^2x,y)+(\zeta_px,y)+(x,y)=(-\zeta_p^2x-\zeta_px,-y)+(x,y)=(x,-y)+(x,y)=\mathcal{O}
(ϕ2+ϕ+1)(P)=ϕ2(P)+ϕ(P)+1(P)=(ζp2x,y)+(ζpx,y)+(x,y)=(−ζp2x−ζpx,−y)+(x,y)=(x,−y)+(x,y)=O】
若
ζ
q
∈
F
q
\zeta_q\in\mathbb{F}_q
ζq∈Fq为an element of order 3 (即
ζ
q
3
=
1
m
o
d
q
\zeta_q^3=1\mod q
ζq3=1modq,也即
ζ
q
2
+
ζ
q
+
1
≡
0
m
o
d
q
\zeta_q^2+\zeta_q+1\equiv 0 \mod q
ζq2+ζq+1≡0modq),则有:
ϕ
(
P
)
=
ϕ
(
x
,
y
)
=
[
ζ
q
]
P
=
(
ζ
p
x
,
y
)
,
ζ
p
≡
1
m
o
d
p
,
ζ
q
3
≡
1
m
o
d
q
,
∀
P
∈
E
(
F
p
)
\phi(P)=\phi(x,y)=[\zeta_q]P=(\zeta_px,y),\zeta_p\equiv 1\mod p,\zeta_q^3\equiv 1\mod q, \forall P\in E(\mathbb{F}_p)
ϕ(P)=ϕ(x,y)=[ζq]P=(ζpx,y),ζp≡1modp,ζq3≡1modq,∀P∈E(Fp)
对于任意的scalar值 k ∈ F q k\in\mathbb{F}_q k∈Fq,为计算scalar multiplication [ k ] P [k]P [k]P:
- 1)可将 k k k分解为 k = k 1 + k 2 ζ q m o d q k=k_1+k_2\zeta_q\mod q k=k1+k2ζqmodq
- 2)有 [ k ] P = [ k 1 ] P + [ k 2 ζ q ] P = [ k 1 ] P + [ k 2 ] Q [k]P=[k_1]P+[k_2\zeta_q]P=[k_1]P+[k_2]Q [k]P=[k1]P+[k2ζq]P=[k1]P+[k2]Q,从而转换为fixed point multiplication,可根据 P = ( x , y ) P=(x,y) P=(x,y)预计算 Q = ( ζ p x , y ) Q=(\zeta_px,y) Q=(ζpx,y)。
1.2 endomorphism用途
可借助endomorphism实现:
- 1)recursive zkSNARKs加速:实现partial proof verification
- 2)ECDSA验签加速
2. 基于2-cycle curves的endomorphism实现recursive zkSNARKs的partial proof verification
Halo论文中构建的ZKP算法,其Verifier保持为logarithmic-size state,并执行logarithmic-time operations来partially verify each proof in sequence。
在对a proof进行partial verification时,大部分的计算压力源自group operations。若选择任意的椭圆曲线
E
E
E over base field
F
p
\mathbb{F}_p
Fp,基于安全性考虑,该曲线的group order为素数
q
q
q,必然有
q
≠
p
q\neq p
q=p。为此,在构建ZKP时,是基于scalar field
q
\mathbb{q}
q来表达arithmetic circuit satisfaction的,使得模仿另一域
F
p
\mathbb{F}_p
Fp的计算将是昂贵的,从而成为ZKP协议中的一个效率挑战问题。为解决该效率问题,在Ben-Sasson等人2014年论文 Scalable Zero Knowledge via cycles of elliptic curves 中指出,可通过构建2-cycle curve
E
p
,
E
q
E_p,E_q
Ep,Eq,其base field分别为
F
p
和
F
q
\mathbb{F}_p和\mathbb{F}_q
Fp和Fq,使得
#
E
p
=
q
,
#
E
q
=
p
\#E_p=q, \#E_q=p
#Ep=q,#Eq=p。
假设
r
⃗
∈
{
0
,
1
}
λ
\vec{r}\in\{0,1\}^{\lambda}
r∈{0,1}λ为a verifier challenge,在 Halo论文 中,并不会直接将
r
⃗
\vec{r}
r解析为a scalar值并对某
F
p
\mathbb{F}_p
Fp-rational point
P
P
P进行scalar multiplication运算,而是借助endomorphism属性,取一个基于
r
⃗
\vec{r}
r生成的scalar值进行相应的运算,即在Halo论文中,将
[
r
⃗
]
P
[\vec{r}]P
[r]P运算替换为了:
该算法中,
r
⃗
\vec{r}
r的每个bit,可以3.5个multiplication constraints来表示,当采用2-cycle curve,
λ
=
128
,
n
:
{
0
,
1
}
λ
↦
I
\lambda=128,n:\{0,1\}^{\lambda}\mapsto \mathbb{I}
λ=128,n:{0,1}λ↦I时,该算法等价为计算
[
n
(
r
⃗
)
]
P
[n(\vec{r})]P
[n(r)]P:
3. 基于secp256k1的endomorphism mapping实现ECDSA验签加速
详细见博客 Acceleration of ECDSA Verification with Endomorphism Mapping of secp256k1,借助secp256k1的endomorphism属性,ECDSA验签速度提升了约40%。
参考资料
[1] About the endomorphism-based optimization in halo
[2] Acceleration of ECDSA Verification with Endomorphism Mapping of secp256k1
[3] Gallant等人2001年论文 Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms