我彷佛有了偷窃的癖好,透过纸张窥探他人的思想。但我又好像什么都没偷到,只在心头平添了几片乌云。
# dIP,IP,AM,MA
考虑两个函数f , g : { 0 , 1 } ∗ → { 0 , 1 } ∗ f,g:\{0,1\}^*\rightarrow\{0,1\}^* f , g : { 0 , 1 } ∗ → { 0 , 1 } ∗ ,记号⟨ f , g ⟩ ( x ) \langle f,g\rangle(x) ⟨ f , g ⟩ ( x ) 表示了从f f f 开始的若干次轮流计算 :
a 1 = f ( x ) a 2 = g ( x , a 1 ) . . . a k − 1 = f ( x , a 1 , . . . , a k − 2 ) a k = g ( x , a 1 , . . . , a k − 1 ) \begin{aligned}
& a_1=f(x)\\
& a_2=g(x,a_1)\\
& ...\\
& a_{k-1}=f(x,a_1,...,a_{k-2})\\
& a_k=g(x,a_1,...,a_{k-1})
\end{aligned}
a 1 = f ( x ) a 2 = g ( x , a 1 ) . . . a k − 1 = f ( x , a 1 , . . . , a k − 2 ) a k = g ( x , a 1 , . . . , a k − 1 )
而⟨ f , g ⟩ f ( x ) \langle f,g\rangle_f(x) ⟨ f , g ⟩ f ( x ) 表示,这么多组轮询后,最后一次f f f 的输出,即a k − 1 a_{k-1} a k − 1 。同理⟨ f , g ⟩ g ( x ) = a k \langle f,g\rangle_g(x)=a_k ⟨ f , g ⟩ g ( x ) = a k 表示最后一次g g g 的输出。
Definition : 我们称一个语言L ∈ L\in L ∈ dIP (deterministic interactive polynomial),当且仅当:
存在一个确定型图灵机,计算函数V : { 0 , 1 } ∗ → { 0 , 1 } ∗ V:\{0,1\}^*\rightarrow\{0,1\}^* V : { 0 , 1 } ∗ → { 0 , 1 } ∗ 。
(Completeness)∀ x ∈ L , ∃ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , ⟨ V , P ⟩ V ( x ) = 1 \forall x\in L,\exists P:\{0,1\}^*\rightarrow\{0,1\}^*,\langle V,P\rangle_V(x)=1 ∀ x ∈ L , ∃ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , ⟨ V , P ⟩ V ( x ) = 1 。
(Soundness)∀ x ∉ L , ∀ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , ⟨ V , P ⟩ V ( x ) = 0 \forall x\notin L,\forall P:\{0,1\}^*\rightarrow\{0,1\}^*,\langle V,P\rangle_V(x)=0 ∀ x ∈ / L , ∀ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , ⟨ V , P ⟩ V ( x ) = 0 。
函数P P P 完全不受约束,即我们假设 Prover 是全知全能的。
轮询次数也应该是关于∣ x ∣ |x| ∣ x ∣ 的多项式级别。
Proof:dIP ⊆ NP \textnormal{dIP}\subseteq\textnormal{NP} dIP ⊆ NP :对于L ∈ dIP L\in \textnormal{dIP} L ∈ dIP ,存在函数V , P : { 0 , 1 } ∗ → { 0 , 1 } ∗ V,P:\{0,1\}^*\rightarrow\{0,1\}^* V , P : { 0 , 1 } ∗ → { 0 , 1 } ∗ ,使得⟨ V , P ⟩ V ( x ) = 1 \langle V,P\rangle_V(x)=1 ⟨ V , P ⟩ V ( x ) = 1 。
而⟨ V , P ⟩ V ( x ) \langle V,P\rangle_V(x) ⟨ V , P ⟩ V ( x ) 有一个多项式级别的轮询计算结果( x , a 1 , a 2 , . . . , a O ( n c ) ) (x,a_1,a_2,...,a_{O(n^c)}) ( x , a 1 , a 2 , . . . , a O ( n c ) ) ,很显然他就可以作为 NP 问题的一个 certificate,用于验证。
反之NP ⊆ dIP \textnormal{NP}\subseteq \textnormal{dIP} NP ⊆ dIP 就是因为 NP 问题的 verification 实际上就是一轮的⟨ V , P ⟩ V ( x ) \langle V,P\rangle_V(x) ⟨ V , P ⟩ V ( x ) 。
故证毕
Definition : 我们称一个语言L ∈ IP L\in\textnormal{IP} L ∈ IP ,当且仅当:
存在一个随机型图灵机,计算函数V : { 0 , 1 } ∗ → { 0 , 1 } ∗ V:\{0,1\}^*\rightarrow\{0,1\}^* V : { 0 , 1 } ∗ → { 0 , 1 } ∗ 。
(Completeness)∀ x ∈ L , ∃ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , P r [ ⟨ V , P ⟩ V ( x ) = 1 ] ≥ 2 3 \forall x\in L,\exists P:\{0,1\}^*\rightarrow\{0,1\}^*,Pr[\langle V,P\rangle_V(x)=1]\geq\frac{2}{3} ∀ x ∈ L , ∃ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , P r [ ⟨ V , P ⟩ V ( x ) = 1 ] ≥ 3 2 。
(Soundness)∀ x ∉ L , ∀ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , P r [ ⟨ V , P ⟩ V ( x ) = 1 ] ≤ 1 3 \forall x\notin L,\forall P:\{0,1\}^*\rightarrow\{0,1\}^*,Pr[\langle V,P\rangle_V(x)=1]\leq\frac{1}{3} ∀ x ∈ / L , ∀ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , P r [ ⟨ V , P ⟩ V ( x ) = 1 ] ≤ 3 1 。
函数V V V 应该是随机型图灵机可计算的。也就是每一步需要有概率的转移。而P P P 无论是 deterministic 还是 probabilistic 的,都不会有影响。
轮询次数也应该是关于∣ x ∣ |x| ∣ x ∣ 的多项式级别。
我们以一个例子来说明IP \textnormal{IP} IP 这个 complexity class。考虑如下语言:
GNI = { ⟨ G 1 , G 2 ⟩ ∣ G 1 is NOT isomorphic to G 2 } \textnormal{GNI}=\{\langle G_1,G_2\rangle\;|\;G_1\textnormal{ is NOT isomorphic to }G_2\}
GNI = { ⟨ G 1 , G 2 ⟩ ∣ G 1 is NOT isomorphic to G 2 }
我们证明,GNI ∈ IP \textnormal{GNI}\in \textnormal{IP} GNI ∈ IP 。
尝试 1:
对于输入x = ⟨ G 1 , G 2 ⟩ x=\langle G_1,G_2\rangle x = ⟨ G 1 , G 2 ⟩ ,Verifier 直接把x x x 输出给 Prover。
由于 Prover 是全知全能的,我们假设它很快正确地分辨出G 1 , G 2 G_1,G_2 G 1 , G 2 是否同构,并把结果返回给 Verifier。
最后 Verifier 直接输出与 Prover 相反的结果。
这个 protocol 我认为可以帮助理解交互式证明的过程。上述 protocol 是错误的。它满足了 completeness,很显然存在一个函数P : { 0 , 1 } ∗ → { 0 , 1 } ∗ P:\{0,1\}^*\rightarrow\{0,1\}^* P : { 0 , 1 } ∗ → { 0 , 1 } ∗ ,满足P ( G 1 , G 2 ) = G 1 , G 2 P(G_1,G_2)=G_1,G_2 P ( G 1 , G 2 ) = G 1 , G 2 是否同构,存在这样一个正确的函数。但是它不满足 Soundness!很显然,如果 Prover 胡言乱语瞎输出,Verifier 最后直接输出与 Prover 相反的结果并不是一个负责任的行为,也不合理。对于随便一个 Prover,Verifier 显然最后会输出错误的结果。
尝试 2:
对于输入⟨ G 1 , G 2 ⟩ \langle G_1,G_2\rangle ⟨ G 1 , G 2 ⟩ ,Verifier 首先随机抛硬币进入两个分支:
分支 1: Verifier 随机地重新排列G 1 G_1 G 1 的顶点,得到一个与G 1 G_1 G 1 同构的图G 1 ′ G_1' G 1 ′ ,并将⟨ G 1 ′ , G 1 ⟩ \langle G_1',G_1\rangle ⟨ G 1 ′ , G 1 ⟩ 发送给 Prover。
分支 2: Verifier 随机地重新排列G 2 G_2 G 2 的顶点,得到一个与G 2 G_2 G 2 同构的图G 2 ′ G_2' G 2 ′ ,并将⟨ G 2 ′ , G 1 ⟩ \langle G_2',G_1\rangle ⟨ G 2 ′ , G 1 ⟩ 发送给 Prover。
然后 Prover 返回得到的两个图是否同构,如果同构,则回复 1,反之回复 2。
最后 Verifier 检查,如果 Prover 多次能得出和抛硬币一样的结果,那就接受。否则就拒绝。
这个 protocol 为什么是正确的呢?我们考虑 completeness 和 soundness 两方面。
对于 completeness,显然∀ x ∈ GNI \forall x\in \textnormal{GNI} ∀ x ∈ GNI ,即G 1 , G 2 G_1,G_2 G 1 , G 2 不同构时,存在一个 Prover,这个 Prover 函数就是:P ( F , G ) = F , G P(F,G)=F,G P ( F , G ) = F , G 同构。那么若投硬币进入分支 1,因为G 1 ′ ≅ G 1 G_1'\cong G_1 G 1 ′ ≅ G 1 ,故 Prover 返回 1;若投硬币进入分支 2,因为G 2 ′ ≅ G 2 ≇ G 1 G_2'\cong G2\not\cong G_1 G 2 ′ ≅ G 2 ≅ G 1 ,故 Prover 返回 2。显然,Prover 百分之一百会回复让 Verifier 接受的。
对于 soundness,显然∀ x ∉ GNI \forall x\notin \textnormal{GNI} ∀ x ∈ / GNI ,即G 1 , G 2 G_1,G_2 G 1 , G 2 同构时,对于任意一个 Prover,即使他全知全能他都无法保证让 verifier 接受。因为 prover 得到了两个同构的图,它无法进行任何辨别。所以实际上,如果是均匀随机的话,会导致P r [ Verifier accept ] = 1 2 Pr[\textnormal{Verifier accept}]=\frac{1}{2} P r [ Verifier accept ] = 2 1 。我们只需要重复进行多轮问询,一旦有一轮 Prover 回复了错误的答案就直接拒绝,否则运行k k k 轮 Prover 回答都正确才接受,这样P r [ Verifier accept ] = 1 − 1 2 k Pr[\textnormal{Verifier accept}]=1-\frac{1}{2}^k P r [ Verifier accept ] = 1 − 2 1 k 就会很小了。
需要注意,还有一个IP ∗ \textnormal{IP}^* IP ∗ ,就是在IP \textnormal{IP} IP 的基础上,要求有 perfect soundness ,即:
∀ x ∉ L , ∀ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , P r [ ⟨ V , P ⟩ V ( x ) = 1 ] = 0 \forall x\notin L,\forall P:\{0,1\}^*\rightarrow\{0,1\}^*,Pr[\langle V,P\rangle_V(x)=1]=0
∀ x ∈ / L , ∀ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , P r [ ⟨ V , P ⟩ V ( x ) = 1 ] = 0
这其实会影响 complexity class 的大小。但是 perfect completeness ,即:
∀ x ∈ L , ∃ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , P r [ ⟨ V , P ⟩ V ( x ) = 1 ] = 1 \forall x\in L,\exists P:\{0,1\}^*\rightarrow\{0,1\}^*,Pr[\langle V,P\rangle_V(x)=1]=1
∀ x ∈ L , ∃ P : { 0 , 1 } ∗ → { 0 , 1 } ∗ , P r [ ⟨ V , P ⟩ V ( x ) = 1 ] = 1
却不会影响!
Theorem : IP = PSPACE \textnormal{IP}=\textnormal{PSPACE} IP = PSPACE 。
事实上,我们可以给定一个 verifier V V V 和一个输入x x x ,我们都可以在O ( p o l y ( ∣ x ∣ ) ) O(poly(|x|)) O ( p o l y ( ∣ x ∣ ) ) 的空间内,寻找到一个最优的 prover,使得 verifier accept 的概率最大。
Definition : 我们称语言L ∈ AM [ k ] L\in\textnormal{AM}[k] L ∈ AM [ k ] ,如果对于IP \textnormal{IP} IP 中讨论的 Interactive Proof 轮询计算过程作以下修改:
Verifier 需要在第一条输出就告诉 Prover 一个长为poly ( ∣ x ∣ ) \textnormal{poly}(|x|) poly ( ∣ x ∣ ) 的 string,包含了 Verifier 此后所有随机的选择。即可以理解为 verifier 一开始就抛了poly ( ∣ x ∣ ) \textnormal{poly}(|x|) poly ( ∣ x ∣ ) 次硬币,然后每次问询都会根据相应次抛硬币的结果进行随机选择。而且 Verifier 在一开始就把所有抛硬币的结果告诉了 Prover。
这种形式的证明我们称之为 Arthur Merlin Protocol 或者 Public Coin Proof 。
特别地,当我们提到AM \textnormal{AM} AM 时,往往指的是AM [ 2 ] \textnormal{AM}[2] AM [ 2 ] 。即 Verifier 先根据 input send a string,然后 Prover respond a string,然后 Verifier 就需要给出 0/1 判定结果了。
更特别地,当我们提到MA \textnormal{MA} MA 时,指的就是 Prover 先 send 的AM [ 2 ] \textnormal{AM}[2] AM [ 2 ] 。即 Prover 先根据 input send a string,然后 Verifier 掷硬币,并且根据硬币结果、Prover 的 string、input 直接判定结果。
注意,上述证明次数、函数的计算都应该是多项式级别的。
注意,上述也是基于 IP 进行定义,只要求判定结果在概率意义下正确。
其实我们可以写出一个等价的、更数学和形式化的定义:
我们称语言L ∈ MA L\in\textnormal{MA} L ∈ MA 当且仅当存在一个概率型图灵机M M M ,M M M 根据y y y 的取值进行概率选择,使得:
∀ x ∈ L , ∃ z ∈ { 0 , 1 } O ( ∣ x ∣ c ) , P r y ∈ { 0 , 1 } O ( ∣ x ∣ c ) [ M ( x , y , z ) = 1 ] ≥ 2 3 ∀ x ∉ L , ∀ z ∈ { 0 , 1 } O ( ∣ x ∣ c ) , P r y ∈ { 0 , 1 } O ( ∣ x ∣ c ) [ M ( x , y , z ) = 1 ] ≤ 1 3 \begin{aligned}
& \forall x\in L,\exists z\in\{0,1\}^{O(|x|^c)},Pr_{y\in\{0,1\}^{O(|x|^c)}}[M(x,y,z)=1]\geq\frac{2}{3}\\
& \forall x\notin L,\forall z\in\{0,1\}^{O(|x|^c)},Pr_{y\in\{0,1\}^{O(|x|^c)}}[M(x,y,z)=1]\leq\frac{1}{3}
\end{aligned}
∀ x ∈ L , ∃ z ∈ { 0 , 1 } O ( ∣ x ∣ c ) , P r y ∈ { 0 , 1 } O ( ∣ x ∣ c ) [ M ( x , y , z ) = 1 ] ≥ 3 2 ∀ x ∈ / L , ∀ z ∈ { 0 , 1 } O ( ∣ x ∣ c ) , P r y ∈ { 0 , 1 } O ( ∣ x ∣ c ) [ M ( x , y , z ) = 1 ] ≤ 3 1
注意z z z 是 Prover Merlin 首先根据输入 send 给 Verifier Arthur 的 string。
然后 Verifier Arthur 再根据掷硬币结果y y y ,输入x x x 以及 Prover 的 string z z z 进行判定。
我们称语言L ∈ AM L\in\textnormal{AM} L ∈ AM 当且仅当存在一个概率型图灵机M M M ,M M M 根据y y y 的取值进行概率选择,使得:
∀ x ∈ L , P r y ∈ { 0 , 1 } O ( ∣ x ∣ c ) [ ∃ z ∈ { 0 , 1 } O ( ∣ x ∣ c ) , M ( x , y , z ) = 1 ] ≥ 2 3 ∀ x ∉ L , P r y ∈ { 0 , 1 } O ( ∣ x ∣ c ) [ ∀ z ∈ { 0 , 1 } O ( ∣ x ∣ c ) , M ( x , y , z ) = 1 ] ≤ 1 3 \begin{aligned}
& \forall x\in L,Pr_{y\in\{0,1\}^{O(|x|^c)}}[\exists z\in\{0,1\}^{O(|x|^c)},M(x,y,z)=1]\geq\frac{2}{3}\\
& \forall x\notin L,Pr_{y\in\{0,1\}^{O(|x|^c)}}[\forall z\in\{0,1\}^{O(|x|^c)},M(x,y,z)=1]\leq\frac{1}{3}
\end{aligned}
∀ x ∈ L , P r y ∈ { 0 , 1 } O ( ∣ x ∣ c ) [ ∃ z ∈ { 0 , 1 } O ( ∣ x ∣ c ) , M ( x , y , z ) = 1 ] ≥ 3 2 ∀ x ∈ / L , P r y ∈ { 0 , 1 } O ( ∣ x ∣ c ) [ ∀ z ∈ { 0 , 1 } O ( ∣ x ∣ c ) , M ( x , y , z ) = 1 ] ≤ 3 1
注意y y y 此时是 Verifier Arthur 先决定掷硬币结果,然后告诉 Prover Merlin,然后 Merlin 根据输入x x x 和掷硬币结果y y y 计算出一个z z z 返回给 Verifier Arthur。
显然地,我们有:
∀ k , AM [ k ] ⊆ IP [ k ] \forall k,\textnormal{AM}[k]\subseteq \textnormal{IP}[k]
∀ k , AM [ k ] ⊆ IP [ k ]
因为AM \textnormal{AM} AM 就是在IP \textnormal{IP} IP 的基础上,要求第一步附加了掷硬币结果。
# Protocol: Goldwasser-Sipser Set Lowerbound
考虑这样一个问题,假设给定常数K K K 和一个集合S S S ,我们希望:
∣ S ∣ ≥ K |S|\geq K ∣ S ∣ ≥ K 时,Verifier accept。
∣ S ∣ ≤ K 2 |S|\leq \frac{K}{2} ∣ S ∣ ≤ 2 K 时,Verifier reject。
其余情况 Verifier 作出什么反应都行。
可以看作下面这个语言:
L K = { S ∣ ∣ S ∣ ≥ K } L_K=\{S\;|\;|S|\geq K\}
L K = { S ∣ ∣ S ∣ ≥ K }
的判定问题,而且我们放松了一点条件,就是当∣ S ∣ ≤ K 2 |S|\leq\frac{K}{2} ∣ S ∣ ≤ 2 K ,即S S S 离属于这个语言很远时,才要求很高概率拒绝。
注意:这里的集合S S S 往往是用描述性语刻画的。譬如S = S= S = "大于 3 的数",而不是一一列举集合内的元素。这样的集合有一个特点:集合本身可能很大,但是描述的语言很短,而且判断一个元素是否在集合中很容易。
记一个常数k k k ,使得2 k − 2 ≤ K ≤ 2 k − 1 2^{k-2}\leq K\leq 2^{k-1} 2 k − 2 ≤ K ≤ 2 k − 1 ,即k = ⌈ log 2 K ⌉ + 1 k=\lceil\log_2K\rceil+1 k = ⌈ log 2 K ⌉ + 1 。然后 protocol 描述如下:
Verifier 随机选择一个 pairwise independent hash function h : { 0 , 1 } m → { 0 , 1 } k h:\{0,1\}^m\rightarrow \{0,1\}^k h : { 0 , 1 } m → { 0 , 1 } k 和随机一个y ∈ { 0 , 1 } k y\in\{0,1\}^k y ∈ { 0 , 1 } k ,并将h , y h,y h , y 发送给 Prover。
Prover 寻找一个x ∈ S x\in S x ∈ S ,使得h ( x ) = y h(x)=y h ( x ) = y ,并将x x x 发送给 Verifier。
Verifier 验证是否h ( x ) = y h(x)=y h ( x ) = y ,如果是则 accept,否则 reject。
其中,pairwise independent hash function 描述如下:
Definition : Let H n , k \mathcal{H}_{n,k} H n , k be a collection of functions from { 0 , 1 } n \{0,1\}^n { 0 , 1 } n to { 0 , 1 } k \{0, 1\}^k { 0 , 1 } k . We say that H n , k \mathcal{H}_{n,k} H n , k is pairwise independent if for every x , x ′ ∈ { 0 , 1 } n x,x'\in\{0,1\}^n x , x ′ ∈ { 0 , 1 } n with x ≠ x ′ x\neq x' x = x ′ and for every y , y ′ ∈ { 0 , 1 } k y,y'\in\{0,1\}^k y , y ′ ∈ { 0 , 1 } k ,
P r h ∈ H n , k [ h ( x ) = y ∧ h ( x ′ ) = y ′ ] = 2 − 2 k Pr_{h\in \mathcal{H}_{n,k}}[h(x)=y\wedge h(x')=y']=2^{-2k}
P r h ∈ H n , k [ h ( x ) = y ∧ h ( x ′ ) = y ′ ] = 2 − 2 k
这个定义其实说的是,对于x , x ′ ∈ { 0 , 1 } n , x ≠ x ′ x,x'\in\{0,1\}^n,x\neq x' x , x ′ ∈ { 0 , 1 } n , x = x ′ ,我们均匀随机选择一个h h h 的话,会使得二元组( h ( x ) , h ( x ′ ) ) (h(x),h(x')) ( h ( x ) , h ( x ′ ) ) 也是{ 0 , 1 } k × { 0 , 1 } k \{0,1\}^k\times\{0,1\}^k { 0 , 1 } k × { 0 , 1 } k 上的均匀分布。一个 pairwise independent function collections 的简单构造就是利用有限域GF ( 2 n ) \textnormal{GF}(2^n) GF ( 2 n ) :
H n , n = { h a , b } , a , b ∈ GF ( 2 n ) h a , b ( x ) = a x + b \mathcal{H}_{n,n}=\{h_{a,b}\},a,b\in \textnormal{GF}(2^n)\\
h_{a,b}(x)=ax+b
H n , n = { h a , b } , a , b ∈ GF ( 2 n ) h a , b ( x ) = a x + b
我们简单证明下这个确实是 pairwise independent 的:
∵ h ( x ) = y ∧ h ( x ′ ) = y ′ ∴ { a ⋅ x + b = y a ⋅ x ′ + b = y ′ ∴ { a = ( y − y ′ ) ⋅ ( x − x ′ ) − 1 b = y − a ⋅ x \begin{aligned}
& \because h(x)=y\wedge h(x')=y'\\
& \therefore \begin{cases}a\cdot x+b=y\\a\cdot x'+b=y'\end{cases}\\
& \therefore \begin{cases}a=(y-y')\cdot(x-x')^{-1}\\b=y-a\cdot x\end{cases}
\end{aligned}
∵ h ( x ) = y ∧ h ( x ′ ) = y ′ ∴ { a ⋅ x + b = y a ⋅ x ′ + b = y ′ ∴ { a = ( y − y ′ ) ⋅ ( x − x ′ ) − 1 b = y − a ⋅ x
所以对于给定的x , x ′ , y , y ′ x,x',y,y' x , x ′ , y , y ′ ,均匀随机选择一个h a , b ∈ H n , n h_{a,b}\in\mathcal{H}_{n,n} h a , b ∈ H n , n ,选到满足上述条件的a , b a,b a , b 的概率为1 2 n ⋅ 1 2 n = 2 − 2 n \frac{1}{2^n}\cdot\frac{1}{2^n}=2^{-2n} 2 n 1 ⋅ 2 n 1 = 2 − 2 n 。
下面我们回到 Protocol: Goldwasser-Sipser Set Lowerbound 正确性的讨论。
Soundness 是简单的。当∣ S ∣ ≤ K 2 |S|\leq\frac{K}{2} ∣ S ∣ ≤ 2 K ,会有∣ h ( S ) ∣ ≤ K 2 |h(S)|\leq\frac{K}{2} ∣ h ( S ) ∣ ≤ 2 K 。所以从{ 0 , 1 } k \{0,1\}^k { 0 , 1 } k 中均匀随机选择一个y y y ,那么y ∈ h ( S ) y\in h(S) y ∈ h ( S ) 的概率就最多是K 2 k + 1 \frac{K}{2^{k+1}} 2 k + 1 K 。故存在x x x ,使得h ( x ) = y h(x)=y h ( x ) = y 的概率也最多是K 2 k + 1 \frac{K}{2^{k+1}} 2 k + 1 K ,即 Verifier accept 的概率也不超过K 2 k + 1 ≤ 1 4 \frac{K}{2^{k+1}}\leq\frac{1}{4} 2 k + 1 K ≤ 4 1 。
Completeness 需要一定证明。首先,不失一般性地,我们假设K ≤ ∣ S ∣ ≤ 2 k − 1 K\leq |S|\leq 2^{k-1} K ≤ ∣ S ∣ ≤ 2 k − 1 。因为当∣ S ∣ > 2 k − 1 |S|>2^{k-1} ∣ S ∣ > 2 k − 1 时,Verifier 可以找到一个子集T ⊆ S T\subseteq S T ⊆ S 并且∣ T ∣ ≤ 2 k − 1 |T|\leq 2^{k-1} ∣ T ∣ ≤ 2 k − 1 。然后如果 Prover 能让 Verifier 相信∣ T ∣ ≥ K |T|\geq K ∣ T ∣ ≥ K ,那么 Verifier 也就应该相信∣ S ∣ ≥ K |S|\geq K ∣ S ∣ ≥ K 了。
我们证明,对于每一个y ∈ { 0 , 1 } k y\in\{0,1\}^k y ∈ { 0 , 1 } k ,都有:
Pr h [ ∃ x ∈ S , h ( x ) = y ] ≥ 3 4 ∣ S ∣ 2 k \textnormal{Pr}_h[\exists x\in S,h(x)=y]\geq\frac{3}{4}\frac{|S|}{2^k}
Pr h [ ∃ x ∈ S , h ( x ) = y ] ≥ 4 3 2 k ∣ S ∣
根据抽屉原理,其实有:
Pr h [ ∃ x ∈ S , h ( x ) = y ] = Pr h [ ⋁ x ∈ S h ( x ) = y ] ≥ ∑ x ∈ S Pr h [ h ( x ) = y ] − 1 2 ∑ x ≠ x ′ ∈ S Pr h [ h ( x ) = y ∧ h ( x ′ ) = y ] = ∣ S ∣ ⋅ 1 2 k − ∣ S ∣ ( ∣ S ∣ − 1 ) 2 ⋅ 1 2 2 k > ∣ S ∣ 2 k ( 1 − ∣ S ∣ 2 k + 1 ) > ∣ S ∣ 2 k ( 1 − 2 k − 1 2 k + 1 ) = 3 4 ∣ S ∣ 2 k \begin{aligned}
\textnormal{Pr}_h[\exists x\in S,h(x)=y] &=\textnormal{Pr}_h[\bigvee_{x\in S}h(x)=y]\\
&\geq\sum_{x\in S}\textnormal{Pr}_h[h(x)=y]-\frac{1}{2}\sum_{x\neq x'\in S}\textnormal{Pr}_h[h(x)=y\wedge h(x')=y]\\
&=|S|\cdot\frac{1}{2^k}-\frac{|S|(|S|-1)}{2}\cdot\frac{1}{2^{2k}}\\
&>\frac{|S|}{2^k}(1-\frac{|S|}{2^{k+1}})\\
&>\frac{|S|}{2^{k}}(1-\frac{2^{k-1}}{2^{k+1}})\\
&=\frac{3}{4}\frac{|S|}{2^k}
\end{aligned}
Pr h [ ∃ x ∈ S , h ( x ) = y ] = Pr h [ x ∈ S ⋁ h ( x ) = y ] ≥ x ∈ S ∑ Pr h [ h ( x ) = y ] − 2 1 x = x ′ ∈ S ∑ Pr h [ h ( x ) = y ∧ h ( x ′ ) = y ] = ∣ S ∣ ⋅ 2 k 1 − 2 ∣ S ∣ ( ∣ S ∣ − 1 ) ⋅ 2 2 k 1 > 2 k ∣ S ∣ ( 1 − 2 k + 1 ∣ S ∣ ) > 2 k ∣ S ∣ ( 1 − 2 k + 1 2 k − 1 ) = 4 3 2 k ∣ S ∣
注意,其中第三行是因为,给定一个x ∈ S x\in S x ∈ S 和y ∈ { 0 , 1 } k y\in\{0,1\}^k y ∈ { 0 , 1 } k ,那么随机选择一个h h h 使得h ( x ) = y h(x)=y h ( x ) = y 的概率为2 − k 2^{-k} 2 − k ,实际上是一个 sound 的(和随机无法分辨的)hash function 就有给定x ∈ A , y ∈ B , Pr h [ h ( x ) = y ] = 1 ∣ B ∣ x\in A,y\in B,\textnormal{Pr}_h[h(x)=y]=\frac{1}{|B|} x ∈ A , y ∈ B , Pr h [ h ( x ) = y ] = ∣ B ∣ 1 ,而且 k-wise independent 其实就是要求:
Pr h [ h ( x 1 ) = y 1 ∧ . . . ∧ h ( x n ) = y n ] = ∏ i = 1 n Pr h [ h ( x i ) = y i ] = 1 ∣ B ∣ n \textnormal{Pr}_h[h(x_1)=y_1\wedge ...\wedge h(x_n)=y_n]=\prod_{i=1}^n\textnormal{Pr}_h[h(x_i)=y_i]=\frac{1}{|B|^n}
Pr h [ h ( x 1 ) = y 1 ∧ . . . ∧ h ( x n ) = y n ] = i = 1 ∏ n Pr h [ h ( x i ) = y i ] = ∣ B ∣ n 1
此时因为∣ S ∣ ≥ K |S|\geq K ∣ S ∣ ≥ K ,所以:
3 4 ∣ S ∣ 2 k ≥ 3 K 2 k + 2 \frac{3}{4}\frac{|S|}{2^k}\geq \frac{3K}{2^{k+2}}
4 3 2 k ∣ S ∣ ≥ 2 k + 2 3 K
下面我们思考一个事情。令p = K 2 k p=\frac{K}{2^k} p = 2 k K ,那么有:
当∣ S ∣ ≤ K 2 |S|\leq\frac{K}{2} ∣ S ∣ ≤ 2 K 时,对于任意 Prover,一轮交互下来,Verifier 只随机选了一个函数,Verifier accept 的概率不超过1 2 p \frac{1}{2}p 2 1 p 。
当∣ S ∣ ≥ K |S|\geq K ∣ S ∣ ≥ K 时,存在一个 Prover,一轮交互下来,Verifier 只随机选了一个函数,Verifier accept 的概率大于等于3 4 p \frac{3}{4}p 4 3 p 。
我们希望通过一次选择M M M 个函数,把这个概率差距拉大。我们考虑如下 protocol:
Verifier 随机选择M M M 个 pairwise independent hash function h 1 , . . . , h M : { 0 , 1 } m → { 0 , 1 } k h_1,...,h_M:\{0,1\}^m\rightarrow \{0,1\}^k h 1 , . . . , h M : { 0 , 1 } m → { 0 , 1 } k 和随机M M M 个y 1 , . . . , y M ∈ { 0 , 1 } k y_1,...,y_M\in\{0,1\}^k y 1 , . . . , y M ∈ { 0 , 1 } k ,并将h 1 , . . . , h M , y 1 , . . . , y M h_1,...,h_M,y_1,...,y_M h 1 , . . . , h M , y 1 , . . . , y M 发送给 Prover。
Prover 寻找M M M 个x 1 , . . . , x M ∈ S x_1,...,x_M\in S x 1 , . . . , x M ∈ S ,使得∀ i , h ( x i ) = y i \forall i,h(x_i)=y_i ∀ i , h ( x i ) = y i ,并将x 1 , . . . , x M x_1,...,x_M x 1 , . . . , x M 发送给 Verifier。
Verifier 验证,若有3 M p 4 \frac{3Mp}{4} 4 3 M p 个以上的满足h ( x i ) = y i h(x_i)=y_i h ( x i ) = y i ,则接受。否则如果有小于等于M p 2 \frac{Mp}{2} 2 M p 个h ( x i ) = y i h(x_i)=y_i h ( x i ) = y i 的话,就拒绝。
我们可以通过选择M M M ,使得:
∣ S ∣ ≥ K |S|\geq K ∣ S ∣ ≥ K 且没有3 M p 4 \frac{3Mp}{4} 4 3 M p 个以上的满足,这件事概率很小。
∣ S ∣ ≤ K 2 |S|\leq\frac{K}{2} ∣ S ∣ ≤ 2 K 且有M p 2 \frac{Mp}{2} 2 M p 个以上的满足,这件事概率也很小。
随着M M M 的增加,那么 1. 和 2. 的概率将越变越小。
# 一些结论
coNP ⊆ IP ∀ k , AM [ k ] ⊆ IP [ k ] ⊆ A M [ k + 2 ] ∀ k ≥ 2 , AM [ k ] = AM [ 2 ] \begin{aligned}
& \textnormal{coNP}\subseteq\textnormal{IP}\\
& \forall k,\textnormal{AM}[k]\subseteq \textnormal{IP}[k]\subseteq AM[k+2]\\
& \forall k\geq 2,\textnormal{AM}[k]=\textnormal{AM}[2]
\end{aligned}
coNP ⊆ IP ∀ k , AM [ k ] ⊆ IP [ k ] ⊆ A M [ k + 2 ] ∀ k ≥ 2 , AM [ k ] = AM [ 2 ]