Casting out Primes: Bignum Arithmetic for Zero-Knowledge Proofs学习笔记

1. 引言

Polygon zero团队 Daniel Lubarov 和 Polygon zkEVM团队 Jordi Baylina 2022年10月联合发表的论文 《Casting out Primes: Bignum Arithmetic for Zero-Knowledge Proofs》。

受“casting out nines” 技术——做对9取模运算并提供概率性结果,启发,本论文核心思想为:

  • 对bignum运算的非确定方案

即:【详细参看Optimizations of zkEVM with Daniel and Jordi
在这里插入图片描述
即,若某identity在moduli set M M M中每个 m i ∈ M m_i\in M miM均有:

  • f ( x ⃗ ) = 0 m o d    m i f(\vec{x})=0\mod m_i f(x )=0modmi

则有:

  • f ( x ⃗ ) = 0 m o d    lcm ( M ) f(\vec{x})=0\mod \text{lcm}(M) f(x )=0modlcm(M),其中 lcm ( M ) \text{lcm}(M) lcm(M)表示 M M M中的最小公倍数。

若已知 ∣ f ( x ⃗ ) ∣ < lcm ( M ) |f(\vec{x})|<\text{lcm}(M) f(x )<lcm(M),则有:

  • f ( x ⃗ ) = 0 f(\vec{x})=0 f(x )=0

1.1 相关约定

[ b ] [b] [b]表示集合: { 0 , ⋯   , b − 1 } \{0,\cdots,b-1\} { 0,,b1},某bignum可表示为 n n n limbs in base b b b,即 [ b ] n [b]^n [b]n

[ b ] n [b]^n [b]n [ b n ] [b^n] [bn]之间具有canonical isomorphism:【由于 b b b为公开已知,可进行预处理。】
σ b ( x ) = ∑ i = 0 n − 1 b i x i \sigma_b(x)=\sum_{i=0}^{n-1}b^ix_i σb(x)=i=0n1bixi

已知一组bignum x , y ∈ [ b ] n x,y\in [b]^n x,y[b]n,乘积 σ b ( x ) σ b ( y ) \sigma_b(x)\sigma_b(y) σb(x)σb(y)可表示为某函数 ( [ b ] n , [ b ] n ) → [ b 2 n ] ([b]^n,[b]^n)\rightarrow [b^{2n}] ([b]n,[b]n)[b2n],即:
π b ( x , y ) = ∑ i = 0 n − 1 ∑ j = 0 n − 1 b i + j x i y j \pi_b(x,y)=\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b^{i+j}x_iy_j πb(x,y)=i=0n1j=0n1bi+jxiyj

  • Partially reduced summations:
    某identity 对 m m m 取模,可表示为对每个系数取模,即:
    σ b m ( x ) = ∑ i = 0 n − 1 ( b i m o d    m ) x i \sigma_b^{m}(x)=\sum_{i=0}^{n-1}(b^i\mod m)x_i σbm(x)=i=0n1(bimodm)xi
    类似的,也有:
    π b ( x , y ) ( m ) = ∑ i = 0 n − 1 ∑ j = 0 n − 1 ( b i + j m o d    m ) x i y j \pi_b(x,y)^{(m)}=\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}(b^{i+j}\mod m)x_iy_j πb(x,y)(m)=i=0n1j=0n1(bi+jmodm)xiyj
    注意其中: σ b ( x ) = σ b m ( x ) \sigma_b(x)=\sigma_b^{m}(x) σb(x)=σbm(x) 以及 π b ( x , y ) = π b ( x , y ) ( m ) \pi_b(x,y)=\pi_b(x,y)^{(m)} πb(x,y)=πb(x,y)(m)

从而可推导出如下定理1:

  • 已知 x ∈ [ b ] n x\in [b]^n x[b]n,有 σ b m ( x ) < n m b \sigma_b^{m}(x)<nmb σbm(x)<nmb
  • 已知 x , y ∈ [ b ] n x,y\in [b]^n x,y[b]n,有 π b ( x , y ) ( m ) < n 2 m b 2 \pi_b(x,y)^{(m)}<n^2mb^2 πb(x,y)(m)<n2mb2

在本文中,已知 x ∈ [ b ] n x\in [b]^n x[b]n,则 x x x σ b ( x ) \sigma_b(x) σb(x)这二者表示等价。

2. Widening multiplication

