自动生成 Sigma 协议:原理与实践
1. 通用框架概述
编译器可用于生成诚实验证者零知识(HVZK)证明协议,以证明同态下原像的知识。这些证明可以通过布尔运算符 AND 和 OR 任意组合,用于证明特定原像子集的知识,还能证明原像之间的齐次线性关系。
1.1 预备知识
- 符号表示 :$s \in_R S$ 表示从集合 $S$ 中均匀随机选择元素 $s$,$#S$ 表示集合 $S$ 的基数。
- 同态定义 :从加法群 $(G, +)$ 到乘法群 $(H, \cdot)$ 的映射 $\varphi : G \to H$ 称为同态,当且仅当对于所有 $a, b \in G$,有 $\varphi(a + b) = \varphi(a) \cdot \varphi(b)$。$\text{Im} \varphi$ 表示 $\varphi$ 的像,即 $\text{Im} \varphi = {z \in H : \exists w \in G : z = \varphi(w)}$,它是 $H$ 的一个子群。
- 零知识证明知识 :设 $R$ 是一个二元关系,$(x, w) \in R$,其中 $w$ 是见证,$x$ 是相关语言 $L_R$ 的元素。对于 $R$ 的知识错误为 $\kappa$ 的知识证明是一对交互式算法 $(P, V)$,使得任何(可能不诚实的)证明者 $P^*$ 在输入 $x$ 时能以超过 $\kappa(x)$ 的概率使验证者 $V$ 接受,则必须知道一个 $w’$,使得 $(x, w’) \in