From b9ffe5061f117109fe96e44c76c1d56723b985e5 Mon Sep 17 00:00:00 2001 From: Jade Xie Date: Fri, 27 Sep 2024 19:14:45 +0800 Subject: [PATCH] feat(fri): add correlated agreement --- fri/fri-proximity-gap.zh.md | 153 +++++++++++++++--- ...fri-proximity-gap-correlated-agreement.svg | 13 ++ fri/img/fri-proximity-gap-f.svg | 13 ++ fri/img/fri-proximity-gap-relation.svg | 13 ++ 4 files changed, 168 insertions(+), 24 deletions(-) create mode 100644 fri/img/fri-proximity-gap-correlated-agreement.svg create mode 100644 fri/img/fri-proximity-gap-f.svg create mode 100644 fri/img/fri-proximity-gap-relation.svg diff --git a/fri/fri-proximity-gap.zh.md b/fri/fri-proximity-gap.zh.md index 3b2f928..1408dcc 100644 --- a/fri/fri-proximity-gap.zh.md +++ b/fri/fri-proximity-gap.zh.md @@ -1,11 +1,11 @@ -# Proximity Gaps:FRI 安全性证明的核心 +# Proximity Gaps 与 Correlated Agreement:FRI 安全性证明的核心 - Jade Xie - Yu Guo -本文主要受 [Proximity Gaps & Applications to Succinct Proofs](https://www.youtube.com/watch?v=8AMiZdWA1eM) 视频中的启发,介绍 Proximity Gaps 的概念,其在 FRI 安全性证明中起了非常重要的作用。 +本文主要受 [Proximity Gaps & Applications to Succinct Proofs](https://www.youtube.com/watch?v=8AMiZdWA1eM) 视频中的启发,结合论文[BCIKS20] ,介绍 Proximity Gaps 的概念,以及与 Proximity Gaps 有着紧密联系的 Correlated Agreement 定理,其在 FRI 安全性证明中起了非常重要的作用。 -在 FRI 协议中,对于一个多项式 $f: \mathcal{D} \rightarrow \mathbb{F}_q$ ,设 $f(x) = a_0 + a_1 x + a_2 x^2 + \ldots + a_{k-1}x^{k-1}$ ,其是一个次数小于 $k$ 的多项式,将其在域 $\mathcal{D}$ 上进行求值,其中 $|\mathcal{D}| = n$ ,则 $f \in \text{RS}[\mathbb{F}_q, \mathcal{D}, k]$ 。Prover 想向 Verifier 证明 $f(x)$ 的次数确实是小于 $k$ 的。如果 $f \in \text{RS}[\mathbb{F}_q, \mathcal{D}, k]$ ,则 Verifier 输出 `accept` ,如果 $f$ 距离对应的编码空间 $\text{RS}[\mathbb{F}_q, \mathcal{D}, k]$ 有 $\delta$ 远,则输出 `reject` 。Verifier 能够获得的是关于一系列函数的 oracle ,FRI 协议想要实现的就是 Verifier 查询 oracle 尽可能的少,并能区分出 $f$ 属于上述哪一种情况。 +在 FRI 协议中,对于一个多项式 $f: \mathcal{D} \rightarrow \mathbb{F}_q$ ,设 $f(x) = a_0 + a_1 x + a_2 x^2 + \ldots + a_{k-1}x^{k-1}$ ,其是一个次数小于 $k$ 的多项式,将其在域 $\mathcal{D}$ 上进行求值,其中 $|\mathcal{D}| = n$ ,则 $f \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}, k]$ 。Prover 想向 Verifier 证明 $f(x)$ 的次数确实是小于 $k$ 的。如果 $f \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}, k]$ ,则 Verifier 输出 `accept` ,如果 $f$ 距离对应的编码空间 $\mathrm{RS}[\mathbb{F}_q, \mathcal{D}, k]$ 有 $\delta$ 远,则输出 `reject` 。Verifier 能够获得的是关于一系列函数的 oracle ,FRI 协议想要实现的就是 Verifier 查询 oracle 尽可能的少,并能区分出 $f$ 属于上述哪一种情况。 不妨设 $k-1$ 为偶数,那么 @@ -28,8 +28,8 @@ $$ 开始 Prover 想向 Verifier 证明 $f(x)$ 的次数小于 $k$ ,现在可以分解成三个子问题: -1. 证明函数 $g(x)$ 的次数小于 $k/2$ ,即 $g(x) \in \text{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ -2. 证明函数 $h(x)$ 的次数小于 $k/2$ ,即 $h(x) \in \text{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ +1. 证明函数 $g(x)$ 的次数小于 $k/2$ ,即 $g(x) \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ +2. 证明函数 $h(x)$ 的次数小于 $k/2$ ,即 $h(x) \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ 3. 证明 $f(x) = g(x^2) + x \cdot h(x^2)$ 其中 $|{D}^{(1)}| = n/2$ 。第三项是证明奇偶拆分是正确的。同样可以分别对 $g(x)$ 和 $h(x)$ 进行类似 $f(x)$ 那样奇偶项的分解,分别分解成两个次数小于 $k/4$ 的多项式,这样就要证明 4 个多项式的次数小于 $k/4$ ,直到最后分解到证明常数多项式。这个过程如下图所示,可以发现要证明的多项式在以 $2$ 的指数的形式增长。在这个过程中,为了证明奇偶拆分是没有问题的,需要发送关于所有这些多项式的 oracle 给 Verifier ,可以想象发送的多项式实在是太多了,随着 $k$ 的增加是爆炸性增长的。 @@ -38,28 +38,28 @@ $$ 既然我们的目的是证明多项式的次数小于某一个数,我们的想法是不希望对 $f(x)$ 分解问题时像上面那样分叉,分成两个多项式,我们想要下一步证明一个多项式次数小于 $k/2$ ,这样能大大减少发送的多项式。怎么做到这一点呢?我们可以向 Verifer 要一个随机数 $r \in \mathbb{F}$ ,将 $g(x)$ 和 $h(x)$ 作线性组合,得到 $g(x) + r \cdot h(x)$ ,将 $f(x)$ 的次数小于 $k$ 的问题分解为: -1. $f^{(1)}(x) = g(x) + r \cdot h(x)$ 的次数小于 $k/2$ ,即 $f^{(1)}(x) \in \text{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ +1. $f^{(1)}(x) = g(x) + r \cdot h(x)$ 的次数小于 $k/2$ ,即 $f^{(1)}(x) \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ 这时发送的多项式的图形就变成下图这样了,可以看到要发送的多项式的 oracle 大大减少了。 ![](./img/fri-proximity-gap-fold.svg) -那么现在剩下一个问题是,这样做是否和原来的方式等价呢?当然如果 Prover 是诚实的,根据 RS 编码的线性性,$g(x),h(x) \in \text{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ ,那么其线性组合之后依然是在 $\text{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ 中的。但如果 Prover 作弊呢?例如 $g(x)$ 距离编码空间 $\text{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ 有 $\delta$ 远,我们希望用随机数 $r$ 进行线性组合之后的 $g(x) + r \cdot h(x)$ 还是有 $\delta$ 这么远,这样 Verifier 能够发现 Prover 作弊。我们不希望的是折叠之后的 $g(x) + r \cdot h(x)$ 距离对应的编码空间变得更近了。Proximity Gaps 告诉我们发生这样的概率是非常小的,和中彩票一样,这样我们就可以大胆的用随机数进行折叠了。 +那么现在剩下一个问题是,这样做是否和原来的方式等价呢?当然如果 Prover 是诚实的,根据 RS 编码的线性性,$g(x),h(x) \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ ,那么其线性组合之后依然是在 $\mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ 中的。但如果 Prover 作弊呢?例如 $g(x)$ 距离编码空间 $\mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ 有 $\delta$ 远,我们希望用随机数 $r$ 进行线性组合之后的 $g(x) + r \cdot h(x)$ 还是有 $\delta$ 这么远,这样 Verifier 能够发现 Prover 作弊。我们不希望的是折叠之后的 $g(x) + r \cdot h(x)$ 距离对应的编码空间变得更近了。Proximity Gaps 告诉我们发生这样的概率是非常小的,和中彩票一样,这样我们就可以大胆的用随机数进行折叠了。 ## Proximity Gaps -上面我们考虑的是两个多项式折叠的情况,实际中我们会用到随机数一次进行多折或者对多个多项式进行 batch。这里我们不妨考虑一般的情况,假设有 $m$ 个向量 $(u_0, \ldots, u_{m-1})$ ,对每一个 $u_i \in \mathbb{F}_q^{\mathcal{D}}$ ,可以看作是 $\mathcal{D} \rightarrow \mathbb{F}$ 上的多项式,也可以看作是 $|\mathcal{D}| = n$ 维的向量。对这 $m$ 个向量进行线性组合,组成的空间我们称之为 affine space ,记作 $A = \text{span}\{u_0, \ldots, u_{m-1}\}$ 。记编码空间 $V := \text{RS}[\mathbb{F}, \mathcal{D},k]$ 。 +上面我们考虑的是两个多项式折叠的情况,实际中我们会用到随机数一次进行多折或者对多个多项式进行 batch。这里我们不妨考虑一般的情况,假设有 $m$ 个向量 $(u_0, \ldots, u_{m-1})$ ,对每一个 $u_i \in \mathbb{F}_q^{\mathcal{D}}$ ,可以看作是 $\mathcal{D} \rightarrow \mathbb{F}$ 上的多项式,也可以看作是 $|\mathcal{D}| = n$ 维的向量。对这 $m$ 个向量进行线性组合,记作 $A = \mathrm{span}\{u_0, \ldots, u_{m-1}\}$ ,这里的 $A$ 是 $\mathbb{F}^{\mathcal{D}}$ 中的 affine space ,记编码空间 $V := \mathrm{RS}[\mathbb{F}, \mathcal{D},k]$ 。 -我们关心 $A$ 中的元素与编码空间 $V$ 之间的距离关系是怎样的。如下图所示,将编码空间 $V$ 中的所有 code 表示为点,以这些点为圆心,以 $\delta$ 为半径画一个球体。$A$ 形成的空间用一个二维平面表示,如果 $A$ 中的元素距离 $V$ 中的某些 code 之间的 Hamming 距离小于等于 $\delta$ ,就说明与图中的某些 Hamming 球之间有交集,将所有的这些交集并起来就形成了图中绿色的阴影区域。换句话说,对于阴影区域 $S \subset A$ 的每一个元素 $a$ ,一定存在一个 $v \in V$ ,使得 $\Delta(a, v) \leq \delta$ 。 +我们关心 $A$ 中的元素与编码空间 $V$ 之间的距离关系是怎样的。如下图所示,将编码空间 $V$ 中的所有 code 表示为点,以这些点为圆心,以 $\delta$ 为半径画一个球体。$A$ 形成的空间用一个二维平面表示,如果 $A$ 中的元素距离 $V$ 中的某些 code 之间的相对 Hamming 距离小于等于 $\delta$ ,就说明与图中的某些 Hamming 球之间有交集,将所有的这些交集并起来就形成了图中绿色的阴影区域。换句话说,对于阴影区域 $S \subset A$ 的每一个元素 $a$ ,一定存在一个 $v \in V$ ,使得 $\Delta(a, v) \leq \delta$ 。 ![](./img/fri-proximity-gap-3D.svg) -Proximity Gaps 结论告诉我们要么 $A$ 中的所有的元素都在阴影区域里面,要么 $A$ 中只有很少的一部分元素在阴影区域中。不可能说 $A$ 中一半的元素在阴影区域,而另一半的元素不在阴影区域中。用公式表达就是只能符合下面两种情况之一: +我们将 $\mathbb{F}^{\mathcal{D}}$ 中的所有的 affine space 组成一个集合 $\mathrm{C}_{\mathrm{Affine}}$ ,Proximity Gaps 结论[BCIKS20, Theorem 1.2]告诉对于任意一个 $A \in \mathrm{C}_{\mathrm{Affine}}$ (如 $A = \mathrm{span}\{u_0, \ldots, u_{m-1}\}$),都有要么 $A$ 中的所有的元素都在阴影区域里面,要么 $A$ 中只有很少的一部分元素在阴影区域中。不可能说 $A$ 中一半的元素在阴影区域,而另一半的元素不在阴影区域中。用公式表达就是只能符合下面两种情况之一: 1. $\Pr_{a \in A}[\Delta(a, V) \le \delta] \le \epsilon$ 2. $\Pr_{a \in A}[\Delta(a, V) \le \delta] = 1$ -我们称 $\delta$ 为 proximity 参数(proximity parameter), $\epsilon$ 为误差参数(error parameter),它是一个非常小的数。 +我们称 $\delta$ 为 proximity 参数(proximity parameter), $\epsilon$ 为误差参数(error parameter),它是一个非常小的数。当然关于 $\epsilon$ 有具体表达式的,其和 $q,n,\rho,\delta$ 是相关的,即 $\epsilon = \epsilon(q,n,\rho,\delta)$ ,其中 $\rho$ 表示码率, $\rho = \frac{k}{n}$ 。 那么这里的阴影区域代表什么呢?这个结论与 FRI 的安全性分析之间有什么关系呢?下面针对诚实的 Prover 和作弊的 Prover 这两种情况来应用 Proximity Gaps 结论进行分析。 @@ -83,7 +83,7 @@ $$ \exists u_i^* \in \vec{u}, \quad \Delta(u_i^*, V) > \delta $$ -那么在 $A = \text{span}\{u_0,u_1, \ldots,u_{m-1}\}$ 中,取 $a^* = u_i^* \in A$ ,肯定有 +那么在 $A = \mathrm{span}\{u_0,u_1, \ldots,u_{m-1}\}$ 中,取 $a^* = u_i^* \in A$ ,肯定有 $$ \exists a^* \in A, \quad \Delta(a^*, V) > \delta @@ -149,29 +149,134 @@ $$ ## Correlated Agreement -Correlated Agreement 说的是如果 +前面提到的 affine space $A = \mathrm{span}\{u_0,u_1, \ldots,u_{m-1}\}$ ,为保持和 [BCIKS20, Theorem 1.6] 结论一致,在第一个向量 $u_0$ 前不使用随机数,设 $A = u_0 + \mathrm{span}\{u_1, \ldots,u_{m-1}\}$ 。 + +Correlated Agreement 定理 ([BCIKS20, Theorem 1.6]) 说的是如果 $\delta \in (0, 1 - \sqrt{\rho})$ 并且 $$ -\Pr_{a \in A}[\Delta(a, V) \le \delta] > \epsilon +\Pr_{a \in A}[\Delta(a, V) \le \delta] > \epsilon, $$ -那么存在 $\mathcal{D}' \subset \mathcal{D}$ ,以及 $v_0, \ldots, v_{m-1} \in V$ 使得 +其中,$\epsilon$ 就是 Proximity Gaps 结论中给出的 $\epsilon$ ,那么存在 $\mathcal{D}' \subset \mathcal{D}$ ,以及 $v_0, \ldots, v_{m-1} \in V$ 使得 + +1. **Density** : $\frac{|\mathcal{D}'|}{|\mathcal{D}|} \ge 1 - \delta$ , +2. **Agreement** :对任意的 $i \in \{0, \ldots, m - 1\}$ ,有 $u_i|_{\mathcal{D}'} = v_i|_{\mathcal{D}'}$ 。 + +意思是如果落入阴影区域的元素很多,占比比 Proximity Gaps 结论中的 $\epsilon$ 还大的话,那么在 $V$ 中存在码字 $v_0, \ldots, v_{m-1}$ ,会在区域 $\mathcal{D}$ 中存在一个占比很大(超过 $1 - \delta$ )的子集 $\mathcal{D}'$ ,在这里每个 $u_i$ 都能与对应的 $v_i$ 在 $\mathcal{D}'$ 上是一致的。 + +例如,Prover 想证明的是一个多项式 $f \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(0)}, k]$ ,设 $\mathcal{D}^{(0)} = \{x_1, \ldots, x_n\}$ ,计算 $\{f(x_1), \ldots, f(x_n)\}$ ,Prover 就会将这些值的 oracle 发送给 Verifier ,实际中会采用 Merkle 树的方式来实现 oracle。 + +![](./img/fri-proximity-gap-f.svg) + +将 $f$ 通过拆分得到两个多项式 $g(x)$ 与 $h(x)$ 。诚实的情况下 $g,h \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ ,其中 $|\mathcal{D}^{(1)}| = |\mathcal{D}^{(0)}| / 2 = n/2$ 。 + +Correlated Agreement 结论告诉我们,对于 $g(x)$ 与 $h(x)$ 形成的 affine space $A = \{g + z \cdot h : z \in \mathbb{F}\}$ ,如果 $A$ 中有超过 Proximity Gaps 结论中的 $\epsilon$ 的比例的元素都落入了“阴影区域”,即满足 $\Delta(a, V) \ge \delta$ ,那么就存在如下图所示的 $\mathcal{D}'$ ,以及 $\bar{g},\bar{h} \in \mathrm{RS}[\mathbb{F}_q, \mathcal{D}^{(1)}, k/2]$ 。不妨设 $\mathcal{D}' = \{\alpha_1, \alpha_2, \ldots, \alpha_i\}$ ,那么根据结论 $|\mathcal{D}'| / |\mathcal{D}^{(1)}| \ge 1 - \delta$ ,有指标 $i \ge (1 - \delta)n/2$ 。在所有的 $\mathcal{D}'$ 上,$g$ 与 $\bar{g}$ 一致,$h$ 与 $\bar{h}$ 一致,在图中用绿色表示,意思就是在这些 $\mathcal{D}'$ 集合中的点上求值,它们的值是一样的。 + +![](./img/fri-proximity-gap-correlated-agreement.svg) + +回到 $\delta$ 增大的分析,可以看到随着 $\delta$ 的增大,Correlated Agreement 结论里的第一条 **Density** 中的 $1 - \delta$ 就会变小,这使得结论中能确保的存在 $V$ 中的 $v_i$ 与 $u_i$ 一致的子集 $\mathcal{D}'$ 就变小了,使得得到的结论更弱了。 -1. $\frac{|\mathcal{D}'|}{|\mathcal{D}|} \ge 1 - \delta$ , -2. 对任意的 $i \in \{0, \ldots, m - 1\}$ ,有 $u_i|_{\mathcal{D}'} = v_i|_{\mathcal{D}'}$ 。 +在 [BCIKS20] 论文中说到, Proximity Gap 定理([BCIKS20, 定理 1.2]) 就是通过 Correlated Agreement 定理([BCIKS20, 定理 1.6]) 推导得出的,但是 Proximity Gap 定理目前还不知道能否推出 Correlated Agreement 。如果 Proximity Gap 不能推出 Correlated Agreement 定理的话,说明 Correlated Agreement 定理是一个比 Proximity Gap 定理更强的结论。那如果能推出的话,说明这两个定理就等价了。 -意思是如果落入阴影区域的元素很多,占比比 Proximity Gaps 结论中的误差参数 $\epsilon$ 还大的话,那么就会在区域 $\mathcal{D}$ 中存在一个占比很大(超过 $1 - \delta$ )的子集 $\mathcal{D}'$ ,在这里每个 $u_i$ 都能找到对应 $V$ 中的 $v_i$ 使得它们在 $\mathcal{D}'$ 上是一致的。 +![](./img/fri-proximity-gap-relation.svg) -如果 $\delta$ 增大,那么 Correlated Agreement 结论里的第一条 $1 - \delta$ 就会变小了,这使得结论中能确保的存在 $V$ 中的 $v_i$ 与 $u_i$ 一致的子集 $\mathcal{D}'$ 变小了,使得得到的结论更弱了。 +其实 Correlated Agreement 定理的版本很多,取不同的 $A$ 就能得到不同的定理,$A$ 可以是: -上面所说的 affine space $A$ 是 $\text{span}\{u_0, \ldots, u_{m-1}\}$ ,其实 $A$ 还可以是: 1. 线(lines):$A = \{u_0 + z u_1: z \in \mathbb{F}\}$ -2. 低次参数化曲线(low-degree parameterized curves):$\text{curve}(\mathbf{u}) = \left\{u_z: = \sum_{i = 0}^{m-1}z^i \cdot u_i | z \in \mathbb{F}_q \right\}$ -3. affine space:$u_0 + \text{span}\{u_1, \cdots, u_{m-1}\}$ +2. 低次参数化曲线(low-degree parameterized curves):$\mathrm{curve}(\mathbf{u}) = \left\{u_z: = \sum_{i = 0}^{m-1}z^i \cdot u_i | z \in \mathbb{F}_q \right\}$ +3. affine space:$u_0 + \mathrm{span}\{u_1, \cdots, u_{m-1}\}$ + +同时,关于 Correlated Agreement 定理的条件 + +$$ +\Pr_{a \in A}[\Delta(a, V) \le \delta] > \epsilon, +$$ + +这里我们测量的是 $a$ 与 $V$ 之间的相对 Hamming 距离,我们还可以将这个测度变得更一般化,加上权重,给一个权重函数 $\mu: \mathcal{D} \rightarrow [0,1]$ ,定义两个向量 $u$ 与 $v$ 之间的相对 *$\mu$ -agreement* 为 + +$$ +\mathrm{agree}_{\mu}(u,v) := \frac{1}{|\mathcal{D}|} \sum_{x: u(x) = v(x)} \mu(x) +$$ + +当取 $\mu \equiv 1$ 时, + +$$ +\mathrm{agree}_{\mu}(u,v) = \frac{1}{|\mathcal{D}|} \sum_{x: u(x) = v(x)} \mu(x) = \frac{1}{|\mathcal{D}|} \sum_{x: u(x) = v(x)} 1 = 1 - \Delta(u,v) +$$ +这个测度的值就完全等于用 $1$ 减去相对 Hamming 距离了。同样定义一个向量 $u$ 与编码空间 $V$ 之间的最大 agreement 为 + +$$ +\mathrm{agree}_{\mu}(u,V):= \max_{v \in V} \mathrm{agree}_{\mu}(u,v) +$$ + +将定理中的条件变为: + +$$ +\Pr_{a \in A}[\mathrm{agree}_{\mu} \le \alpha] > \epsilon, +$$ + +就会得到对应的 Weighted correlated agreement 定理(见[BCIKS20, Section 7])。可见 Correlated agreement 定理是非常灵活的。在论文[BCIKS20, Theorem 8.3]中关于 batched FRI 协议的 soundness 证明,就先定义了需要的权重函数 $\mu$ ,使用 Weighted Correlated Agreement 定理来证明,而不是用 Proximity Gap 定理来进行证明。且该定理一般都出现在反证法中,它能有力的帮我们找到编码空间的码字 $v_{i}$ ,且满足定理结论中说到的性质,能够通过推导帮助我们找到矛盾。 + +## Correlated Agreement 定理在 soundness 中的应用 + +这里简单描述下 Correlated Agreement 定理在 soundness 证明中的应用,没有那么严谨,实际的安全性分析会更加复杂。 + +前面说过 FRI 协议的 soundness 分析分为两个部分: + +1. 在batch 阶段 或者 Commit 阶段,由于随机数的选择不当,使得原本距离编码空间很远的多项式,经过折叠之后距离相应的编码空间变得更近了,也就是进入了“阴影区域”。 +2. 在 Query 阶段,由于随机进行检查,导致没抓住 Prover 作弊。 -对于上述三种情况,[BCIKS20] 中分别给出了对应的 Correlated Agreement 定理。在 [BCIKS20] 论文中说到,Correlated Agreement 定理([BCIKS20, 定理 1.6]) 可以推出 Proximity Gap 定理([BCIKS20, 定理 1.2]),但是 Proximity Gap 定理目前还不知道能否推出 Correlated Agreement 。 +Correlated Agreement 定理主要就是应用在第一部分中的概率分析,会先定义“坏”的事件 $E^{(i)}$ :折叠之前 $\Delta^*(f^{(i)}, \mathrm{RS}^{(i)}) > \delta$ ,将 $f^{(i)}$ 拆分为 $g^{(i+1)}$ 与 $h^{(i+1)}$ ,再用随机数 $r \in \mathbb{F}$ 进行折叠之后得到 $\mathrm{fold}_{r}(f^{(i)})$ ,发生了 + +$$ +\Delta(\mathrm{fold}_{r}(f^{(i)}), \mathrm{RS}^{(i+1)}) \le \delta +$$ + +这里用到了 $\Delta^*$ ,它的定义与 Hamming 距离有所区别,其联系了 FRI 的 Query 阶段的随机查询,这里就不详细展开了。假设发生一个“坏”的事件 $E^{(i)}$ 的概率不超过 $\epsilon$ ,即 + +$$ +\Pr[E^{(i)}] = \Pr_{r \in \mathbb{F}}[\Delta(\mathrm{fold}_{r}(f^{(i)}), \mathrm{RS}^{(i+1)}) \le \delta] \le \epsilon \tag{1} +$$ + +如果 FRI 协议中折叠 $d$ 次,那么发生一些“坏”的事件的概率不超过 $d \cdot \epsilon$ ,即 + +$$ +\bigcup_{i = 0}^{d} \Pr[E^{(i)}] \le d \cdot \epsilon +$$ + +这样就将第一部分的概率分析出来了,接着再假设没有这些“坏”的事件发生,来分析第二部分的概率,最终结合两部分概率就能得到 soundness 的结论。 + +现在剩下的一个关键问题是如何证明 $(1)$ 式,即证明如果 $\Delta^*(f^{(i)}, \mathrm{RS}^{(i)}) > \delta$ ,有 + +$$ +\Pr_{r \in \mathbb{F}}[\Delta(\mathrm{fold}_{r}(f^{(i)}), \mathrm{RS}^{(i+1)}) \le \delta] \le \epsilon \tag{2} +$$ + +思路就是用反证法,假设 $(2)$ 式不成立,即 + +$$ +\Pr_{r \in \mathbb{F}}[\Delta(\mathrm{fold}_{r}(f^{(i)}), \mathrm{RS}^{(i+1)}) \le \delta] > \epsilon +$$ + +这就满足了 Correlated Agreement 定理的条件了,说明此时存在 $\mathcal{D}' \subset \mathcal{D}^{(i+1)}$ ,以及 $\bar{g}^{(i+1)}, \bar{h}^{(i+1)} \in \mathrm{RS}^{(i+1)}$ 满足 + +$$ +\bar{g}^{(i+1)}|_{\mathcal{D}'} = {g}^{(i+1)}|_{\mathcal{D}'} , \quad \bar{h}^{(i+1)}|_{\mathcal{D}'} = {h}^{(i+1)}|_{\mathcal{D}'} +$$ + +并且 $|\mathcal{D}'| \ge (1-\delta) |\mathcal{D}^{(i+1)}|$ 。拿着这编码空间中的码字 $\bar{g}^{(i+1)}$ 与 $\bar{h}^{(i+1)}$ ,能得到一个多项式 $\bar{f}^{(i)}$ , + +$$ +\bar{f}^{(i)}(x) = \bar{g}^{(i+1)}(x^2) + x \cdot \bar{h}^{(i+1)}(x^2) +$$ + +由于编码的线性性,那么 $\bar{f}^{(i)}$ 肯定也是一个码字,且 $\bar{f}^{(i)} \in \mathrm{RS}^{(i)}$ ,同时有 + +$$ +\bar{f}^{(i)}|_{\mathcal{D}'} = {f}^{(i)}|_{\mathcal{D}'} +$$ -论文 [BCIKS20] 定理 8.3 就给出了 batched FRI 协议的 soundness,其中就用到了 Correlated Agreement 定理。 +由于 $|\mathcal{D}'| \ge (1-\delta) |\mathcal{D}^{(i+1)}|$ ,我们可以得到 $\Delta^*(f^{(i)}, \mathrm{RS}^{(i)}) \le \Delta^*(f^{(i)}, \bar{f}^{(i)}) \le \delta$ ,这与假设矛盾,因此 $(2)$ 式成立。 ## 总结 diff --git a/fri/img/fri-proximity-gap-correlated-agreement.svg b/fri/img/fri-proximity-gap-correlated-agreement.svg new file mode 100644 index 0000000..d738778 --- /dev/null +++ b/fri/img/fri-proximity-gap-correlated-agreement.svg @@ -0,0 +1,13 @@ + + + + + + + + agree length..............................RS codedegree < k/2 \ No newline at end of file diff --git a/fri/img/fri-proximity-gap-f.svg b/fri/img/fri-proximity-gap-f.svg new file mode 100644 index 0000000..0604990 --- /dev/null +++ b/fri/img/fri-proximity-gap-f.svg @@ -0,0 +1,13 @@ + + + + + + + + ...... \ No newline at end of file diff --git a/fri/img/fri-proximity-gap-relation.svg b/fri/img/fri-proximity-gap-relation.svg new file mode 100644 index 0000000..a369aea --- /dev/null +++ b/fri/img/fri-proximity-gap-relation.svg @@ -0,0 +1,13 @@ + + + + + + + + ?Correlated AgreementProximity Gaps \ No newline at end of file