首先考虑2个bignum的乘法运算, x , y ∈ [ b ] n x,y\in [b]^n x,y[b]n

  • 不同于对 x y xy xy进行确定性运算,而是将其乘积 z ∈ [ b ] 2 n z\in[b]^{2n} z[b]2n作为witness,转为检查identity x y − z xy-z xyz
  • 不同于直接验证该identity,转为检查其在一组模 M = { m 0 , ⋯   , m k − 1 } M=\{m_0,\cdots, m_{k-1}\} M={ m0,,mk1}下均成立。
    假设对于每个 m i m_i mi x y = z m o d    m i xy=z\mod m_i xy=zmodmi均成立,或者等价为 m i ∣ ( x y − z ) m_i | (xy-z) mi(xyz)。则有 lcm ( M ) ∣ ( x y − z ) \text{lcm}(M) | (xy-z) lcm(M)(xyz),其中 lcm \text{lcm} lcm表示the least common multiple function。
    由于 x y < b 2 n xy<b^{2n} xy<b2n z < b 2 n z<b^{2n} z<b2n,使得 ∣ x y − z ∣ < b 2 n |xy-z|<b^{2n} xyz<b2n
    若选择的模集合 M M M满足 lcm ( M ) ≥ b 2 n \text{lcm}(M) \geq b^{2n} lcm(M)b2n,则 ∣ x y − z ∣ < lcm ( M ) |xy-z|<\text{lcm}(M) xyz<lcm(M),因此 x y − z = 0 xy-z=0 xyz=0 lcm ( M ) ∣ ( x y − z ) \text{lcm}(M) | (xy-z) lcm(M)(xyz)成立的唯一解,从而有 x y = z xy=z xy=z

Remark 1:

  • M M M选择pairwise coprime sets是很自然的选择,因其具有 lcm ( M ) = ∏ i = 0 k − 1 m i \text{lcm}(M)=\prod_{i=0}^{k-1}m_i lcm(M)=i=0k1mi属性。

2.1 Congruence mod m i m_i mi

仍需检查 x y = z m o d    m i xy=z \mod m_i xy=zmodmi,更准确来说,是仍需检查 π b ( x , y ) = σ b ( z ) m o d    m i \pi_b(x,y)=\sigma_b(z)\mod m_i πb(x,y)=σb(z)modmi。等式两边同时reduce,将该检查reduce为:
π b ( x , y ) ( m i ) = σ b m i ( z ) m o d    m i \pi_b(x,y)^{(m_i)}=\sigma_b^{m_i}(z)\mod m_i πb(x,y)(mi)=σbmi(z)modmi
不同于对等式两边进行确定性reduce,引入witness s ∈ Z s\in \mathbb{Z} sZ使得:
π b ( x , y ) ( m i ) − σ b m i ( z ) = s m i \begin{equation} \pi_b(x,y)^{(m_i)}-\sigma_b^{m_i}(z)=sm_i \end{equation} πb(x,y)(mi)σbmi(z)=smi

根据定理1,可推导出定理2—— ∣ s ∣ |s| s的上限值进行了约定:

  • s s s为对方程式(1)有效解,则有 ∣ s ∣ < n 2 b 2 |s|<n^2b^2 s<n2b2

2.2 避免wrap-around

基于素数域进行运算的计算模型,无法对上述方程式(1)进行直接检查,我们仅能检查其 m o d    p \mod p modp是否成立,或等价为,存在某 t t t,使得:
π b ( x , y ) ( m i ) − σ b m i ( z ) − s m i = t p \pi_b(x,y)^{(m_i)}-\sigma_b^{m_i}(z)-sm_i=tp πb(x,y)(mi)σbmi(z)smi=tp

为避免因包含wrap-around引入的无效解,必须对上述等式左侧进行限制,使得 t = 0 t=0 t=0为唯一可能解,即必须确保:
∣ π b ( x , y ) ( m i ) − σ b m i ( z ) − s m i ∣ < p |\pi_b(x,y)^{(m_i)}-\sigma_b^{m_i}(z)-sm_i|<p πb(x,y)(mi)σbmi(z)smi<p

针对以上不等式,并利用 π b ( x , y ) ( m i ) \pi_b(x,y)^{(m_i)} πb(x,y)(mi) − σ b m i ( z ) -\sigma_b^{m_i}(z) σbmi(z)为符号相反的2个数的事实,足以确保:
max ⁡ { π b ( x , y ) ( m i ) , σ b m i ( z ) } + ∣ s m i ∣ < p \max\{\pi_b(x,y)^{(m_i)},\sigma_b^{m_i}(z)\}+|sm_i|<p max{ πb(x,y)(mi),σbmi(z)}+smi<p

