3 非交互式论证的构造 (Constructions of non-interactive arguments)

我们将构造一个基于配对的 NIZK 论证,用于二次算术程序,其中证明只包含 3 个群元素。 我们分两步给出构造:首先我们为二次算术程序构造一个 NILP,然后我们观察到它也是一个分裂 NILP,并使用我们之前提出的编译技术将其转换为基于配对的 NIZK 论证。

3.1 用于二次算术程序的非交互式线性证明 (Non-interactive linear proofs for quadratic arithmetic programs)

我们现在将为一个输出以下形式的关系的二次算术程序生成器构造一个 NILP:

R=(F,aux,l,{ui(X),vi(X),wi(X)}i=0m,t(X)). \mathcal{R} = (\mathbb{F}, \text{aux}, l, \{u_i(X), v_i(X), w_i(X)\}_{i=0}^{m}, t(X)). R=(F,aux,l,{ui(X),vi(X),wi(X)}i=0m,t(X)).

该关系定义了一个由陈述 (a1,...,al)∈Fl(a_1, ..., a_l) \in \mathbb{F}^l(a1,...,al)Fl 和证据 (al+1,...,am)∈Fm−l(a_{l+1}, ..., a_m) \in \mathbb{F}^{m-l}(al+1,...,am)Fml 组成的语言,使得对于 a0=1a_0 = 1a0=1,有

∑i=0maiui(X)⋅∑i=0maivi(X)=∑i=0maiwi(X)+h(X)t(X), \sum_{i=0}^{m} a_i u_i(X) \cdot \sum_{i=0}^{m} a_i v_i(X) = \sum_{i=0}^{m} a_i w_i(X) + h(X)t(X), i=0maiui(X)i=0maivi(X)=i=0maiwi(X)+h(X)t(X),

对于某个 n−2n-2n2 阶商多项式 h(X)h(X)h(X),其中 nnnt(X)t(X)t(X) 的阶。

  • (σ\sigmaσ, τ\tauτ) ← Setup(R\mathcal{R}R): 选择 α,β,γ,δ,x←F∗\alpha, \beta, \gamma, \delta, x \leftarrow \mathbb{F}^*α,β,γ,δ,xF。 设置 τ=(α,β,γ,δ,x)\tau = (\alpha, \beta, \gamma, \delta, x)τ=(α,β,γ,δ,x) 并且

σ=(α,β,γ,δ,{xi}i=0n−1,{βui(x)+αvi(x)+wi(x)γ}i=0l,{βui(x)+αvi(x)+wi(x)δ}i=l+1m,{xit(x)δ}i=0n−2). \sigma = \left( \alpha, \beta, \gamma, \delta, \{x^i\}_{i=0}^{n-1}, \left\{ \frac{\beta u_i(x) + \alpha v_i(x) + w_i(x)}{\gamma} \right\}_{i=0}^{l}, \left\{ \frac{\beta u_i(x) + \alpha v_i(x) + w_i(x)}{\delta} \right\}_{i=l+1}^{m}, \left\{ \frac{x^i t(x)}{\delta} \right\}_{i=0}^{n-2} \right). σ=(α,β,γ,δ,{xi}i=0n1,{γβui(x)+αvi(x)+wi(x)}i=0l,{δβui(x)+αvi(x)+wi(x)}i=l+1m,{δxit(x)}i=0n2).

  • π\piπ ← Prove(R\mathcal{R}R, σ\sigmaσ, a1,...,ama_1, ..., a_ma1,...,am): 选择 r,s←Fr, s \leftarrow \mathbb{F}r,sF 并且计算一个 3×(m+2n+4)3 \times (m + 2n + 4)3×(m+2n+4) 矩阵 Π\PiΠ 使得 π=Πσ=(A,B,C)\pi = \Pi \sigma = (A, B, C)π=Πσ=(A,B,C),其中

A=α+∑i=0maiui(x)+rδ A = \alpha + \sum_{i=0}^{m} a_i u_i(x) + r\delta A=α+i=0maiui(x)+

B=β+∑i=0maivi(x)+sδ B = \beta + \sum_{i=0}^{m} a_i v_i(x) + s\delta B=β+i=0maivi(x)+

C=∑i=l+1mai(βui(x)+αvi(x)+wi(x))δ+h(x)t(x)δ+As+rB−rsδ. C = \frac{\sum_{i=l+1}^{m} a_i (\beta u_i(x) + \alpha v_i(x) + w_i(x))}{\delta} + \frac{h(x)t(x)}{\delta} + As + rB - rs\delta. C=δi=l+1mai(βui(x)+αvi(x)+wi(x))+δh(x)t(x)+As+rBrsδ.

  • 0/1 ← Vfy(R\mathcal{R}R, σ\sigmaσ, a1,...,ala_1, ..., a_la1,...,al): 计算一个二次多元多项式 ttt,使得 t(σ,π)=0t(\sigma, \pi) = 0t(σ,π)=0 对应于测试

A⋅B=α⋅β+∑i=0lai(βui(x)+αvi(x)+wi(x))γ⋅γ+C⋅δ. A \cdot B = \alpha \cdot \beta + \sum_{i=0}^{l} a_i \frac{(\beta u_i(x) + \alpha v_i(x) + w_i(x))}{\gamma} \cdot \gamma + C \cdot \delta. AB=αβ+i=0laiγ(βui(x)+αvi(x)+wi(x))γ+Cδ.

如果测试通过则接受证明。

  • π\piπ ← Sim(R\mathcal{R}R, τ\tauτ, a1,...,ala_1, ..., a_la1,...,al): 选择 A,B←FA, B \leftarrow \mathbb{F}A,BF 并且计算

C=AB−αβ−∑i=0lai(βui(x)+αvi(x)+wi(x))δ. C = \frac{AB - \alpha \beta - \sum_{i=0}^{l} a_i (\beta u_i(x) + \alpha v_i(x) + w_i(x))}{\delta}. C=δABαβi=0lai(βui(x)+αvi(x)+wi(x)).

返回 π=(A,B,C)\pi = (A, B, C)π=(A,B,C)

在正式证明这是一个 NILP 之前,让我们给出关于不同组件的一些直觉。 α\alphaαβ\betaβ 的作用是确保 AAABBBCCCa0,...,ama_0, ..., a_ma0,...,am 的选择中彼此一致。 验证方程中的乘积 A⋅BA \cdot BAB 保证 AAABBB 涉及非平凡的 α\alphaαβ\betaβ 分量。 这意味着乘积 A⋅BA \cdot BAB 涉及 α\alphaαβ\betaβ 的线性依赖性,我们稍后将证明这种线性依赖性只能通过具有一致的 a0,...,ama_0, ..., a_ma0,...,amCCC 来平衡,在所有三个变量 AAABBBCCC 中。 γ\gammaγδ\deltaδ 的作用是通过分别用 γ\gammaγδ\deltaδ 分割左边的因子,使验证方程的后两个乘积与第一个乘积无关。 这可以防止验证方程中不同乘积中预期用于不同目的的元素的混合和匹配。 最后,我们使用 rrrsss 来随机化证明以获得零知识。


密码学概念解释:

  • 商多项式 (Quotient Polynomial): 在多项式除法中,商多项式是除法的结果。 在这里,h(X)h(X)h(X) 是多项式除法的结果,其中算术电路的约束多项式被目标多项式 t(X)t(X)t(X) 除。

  • 随机化 (Randomization): 在密码学中,随机化是指在算法中引入随机性。 随机化可以用于提高算法的安全性,防止敌手利用确定性模式。 在这里,随机数 rrrsss 用于随机化证明,以实现零知识性。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