可验证计算与NP简洁论证:从代数NILP到算术电路
1. 代数NILP的可靠性
代数NILP的可靠性是其重要特性。对于每个关系 $R \in \mathcal{R}$,任意 $x \notin L_R$ 以及任意证明矩阵 $\Pi^ \in \mathbb{F}^{k \times m}$,当 $\vec{p}(\vec{X}) \leftarrow Q_{\text{poly}}^{\text{NILP}}(R)$ 且 $t_1, \ldots, t_{\eta} \leftarrow \text{Test}(R, x)$ 时,至少存在一个索引 $i \in [\eta]$ 使得 $t_i(\vec{p}(\vec{X}), \Pi^ \cdot \vec{p}(\vec{X}))$ 在 $\mathbb{F}[\vec{X}]$ 上非零。
这种可靠性的定义是针对验证者的确定性代数查询版本。利用Schwartz(1980)和Zippel(1979)的理论,上述概念意味着验证者查询的全概率版本具有 $(d_Q \cdot d_D / |\mathbb{F}|)$ - 统计可靠性。即,在 $Q_{\text{NILP}}$ 的随机硬币选择(即 $\vec{s} \leftarrow \$ \mathbb{F}^{\mu}$ 的选择)上,对于任何 $x \notin L_R$ 和任何证明矩阵 $\Pi^ \in \mathbb{F}^{k \times m}$,有 $\Pr[D_{\text{NILP}}(\vec{p}(\vec{s}), x, \Pi^ \cdot \vec{p}(\vec{s})) = 1] \leq (d_Q \cdot d_D) / |\mathbb{F}|$。
代数NILP的概念与Bitansky等人(2013)引入的代数、输入无关、两消息线性交互式证明的概念非常相似。主要的语法区别在于,在LIP概念中,证明应该是一个单一的线性函数,即一个向量 $\vec{\pi}$,而验证者进行更多的线性查询,即查询是一个矩阵。
2. 双线性群
2.1 双线性群的基本概念
双线性群生成器 $BG(1^{\lambda})$ 输出 $(p, G_1, G_2, G_T, e)$,其中 $G_1, G_2, G_T$ 是素数阶 $q$ 的加法群,$e: G_1 \times G_2 \to G_T$ 是一个高效可计算、非退化的双线性映射。我们使用Escala等人(2013)的括号表示法,即对于 $s \in {1, 2, T}$ 和 $a \in \mathbb{Z}_q$,我们用 $[a]_s$ 表示 $a \cdot g_s \in G_s$,其中 $g_s$ 是 $G_s$ 的固定生成元。
从元素 $[a]_s \in G_s$ 和标量 $b$,可以高效地计算 $[ab]_s \in G_s$。此外,给定元素 $[a]_1 \in G_1$ 和 $[b]_2 \in G_2$,可以通过使用配对 $e([a]_1, [b]_2)$ 高效地计算 $[a \cdot b]_T$,我们将其紧凑地表示为 $[a]_1 \cdot [b]_2$。利用这些性质,可以对两个元素向量 $([\vec{a}]_1, [\vec{b}]_2)$ 上的二次多项式 $f$ 进行求值,并在目标群中得到结果,即 $[f(\vec{a}, \vec{b})]_T$。
虽然从编码 $[f(\vec{a}, \vec{b})]_T$ 中提取结果 $f(\vec{a}, \vec{b})$ 可能并不高效,但可以高效地检查结果是否为0。为了简化表示,在本文中我们使用Type - 1(也称为对称)配对,其中 $G_1 = G_2$,记为 $G$。
2.2 代数群模型
考虑一个素数阶 $p$ 的群 $G$。代数安全游戏是一个区分群 $G$ 的元素和所有不依赖于群元素的其他元素的实验。在代数游戏中执行的代数算法是这样一种算法:对于它输出的任何群元素 $h \in G$,它还会返回 $h$ 相对于所有先前接收到的元素的“代数解释”。
即,如果 $A$ 在一个代数游戏中执行,它接收一个群元素向量 $[\vec{v}]$ 作为输入并输出 $h$,那么 $A$ 还会输出一个向量 $\vec{z}_h \in \mathbb{Z}_p$ 使得 $h = \vec{z}_h^{\top} \cdot [\vec{v}]$。
在代数群模型中证明一个密码方案可归约到某个假设,意味着任何针对该方案安全性的代数敌手都可以被转换为针对该假设的代数敌手,且运行时间和成功概率具有多项式关系。
2.3 计算假设
我们定义了双线性群中离散对数假设的一个更强变体。标准离散对数问题,对于固定生成元 $g = [1]$,要求从 $[s]$ 中提取 $s$。幂离散对数问题,由Lipmaa(2012)首次形式化,是一个推广,其中敌手还会额外接收 $[s^2, \ldots, s^d]$ (对于某个 $d = \text{poly}(\lambda)$)。
-
d - PDL假设
:设 $BG$ 是一个双线性群生成器,$d \in \mathbb{N}$ 是一个正整数。我们说 $d$ - 幂离散对数假设($d$ - PDL)在 $BG$ 中成立,如果对于每个PPT $A$,有:
[
\Pr\left(
\begin{array}{c}
s^ = s \
\text{bgp} := (p, G, G_T, e) \leftarrow BG(1^{\lambda}), s \leftarrow \$ \mathbb{Z}_p \
s^ \leftarrow A(\text{bgp}, [1, s, s^2, \ldots, s^d])
\end{array}
\right) = \text{negl}(\lambda)
] -
(d, μ) - MPDL假设
:设 $BG$ 是一个双线性群生成器,$d \in \mathbb{N}$ 是一个正整数,$p_1(\vec{X}), \ldots, p_n(\vec{X}) \in \mathbb{Z}_p[\vec{X}]$ 是总次数至多为 $d$ 的 $\mu$ 元多项式。我们说 $(d, \mu)$ - 多元幂离散对数假设($(d, \mu)$ - MPDL)在 $BG$ 中成立,如果对于每个PPT $A$,有:
[
\Pr\left(
\begin{array}{c}
p^ (\vec{X}) \neq 0 \
\text{bgp} := (p, G, G_T, e) \leftarrow BG(1^{\lambda}), \vec{s} \leftarrow \$ \mathbb{Z}_p^{\mu} \
\wedge p^ (\vec{s}) = 0 \
p^* \leftarrow A(\text{bgp}, [p_1(\vec{s}), \ldots, p_n(\vec{s})])
\end{array}
\right) = \text{negl}(\lambda)
]
如果 $d$ - PDL假设在 $BG$ 中成立,那么对于任何 $\mu = \text{poly}(\lambda)$,$(d, \mu)$ - MPDL假设也成立。
3. 从代数NILP构建SNARG
3.1 SNARG的构造
设 $BG$ 是一个素数阶 $p$ 的双线性群生成器,$(P_{\text{NILP}}, Q_{\text{NILP}}, D_{\text{NILP}})$ 是一个在有限域 $\mathbb{F} := \mathbb{Z}_p$ 上针对关系族 $\mathcal{R}$ 的 $(d_Q, 2)$ - 代数NILP。我们使用对称配对给出一个针对 $\mathcal{R}$ 的SNARG的构造,具体如下:
| 算法 | 步骤 |
|---|---|
| Setup$(1^{\lambda}, R)$ | $(p, G, G_T, e) \leftarrow BG(1^{\lambda})$;$\mathbb{F} \leftarrow \mathbb{Z} p$;$\vec{q} \leftarrow \$ Q {\text{NILP}}(R)$;返回 $\text{crs} := [\vec{q}]$ |
| P$(\text{crs}, R, x, w)$ | $\Pi \leftarrow P_{\text{NILP}}(R, x, w)$;$[\vec{\alpha}] := \Pi \cdot [\vec{q}]$;返回 $\pi := [\vec{\alpha}]$ |
| V$(\text{crs}, x, \pi)$ | $t_1, \ldots, t_{\eta} \leftarrow \text{Test}(R, x)$;当且仅当 $\forall i \in [\eta] : t_i([\vec{q}], [\vec{\alpha}]) = [0]_T$ 时返回1 |
3.2 效率分析
NILP的一些效率指标会转化为SNARG的效率。CRS大小对应于NILP查询的大小:对于一个查询向量长度为 $m$ 的NILP,我们得到一个SNARG,其中CRS有 $m$ 个 $G$ 的元素。证明者的复杂度至多为 $m \cdot k$ 次群乘法。证明大小是 $k$ 个 $G$ 的元素,其中 $k$ 是NILP证明矩阵的行数。验证者的复杂度取决于NILP算法 $\text{Test}(R, x)$ 生成的 $t_i$ 多项式的稀疏性。为了使SNARG简洁,NILP必须满足 $k$、$\eta$ 以及所有 $t_i$ 多项式中非零单项式的数量至多为关系 $\mathcal{R}$ 的见证大小的多对数。
3.3 可靠性证明
定理表明,如果 $(P_{\text{NILP}}, Q_{\text{NILP}}, D_{\text{NILP}})$ 是一个 $(d_Q, 2)$ - 代数NILP,且 $BG$ 是一个双线性群生成器,其中 $(d_Q, \mu)$ - MPDL假设成立,那么上述SNARG在代数群模型中是可靠的。
证明思路是将一个针对SNARG可靠性的代数敌手 $A$ 转换为一个针对MPDL假设的代数敌手 $B$。具体步骤如下:
1. 设 $R \in \mathcal{R}$ 是 $A$ 试图破坏可靠性的关系,$(p_1(\vec{X}), \ldots, p_m(\vec{X}) \leftarrow Q_{\text{poly}}^{\text{NILP}}(R)$ 是通过确定性 $Q_{\text{poly}}^{\text{NILP}}$ 算法获得的 $m$ 个多项式。考虑MPDL假设的一个实例,其中 $p_1(\vec{X}), \ldots, p_m(\vec{X})$ 是 $\mu$ 元且总次数为 $d_Q$ 的 $m$ 个多项式。
2. 敌手 $B$ 在输入 $(p_1(\vec{s}), \ldots, p_m(\vec{s})) \in G^n$ (对于随机 $\vec{s} \leftarrow \$ \mathbb{F}^{\mu}$)上运行,设置 $\text{crs} := [\vec{q}] = [\vec{p}(\vec{s})]$,然后运行SNARG敌手 $(x, [\vec{\alpha}]) \leftarrow A(\text{crs})$。由于AGM假设,$A$ 是代数的,因此它还会返回一个矩阵 $\Pi^
$ 使得 $[\vec{\alpha}] = \Pi^
\cdot [\vec{q}]$。
3. $B$ 生成 $t_1, \ldots, t_{\eta} \leftarrow \text{Test}(R, x)$,寻找一个索引 $i \in [\eta]$ 使得 $\tau_i(\vec{X}) := t_i(\vec{p}(\vec{X}), \Pi^* \cdot \vec{p}(\vec{X})) \neq 0$,并返回 $\tau_i(\vec{X})$。
如果 $A$ 以概率 $\epsilon$ 破坏可靠性,那么 $B$ 以相同的概率破坏MPDL假设。
4. 算术电路的代数NILP构造
4.1 算术电路
算术电路是一个有向无环图,具有以下性质:
- 每个节点称为一个门。
- 入度为0的门要么是用某个变量 $X_i$ 标记的输入门,要么是用域值 $c \in \mathbb{F}$ 标记的常量门。
- 出度为0的门称为输出门。
- 入度和出度都大于0的门称为内部门。不失一般性,我们考虑入度为2的算术电路。内部门有两种类型:加法门和乘法门,分别计算两个输入的和与积。
算术电路可满足性关系 $R_C$ 定义为:对于一个有限域 $\mathbb{F}$ 和一个算术电路 $C: \mathbb{F}^{\ell_{\text{in}}} \times \mathbb{F}^{\ell_{\text{wit}}} \to \mathbb{F}^{\ell_{\text{out}}}$,$R_C: (\mathbb{F}^{\ell_{\text{in}}} \times \mathbb{F}^{\ell_{\text{out}}}) \times \mathbb{F}^{\ell_{\text{wit}}} \to { \text{true}, \text{false} }$ 是一个关系,对于输入元组 $((\vec{x}, \vec{y}), \vec{w})$,如果 $C(\vec{x}, \vec{w}) = \vec{y}$ 则返回true,否则返回false。
4.2 二次算术程序(QAP)
QAP是一个元组 $(F, n, m, \ell, v(X), \vec{a}(X), \vec{b}(X), \vec{c}(X))$,其中 $F$ 是一个有限域,$n, m, \ell \in \mathbb{N}$ 是正整数,$v(X)$ 是一个 $n$ 次多项式,$\vec{a}(X), \vec{b}(X), \vec{c}(X)$ 是三个长度为 $m$、次数小于 $n$ 的多项式向量。QAP关系 $R_{\text{QAP}}: \mathbb{F}^{\ell} \times \mathbb{F}^{m - \ell - 1} \to { \text{true}, \text{false} }$ 是一个二元关系,对于输入 $(\vec{x}, \vec{w})$,当且仅当:
[
\left( \sum_{j \in [m]} z_j \cdot a_j(X) \right) \cdot \left( \sum_{j \in [m]} z_j \cdot b_j(X) \right) = \left( \sum_{j \in [m]} z_j \cdot c_j(X) \right) \bmod v(X)
]
其中 $\vec{z} := (1, \vec{x}, \vec{w})$ 时返回true。
对于一个具有 $N$ 个乘法门的算术电路 $C: \mathbb{F}^{\ell_{\text{in}}} \times \mathbb{F}^{\ell_{\text{wit}}} \to \mathbb{F}^{\ell_{\text{out}}}$,存在一个QAP关系 $R_{\text{QAP}} := (F, n, m, \ell, v(X), \vec{a}(X), \vec{b}(X), \vec{c}(X))$,其中 $n = \ell_{\text{out}} + N$,$m = \ell_{\text{in}} + \ell_{\text{out}} + N + 1$,$\ell = \ell_{\text{in}} + \ell_{\text{out}}$,使得 $(\vec{x}, \vec{y}) \in L_{R_C}$ 当且仅当 $\vec{x}’ = (\vec{x}, \vec{y}) \in L_{R_{\text{QAP}}}$。
证明过程如下:
1. 电路的可满足性可以通过验证所有输入、输出和乘法门的赋值是否与电路一致来检查。由于输入和输出是公开的,我们需要证明存在内部门的有效赋值。设 $\vec{w}’ \in \mathbb{F}^N$ 是这样的赋值向量,并定义 $\vec{z} := (1, \vec{x}, \vec{y}, \vec{w}’) \in \mathbb{F}^m$ 为包含输入、输出和内部门的值以及常量1的向量。
2. 固定 $m = \ell_{\text{in}} + \ell_{\text{out}} + N + 1$ 和 $\ell = \ell_{\text{in}} + \ell_{\text{out}} + 1$,将集合 $[m]$ 划分为三个集合:$I_{\text{in}} = {2, \ldots, \ell_{\text{in}} + 1}$,$I_{\text{out}} = { \ell_{\text{in}} + 2, \ldots, \ell }$ 和 $I_{\text{mid}} = { \ell + 1, \ldots, m }$。
3. 所有乘法门的一致性可以检查为:$\forall j \in I_{\text{mid}} : (\vec{A}
j^{\top} \cdot \vec{z}) \cdot (\vec{B}_j^{\top} \cdot \vec{z}) = z_j$,其中 $\vec{A}_j$、$\vec{B}_j$ 是表示第 $j$ 个乘法门左右输入线的线性子电路的适当向量。
4. 对于公共输出添加约束:$\forall j \in I
{\text{out}} : (\vec{A}
j^{\top} \cdot \vec{z}) \cdot (\vec{B}_j^{\top} \cdot \vec{z}) = z_j$,其中每个 $\vec{B}_j^{\top} = (1, 0, \ldots, 0)$。
5. 将上述所有约束组合成三个矩阵 $A, B, C \in \mathbb{F}^{n \times m}$,可以得到 $C(\vec{x}, \vec{w}) = \vec{y}$ 当且仅当 $(A \cdot \vec{z}) \circ (B \cdot \vec{z}) = C \cdot \vec{z}$,这在文献中称为秩 - 1约束系统(R1CS)。
6. 通过插值将上述二次系统转换为多项式形式:
- 选择 $n$ 个不同的 $F$ 中的点构建子集 $H := {h_1, \ldots, h_n} \subset F$。
- 计算 $v(X) := \prod
{i \in [n]} (X - h_i)$,这是一个在 $H$ 上消失的 $n$ 次多项式。
- 对于任何 $j \in [m]$,构建 $a_j(X)$(分别地,$b_j(X)$,$c_j(X)$)为唯一的 $(n - 1)$ 次多项式,使得 $\forall i \in [n]$,$a_j(h_i) = A_{i,j}$(分别地,$b_j(h_i) = B_{i,j}$,$c_j(h_i) = C_{i,j}$)。
4.3 QAP的代数NILP
对于一个QAP关系 $R_{\text{QAP}} := (F, n, m, \ell, v(X), \vec{a}(X), \vec{b}(X), \vec{c}(X))$,我们描述一个 $(n, 2)$ - 代数NILP:
4.3.1 QNILP算法
$Q_{\text{NILP}}(R_{\text{QAP}}) \to \vec{q}$:算法 $Q_{\text{poly}}^{\text{NILP}}(R_{\text{QAP}})$ 生成一个8元多项式向量 $\vec{p}(X, T_a, T_b, T_a’, T_b’, T_c’, U, Y)$:
[
\begin{align
}
&(a_j(X)T_a)
{j = 1}^m (b_j(X)T_b)
{j = 1}^m (c_j(X)T_aT_b)
{j = 1}^m \cdots \
&\cdots (a_j(X)T_aT_a’)
{j = \ell + 1}^m (b_j(X)T_bT_b’)
{j = \ell + 1}^m (c_j(X)T_aT_bT_c’)
{j = \ell + 1}^m \cdots \
&\cdots (U(a_j(X)T_a + b_j(X)T_b + c_j(X)T_aT_b))
{j = \ell + 1}^m (X^i)
{i = 0}^{n - 2} \cdots \
&\cdots v(X)T_aT_b T_a’ T_b’ T_c’ Y UY
\end{align
}
]
然后采样 $s, t_a, t_b, t_a’, t_b’, t_c’, u, y \leftarrow \$ F$ 并返回查询向量 $\vec{q} = \vec{p}(s, t_a, t_b, t_a’, t_b’, t_c’, u, y)$。
4.3.2 PNILP算法
$P_{\text{NILP}}(R_{\text{QAP}}, \vec{x}, \vec{w}) \to \Pi$:设置 $\vec{z} := (1, \vec{x}^{\top}, \vec{w}^{\top}) \in \mathbb{F}^{1 \times m}$ 并计算:
[
h(X) := \sum_{i = 0}^{n - 2} h_i \cdot X^i := \left( \vec{z}^{\top} \cdot \vec{a}(X) \right) \cdot \left( \vec{z}^{\top} \cdot \vec{b}(X) \right) - \left( \vec{z}^{\top} \cdot \vec{c}(X) \right) v(X)
]
通过令 $\vec{h}$ 为 $h(X)$ 的系数向量 $(h_i)
{i = 0}^{n - 2}$,证明矩阵 $\Pi \in \mathbb{F}^{8 \times (7m + n - 4\ell + 1)}$ 构建如下:
[
\Pi =
\begin{pmatrix}
(\vec{0}^{\top}
{\ell + 1}, \vec{w}^{\top}) \
(\vec{0}^{\top}
{\ell + 1}, \vec{w}^{\top}) \
(0, 0)_0 \
(\vec{0}^{\top}
{\ell + 1}, \vec{w}^{\top}) \
\vec{w}^{\top} \
(0, 0)_0 \
\vec{w}^{\top} \
\vec{w}^{\top} \
\vec{w}^{\top} \
(\vec{h}^{\top}, \vec{0}^{\top}_6)
\end{pmatrix}
]
4.3.3 DNILP算法
$D_{\text{NILP}}(\vec{q}, \vec{x}, \vec{\pi}) \to 0, 1$:我们定义算法 $\text{Test}$ 输出五个二次多项式 $t_1, \ldots, t_5$。通过定义 $\vec{x}’ = (1, \vec{x})$ 并解析 $\vec{\pi} := (\alpha, \beta, \gamma, \alpha’, \beta’, \gamma’, \delta, \eta)$,多项式 $t_1, \ldots, t_5$ 如下:
[
\begin{align
}
t_1(\vec{q}, \vec{\pi}) &= \left( \sum_{j = 1}^{\ell} x_j’ \cdot a_j(s)t_a + \alpha \right) \cdot \left( \sum_{j = 1}^{\ell} x_j’ \cdot b_j(s)t_b + \beta \right) - \left( \sum_{j = 1}^{\ell} x_j’ \cdot c_j(s)t_at_b + \gamma \right) - \eta \cdot v(s)t_at_b \
t_2(\vec{q}, \vec{\pi}) &= \alpha \cdot t_a’ - \alpha’ \
t_3(\vec{q}, \vec{\pi}) &= \beta \cdot t_b’ - \beta’ \
t_4(\vec{q}, \vec{\pi}) &= \gamma \cdot t_c’ - \gamma’ \
t_5(\vec{q}, \vec{\pi}) &= (\alpha + \beta + \gamma) \cdot (u \cdot y) - \delta \cdot y
\end{align
}
]
4.3.4 直观解释
通过查询多项式 $\vec{p}(\vec{X})$ 和证明矩阵 $\Pi$ 的构造,一个诚实的证明答案 $\vec{\pi} := (\alpha, \beta, \gamma, \alpha’, \beta’, \gamma’, \delta, \eta)$ 满足:
[
\begin{align
}
\alpha &= \sum_{j = \ell + 1}^m z_j a_j(s)t_a, & \beta &= \sum_{j = \ell + 1}^m z_j b_j(s)t_b, & \gamma &= \sum_{j = \ell + 1}^m z_j c_j(s)t_at_b \
\alpha’ &= \sum_{j = \ell + 1}^m z_j a_j(s)t_at_a’, & \beta’ &= \sum_{j = \ell + 1}^m z_j b_j(s)t_bt_b’, & \gamma’ &= \sum_{j = \ell + 1}^m z_j c_j(s)t_at_bt_c’ \
\delta &= \sum_{j = \ell + 1}^m z_j (a_j(s)t_a + b_j(s)t_b + c_j(s)t_at_b)u, & \eta &= \sum_{i = 0}^{n - 2} h_i s^i
\end{align
}
]
五个多项式测试的目标是确保即使从查询向量的任意线性函数获得的证明答案 $(\alpha, \beta, \gamma, \alpha’, \beta’, \gamma’, \delta, \eta)$ 也具有上述确切形式。
多项式 $t_2$、$t_3$、$t_4$ 的目标是确保前三个答案 $(\alpha, \beta, \gamma)$ 分别在元素 $(a_j(X)T_a) {j = \ell + 1}^m$、$(b_j(X)T_b) {j = \ell + 1}^m$ 和 $(c_j(X)T_aT_b)_{j = \ell + 1}^m$ 的张成空间中。多项式 $t_5$ 用于确保 $(\alpha, \beta, \gamma)$ 是通过相同的线性组合获得的。第一个多项式 $t_1$ 检查QAP的可除性条件。
4.3.5 完备性和可靠性证明
该代数NILP是完备且可靠的。完备性由构造显然成立。为了证明可靠性,假设存在一个QAP关系 $R_{\text{QAP}} = (F, n, m, \ell, v(X), \vec{a}(X), \vec{b}(X), \vec{c}(X))$ 和一个向量 $\vec{x} \notin L_{R_{\text{QAP}}}$,以及任何证明者策略矩阵 $\Pi^*$。设 $\vec{p}(X, T_a, T_b, T_a’, T_b’, T_c’, U, Y)$ 是由 $Q_{\text{NILP}}(R_{\text{QAP}})$ 构建的多项式向量。
对于 $i = 1, \ldots, 5$,定义 $\tau_i(\vec{X}) := t_i(\vec{p}(\vec{X}), \Pi^* \cdot \vec{p}(X, T_a, T_b, T_c))$。假设通过反证法 $\tau_i(\vec{X})$ 都为零,我们可以推出 $\vec{x} \in L_{R_{\text{QAP}}}$,从而得到矛盾。
综上所述,我们从代数NILP的可靠性出发,介绍了双线性群的相关概念和计算假设,构建了基于代数NILP的SNARG,并详细阐述了算术电路的代数NILP构造,为可验证计算和NP简洁论证提供了一套完整的理论和方法。
graph TD;
A[代数NILP] --> B[双线性群];
B --> C[计算假设];
C --> D[SNARG构造];
D --> E[算术电路的代数NILP];
通过以上的介绍,我们可以看到整个理论体系的构建是逐步推进的,每个部分都为后续的构造和证明提供了基础。在实际应用中,这些理论可以用于构建高效、安全的可验证计算系统,确保计算结果的正确性和可靠性。
5. 代数NILP与SNARG的应用与展望
5.1 可验证计算系统的构建
在实际应用中,可验证计算系统需要保证计算结果的正确性和可靠性。利用前面介绍的代数NILP和SNARG的理论,我们可以构建这样的系统。以下是一个简单的构建流程:
1.
选择合适的关系族
:根据具体的计算任务,确定合适的关系族 $\mathcal{R}$。例如,如果是验证算术电路的计算结果,就选择相应的算术电路可满足性关系。
2.
构建代数NILP
:针对选定的关系族,构建对应的代数NILP。这可能涉及到设计查询算法 $Q_{\text{NILP}}$、证明算法 $P_{\text{NILP}}$ 和验证算法 $D_{\text{NILP}}$。
3.
生成SNARG
:利用双线性群和代数NILP,按照前面介绍的构造方法生成SNARG。这包括设置公共参考串(CRS)、证明者生成证明和验证者验证证明等步骤。
4.
部署系统
:将生成的SNARG集成到可验证计算系统中,确保系统能够正确地处理计算任务并验证结果。
5.2 效率优化方向
虽然我们已经介绍了SNARG的构造和效率分析,但在实际应用中,还需要进一步优化效率。以下是一些可能的优化方向:
| 优化方面 | 具体方法 |
| — | — |
| CRS大小 | 寻找更高效的查询算法 $Q_{\text{NILP}}$,减少查询向量的长度,从而减小CRS的大小。 |
| 证明者复杂度 | 优化证明算法 $P_{\text{NILP}}$,减少群乘法的次数,提高证明者的计算效率。 |
| 证明大小 | 设计更紧凑的证明矩阵 $\Pi$,减少证明的大小,提高传输效率。 |
| 验证者复杂度 | 优化验证算法 $D_{\text{NILP}}$,减少验证者需要处理的多项式数量和复杂度,提高验证效率。 |
5.3 安全性分析
在构建可验证计算系统时,安全性是至关重要的。我们已经证明了在 $(d_Q, \mu)$ - MPDL假设成立的情况下,SNARG在代数群模型中是可靠的。但在实际应用中,还需要考虑其他可能的攻击和安全威胁。以下是一些常见的安全性分析方法:
-
归约证明
:将系统的安全性归约到已知的困难问题,如离散对数问题、幂离散对数问题等。通过证明系统的安全性与这些困难问题等价,来保证系统的安全性。
-
模拟攻击
:设计模拟攻击算法,尝试攻击系统的安全性。如果无法找到有效的攻击方法,则说明系统在当前的安全模型下是安全的。
-
形式化验证
:使用形式化方法对系统进行验证,确保系统的安全性满足预期的要求。
5.4 未来研究方向
随着可验证计算和NP简洁论证的发展,还有许多未来的研究方向值得探索。以下是一些可能的研究方向:
-
新的计算假设
:寻找新的计算假设,以构建更高效、更安全的SNARG。例如,研究一些基于格的计算假设,可能会为可验证计算带来新的突破。
-
多轮交互证明
:目前介绍的SNARG主要是基于两轮交互的证明系统。研究多轮交互证明系统,可能会提高证明的效率和安全性。
-
实际应用场景
:探索更多的实际应用场景,如区块链、云计算等。将可验证计算和NP简洁论证应用到这些场景中,解决实际问题。
graph TD;
A[可验证计算系统构建] --> B[效率优化];
A --> C[安全性分析];
B --> D[未来研究方向];
C --> D;
6. 总结
本文围绕可验证计算和NP简洁论证展开,详细介绍了代数NILP的可靠性、双线性群的相关概念、计算假设、SNARG的构造以及算术电路的代数NILP构造。通过这些内容,我们构建了一套完整的理论和方法体系,为可验证计算系统的设计和实现提供了基础。
在实际应用中,我们可以利用这些理论和方法构建高效、安全的可验证计算系统,确保计算结果的正确性和可靠性。同时,我们也指出了效率优化、安全性分析和未来研究方向等方面的问题,为进一步的研究和发展提供了方向。
希望本文能够为读者提供一个全面的了解可验证计算和NP简洁论证的视角,激发更多的研究和创新。在未来的研究中,我们期待能够看到更多的理论突破和实际应用成果。
代数NILP与SNARG构建及应用
超级会员免费看
49

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