或应用以上定理1和定理2,有:

  • 2 n 2 m i b 2 ≤ p 2n^2m_ib^2\leq p 2n2mib2p

从而可选择一组能满足该条件的参数。

Remark 2:

  • M M M中包含 p p p自身是很自然的选择,因为,这样可“原生”检查an identity m o d    p \mod p modp。显然 p p p自身并不满足上面 2 n 2 m i b 2 ≤ p 2n^2m_ib^2\leq p 2n2mib2p的限定,因此,当检查某identity m o d    p \mod p modp时,wrap-around并不是an issue。

3. Modular multiplication

对某固定模 q < b n q<b^n q<bn进行modular multiplication计算,即为:

  • x , y ∈ [ b ] n x,y\in [b]^n x,y[b]n为输入, z ∈ [ b ] n z\in [b]^n z[b]n为witness,检查 x y = z m o d    q xy=z\mod q xy=zmodq。(不同于上面的检查 x y = z xy=z xy=z

为此,引入witness r r r,使得 π b ( x , y ) − σ b ( z ) = r q \pi_b(x,y)-\sigma_b(z)=rq πb(x,y)σb(z)=rq。不过,可将该问题进一步reduce为:

  • 存在witness r r r,使得 π b ( q ) ( x , y ) − σ b q ( z ) = r q \pi_b^{(q)}(x,y)-\sigma_b^{q}(z)=rq πb(q)(x,y)σbq(z)=rq

根据定理1,意味着 ∣ r ∣ < n 2 b 2 |r|<n^2b^2 r<n2b2——可引入range check来强化该限制。

跟之前的方案类似,引入模集合 M M M,根据定理1和不等式,有:

  • ∣ π b ( x , y ) ( q ) − σ b ( q ) ( z ) − r q ∣ < 2 n 2 q b 2 |\pi_b(x,y)^{(q)}-\sigma_b^{(q)}(z)-rq|<2n^2qb^2 πb(x,y)(q)σb(q)(z)rq<2n2qb2

因此,可选择 M M M使得 lcm ( M ) ≥ 2 n 2 q b 2 \text{lcm}(M)\geq 2n^2qb^2 lcm(M)2n2qb2。为此,若不执行partial reduction m o d    q \mod q modq,我们需要大一点的 lcm ( M ) \text{lcm}(M) lcm(M)

3.1 Congruence mod m i m_i mi

small-moduli checks形式为:

  • π b ( q ) ( x , y ) − σ b ( q ) ( z ) = r q m o d    m i \pi_b^{(q)}(x,y)-\sigma_b^{(q)}(z)=rq \mod m_i πb(q)(x,y)σb(q)(z)=rqmodmi

对所有的常量进行partial reductions m o d    m i \mod m_i modmi,从而有:

  • π b ( q ) ( m i ) ( x , y ) − σ b ( q ) ( m i ) ( z ) = r ( q m o d    m i ) m o d    m i \pi_b^{(q)(m_i)}(x,y)-\sigma_b^{(q)(m_i)}(z)=r(q\mod m_i) \mod m_i πb(q)(mi)(x,y)σb(q)(mi)(z)=r(qmodmi)modmi

其中 ( q ) ( m i ) (q)(m_i) (q)(mi)表示为一系列的partial reductions,即:

  • σ b ( q ) ( m i ) = ∑ i = 0 n − 1 ( ( b i m o d    q ) m o d    m i ) x i \sigma_b^{(q)(m_i)}=\sum_{i=0}^{n-1}((b^i\mod q)\mod m_i)x_i σb(q)(mi)=i=0n1((bimodq)modmi)xi
  • π b ( q ) ( m i ) = ∑ i = 0 n − 1 ∑ j = 0 n − 1 ( ( b i + j m o d    q ) m o d    m i ) x i y j \pi_b^{(q)(m_i)}=\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}((b^{i+j}\mod q)\mod m_i)x_iy_j πb(q)(mi)=i=0n1j=0n1((bi+jmodq)modmi)xiyj

