对于 SNARKs 发展特别重要的概念是 配对映射(pairing maps),定义如下:

设 $\Bbb{G}_1$,$\Bbb{G}_2$ 和 $\Bbb{G}_3$ 是三个交换群,那么配对映射是一个函数:

$$e(\cdot,\cdot): \Bbb{G}_1 \times \Bbb{G}_2 \to \Bbb{G}_3$$

此函数使用 $\Bbb{G}_1$ 和 $\Bbb{G}_2$ 中的元素对 $(g_1,g_2)$ ,并将其映射为 $\Bbb{G}_3$ 中的元素,在此过程中满足 双线性(bilinearity) 。双线性的含义是对于所有的 $g_1, g_1' \in \Bbb{G}_1$ 和 $g_2, g_2' \in \Bbb{G}_2$ 都满足以下等式:

$$ \begin{array}{lcr} e(g_1 \cdot g_1',g_2)= e(g_1,g_2)\cdot e(g_1',g_2) &\text{and}& e(g_1,g_2 \cdot g_2')= e(g_1,g_2)\cdot e(g_1,g_2')\ \end{array} $$

通俗地说,双线性是指在先执行群法则再进行映射,或先进行映射再在 $\Bbb{G}_3$ 中执行群法则的结果相同。

如果配对结果是 $\Bbb{G}_3$ 中的幺元,并且其中一个输入是 $\Bbb{G}_1$ 或 $\Bbb{G}_2$ 中的幺元,那么我们称配对映射是 非退化(non-degenerate) 的。更加精确的表述是,如 $e(g_1, g_2) = e_{\Bbb{G}_2}$ 成立,则必有 $g_1 = e_{\Bbb{G}_1}$ 或 $g_2 = e_{\Bbb{G}_2}$

示例 41

一个非退化配对的最基本的示例是 $\Bbb{G}_1$,$\Bbb{G}_2$ 和 $\Bbb{G}_3$ 均为具有加法的整数群 $(\Z, +)$ 。在这种情况下,以下映射是非退化配对映射:

$$ e(\cdot,\cdot): \Z \times \Z \to \Z ; (a,b)\mapsto a\cdot b $$

请注意,通过整数分配律可以推出双线性。设 $a, b, c \in \Z$ ,根据乘法分配律,等式 $e(a+b,c)=(a+b)\cdot c = a\cdot c + b\cdot c = e(a,c)+ e(b,c)$ 成立。

为证明 $e(\cdot,\cdot)$ 是非退化的,假设 $e(a, b) = 0$ 成立,那么必然可以推出 $a$ 或 $b$ 为 0

练习 42. (配对映射的算术定理)

设 $\Bbb{G}_1$,$\Bbb{G}_2$ 和 $\Bbb{G}_3$ 是同阶的有限循环群,其阶数均为 $n$ ,且存在 $e(\cdot, \cdot): \Bbb{G}_1 \times \Bbb{G}_2 \to \Bbb{G}_3$ 是一个配对映射。证明,对于给定的 $g_1 \in \Bbb{G}_1$ 和 $g_2 \in \Bbb{G}_2$ 和任意的 $a, b \in \Z_n$ ,以下等式均成立:

$$e(g_1^a, g_2^b) = e(g_1,g_2)^{a\cdot b}$$

练习 43. 对于某模数 $n$ ,已知同余类群 $(\Z_n, +)$ ,证明以下映射是一个配对映射:

$$ e(\cdot,\cdot): \Z_n \times \Z_n \to \Z_n ; (a,b)\mapsto a\cdot b $$

为什么此配对通常不是非退化的,必须对 $n$ 施加什么条件才能使配对具有非退化的性质?