引入witness s s s,使得:

  • π b ( q ) ( m i ) ( x , y ) − σ b ( q ) ( m i ) ( z ) − r ( q m o d    m i ) = s m i \pi_b^{(q)(m_i)}(x,y)-\sigma_b^{(q)(m_i)}(z)-r(q\mod m_i)=sm_i πb(q)(mi)(x,y)σb(q)(mi)(z)r(qmodmi)=smi

成立。根据定理1,意味着 ∣ s ∣ < 2 n 2 b 2 |s|<2n^2b^2 s<2n2b2——可借助range check来强化该限制。

3.2 避免wrap-around

与2.2节思路类似,必须选择特定的参数,使得当对以上约束进行 m o d    p \mod p modp check时,wrap-around不可能发生。采用类似的分析可知,要求:

  • 4 n 2 m i b 2 ≤ p 4n^2m_ib^2\leq p 4n2mib2p

3.3 举个例子

假设“原生”field为 F p \mathbb{F}_p Fp,其中 p = 2 64 − 2 32 + 1 p=2^{64}-2^{32}+1 p=264232+1。当需要基于secp256k1 base field F q \mathbb{F}_q Fq(其中 q = 2 256 − 2 32 − 2 9 − 2 8 − 2 7 − 2 6 − 2 4 − 1 q=2^{256}-2^{32}-2^9-2^8-2^7-2^6-2^4-1 q=225623229282726241)进行乘法运算时,且 n = 16 , b = 2 16 n=16,b=2^{16} n=16b=216
为避免wrap-around,要求每个 m i m_i mi p p p自身除外——根据Remark 2)满足:

  • m i ≤ p 4 n 2 b 2 m_i\leq \frac{p}{4n^2b^2} mi4n2b2p

对其向下取整为 4194303 4194303 4194303,即约为 2 22 2^{22} 222

此外, M M M还需满足 lcm ( M ) ≥ 2 n 2 q b 2 \text{lcm}(M)\geq 2n^2qb^2 lcm(M)2n2qb2——约为 2 297 2^{297} 2297
满足以上条件的 M M M可为:

  • M = { p , 4194272 , 4194273 , 4194275 , 4294277 , 4294281 , 4194283 , 4194287 , 4194289 , 4194293 , 4194299 , 419430 } M=\{p,4194272,4194273,4194275,4294277,4294281,4194283,4194287, 4194289, 4194293, 4194299, 419430\} M={ p,4194272,4194273,4194275,4294277,4294281,4194283,4194287,4194289,4194293,4194299,419430}

为pairwise coprime set,满足以上约束。

4. Probabilistic method

不同于上面的固定模集合 M M M,可将其从某更大的pariwise coprime set M \mathbb{M} M中随机选择subset。
已知bound ∣ x y − z ∣ < b 2 n |xy-z|<b^{2n} xyz<b2n,可argue that M \mathbb{M} M中仅有小部分可整除 x y − z xy-z xyz,因此若 x y ≠ z xy\neq z xy=z,则不可能对所有 m ∈ M m\in M mM该identity都成立。
取决于具体的安全参数,可能可采用比之前方案中相对更小的 M M M集合。

4.1 举个例子

M \mathbb{M} M为pairwise coprime subset of [ 2 15 , ⋯   , 2 16 ] [2^{15},\cdots,2^{16}] [215,,216]——可发现该集合内可包含3802个整数。
x y xy xy z z z均不超过512 bits,则 x y − z xy-z xyz最多可整除34个 m i ∈ M m_i\in\mathbb{M} miM,任意subset size为35或更多时,相应的product将超过 2 512 2^{512} 2512。因此,若 x y ≠ z xy\neq z xy=z,则对于随机的 m i ∈ M m_i\in \mathbb{M} miM x y = z m o d    m i xy=z\mod m_i xy=zmodmi成立的概率最高为 32 / 3069 32/3069 32/3069

若独立sample每个 m i ∈ M m_i\in \mathbb{M} miM,则可能存在重复取值的情况,若做20次sample,提供128-bit securit: ( 32 / 3069 ) 20 < 2 − 128 (32/3069)^{20}<2^{-128} (32/3069)20<2128。若整个sample过程中避免重复情况,则19次sample就足够了,因为:
∏ i = 0 18 ( 34 − i 3069 − i ) < 2 − 128 \prod_{i=0}^{18}(\frac{34-i}{3069-i})<2^{-128} i=018(3069i34i)<2128

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/128507650
今日推荐