文章目录
- ZKP for NP
- Blum's ZK PoK for HC
- Completeness
- Soundness
- Zero Knowledge
- WI of n-parallelized versions
- Proof of Knowledge
- Special Soundness
 
- Constant Round ZKP
- FLS Paradigm
- GK Paradigm
 
在 零知识证明:安全定义 中介绍了 ZKP 的一些安全性定义,现在我们看一下具体构造以及它的安全性证明思路。
ZKP for NP
为了得到任意 N P NP NP 语言 L L L 的零知识证明系统,我们只需构造一个关于 N P C NPC NPC 语言的零知识证明系统(汉密尔顿图 H C HC HC 的 Blum 协议),然后将语言 L L L 归约到 H C HC HC 上即可。
有三种常见的归约方法,

其中 Cook 归约在安全性证明游戏中最常用。现在我们用的是 Karp-Levin 归约,将两个语言的 instance 以及对应 witness 之间做映射:

Blum’s ZK PoK for HC
Blum’s ZKP for HC 的思路是:为了零知识地证明 ∃ H , H ⊆ G \exists H, H \subseteq G ∃H,H⊆G, P P P 随机选择一个图同构 π \pi π,计算出 H ′ ⊆ G ′ H' \subseteq G' H′⊆G′,然后承诺 G ′ G' G′,让 V V V 发起随机挑战 e e e,根据 e = 0 / 1 e=0/1 e=0/1 要么证明 G ≅ G ′ G \cong G' G≅G′ 要么证明 H ′ ⊆ G ′ H' \subseteq G' H′⊆G′

注意,当 e = 1 e=1 e=1 时我们仅仅 Open 圈 H ′ H' H′ 所对应的承诺,绝对不可以 Open 整个图 G ′ G' G′ 并指出它的 H ′ H' H′,这样的话只要 V ∗ V^* V∗ 求解了图同构问题(我们认为 GI 应该属于 P P P 类)就立即获得了知识 H = π − 1 ( H ′ ) H = \pi^{-1}(H') H=π−1(H′)。因此,我们应当对于图 G G G 的每条边分别承诺:考虑图的邻接矩阵 [ c i j ] n × n ∈ { 0 , 1 } n × n [c_{ij}]_{n \times n} \in \{0,1\}^{n \times n} [cij]n×n∈{0,1}n×n,每个元素代表对应节点之间是否有边。对每个矩阵元素分别执行比特承诺。

当然, V V V 在检查两个图 G ′ , G G',G G′,G 或 H ′ , G ′ H',G' H′,G′ 之间关系之前,需要先检查 Open 是否正确。承诺方案的存在性等价于零知识证明协议的存在性。
Completeness
对于完备性,我们证明  
     
      
       
       
         ∀ 
        
       
         G 
        
       
         ∈ 
        
       
         H 
        
       
         C 
        
       
      
        \forall G \in HC 
       
      
    ∀G∈HC,
  
      
       
        
         
          
           
            
            
              P 
             
            
              r 
             
            
              [ 
             
            
              ⟨ 
             
            
              P 
             
            
              ( 
             
            
              H 
             
            
              ) 
             
            
              , 
             
            
              V 
             
            
              ⟩ 
             
            
              ( 
             
            
              G 
             
            
              ) 
             
            
              = 
             
            
              1 
             
            
              ] 
             
            
           
          
          
           
            
             
            
              = 
             
            
              P 
             
            
              r 
             
            
              [ 
             
            
              ⟨ 
             
            
              P 
             
            
              ( 
             
            
              H 
             
            
              ) 
             
            
              , 
             
            
              V 
             
            
              ⟩ 
             
            
              ( 
             
            
              G 
             
            
              ) 
             
            
              = 
             
            
              1 
             
            
              , 
             
            
              e 
             
            
              = 
             
            
              0 
             
            
              ] 
             
            
              + 
             
            
              P 
             
            
              r 
             
            
              [ 
             
            
              ⟨ 
             
            
              P 
             
            
              ( 
             
            
              H 
             
            
              ) 
             
            
              , 
             
            
              V 
             
            
              ⟩ 
             
            
              ( 
             
            
              G 
             
            
              ) 
             
            
              = 
             
            
              1 
             
            
              , 
             
            
              e 
             
            
              = 
             
            
              1 
             
            
              ] 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
             
               2 
              
             
            
              ( 
             
            
              P 
             
            
              r 
             
            
              [ 
             
             
             
               G 
              
             
               ′ 
              
             
            
              = 
             
            
              π 
             
            
              ( 
             
            
              G 
             
            
              ) 
             
            
              ∣ 
             
            
              e 
             
            
              = 
             
            
              0 
             
            
              ] 
             
            
              + 
             
            
              P 
             
            
              r 
             
            
              [ 
             
             
             
               H 
              
             
               ′ 
              
             
            
               is a cycle 
             
            
              ∣ 
             
            
              e 
             
            
              = 
             
            
              1 
             
            
              ] 
             
            
              ) 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
             
               2 
              
             
            
              ( 
             
            
              1 
             
            
              + 
             
            
              1 
             
            
              ) 
             
            
              = 
             
            
              1 
             
            
           
          
         
        
       
         \begin{aligned} Pr[\lang P(H),V \rang(G)=1] &= Pr[\lang P(H),V \rang(G)=1,e=0] + Pr[\lang P(H),V \rang(G)=1,e=1]\\ &= \dfrac{1}{2}(Pr[G'=\pi(G)|e=0] + Pr[H'\text{ is a cycle}|e=1])\\ &= \dfrac{1}{2}(1 + 1) = 1 \end{aligned} 
        
       
     Pr[⟨P(H),V⟩(G)=1]=Pr[⟨P(H),V⟩(G)=1,e=0]+Pr[⟨P(H),V⟩(G)=1,e=1]=21(Pr[G′=π(G)∣e=0]+Pr[H′ is a cycle∣e=1])=21(1+1)=1
Soundness
对于可靠性,假如存在某 PTT 敌手  
     
      
       
        
        
          P 
         
        
          ∗ 
         
        
       
      
        P^* 
       
      
    P∗,对于无限序列  
     
      
       
       
         { 
        
       
         G 
        
       
         ∉ 
        
       
         H 
        
       
         C 
        
       
         : 
        
       
         ∣ 
        
       
         G 
        
       
         ∣ 
        
       
         = 
        
       
         n 
        
        
        
          } 
         
        
          n 
         
        
       
      
        \{G \notin HC:|G|=n\}_n 
       
      
    {G∈/HC:∣G∣=n}n,使得
  
      
       
        
         
          
           
           
             P 
            
           
             r 
            
           
           
            
            
              r 
             
            
              P 
             
            
           
             , 
            
            
            
              r 
             
            
              V 
             
            
           
          
         
        
          [ 
         
        
          ⟨ 
         
         
         
           P 
          
         
           ∗ 
          
         
        
          , 
         
        
          V 
         
        
          ⟩ 
         
        
          ( 
         
        
          G 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          ] 
         
        
          ≥ 
         
         
         
           1 
          
         
           2 
          
         
        
          + 
         
         
         
           1 
          
          
          
            p 
           
          
            o 
           
          
            l 
           
          
            y 
           
          
            ( 
           
          
            n 
           
          
            ) 
           
          
         
        
       
         \underset{r_P, r_V}{Pr}[\lang P^*,V \rang(G)=1] \ge \dfrac{1}{2} + \dfrac{1}{poly(n)} 
        
       
     rP,rVPr[⟨P∗,V⟩(G)=1]≥21+poly(n)1
那么根据数学期望,
  
      
       
        
         
          
           
            
           
          
          
           
            
             
             
              
               
               
                 P 
                
               
                 r 
                
               
               
               
                 r 
                
               
                 P 
                
               
              
             
             
             
               [ 
              
              
              
                r 
               
              
                P 
               
              
              
              
                ← 
               
              
                R 
               
              
             
               : 
              
              
               
                
                
                  P 
                 
                
                  r 
                 
                
                
                 
                 
                   r 
                  
                 
                   V 
                  
                 
                
                  : 
                 
                
                  = 
                 
                
                  e 
                 
                
               
              
             
               [ 
              
             
               ⟨ 
              
              
              
                P 
               
              
                ∗ 
               
              
             
               , 
              
             
               V 
              
             
               ⟩ 
              
             
               ( 
              
             
               G 
              
             
               ) 
              
             
               = 
              
             
               1 
              
             
               ] 
              
             
               ≥ 
              
              
              
                1 
               
              
                2 
               
              
             
               + 
              
              
              
                1 
               
               
               
                 2 
                
               
                 ⋅ 
                
               
                 p 
                
               
                 o 
                
               
                 l 
                
               
                 y 
                
               
                 ( 
                
               
                 n 
                
               
                 ) 
                
               
              
             
               ] 
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              ≥ 
             
             
              
              
                ( 
               
               
               
                 1 
                
               
                 2 
                
               
              
                + 
               
               
               
                 1 
                
                
                
                  p 
                 
                
                  o 
                 
                
                  l 
                 
                
                  y 
                 
                
                  ( 
                 
                
                  n 
                 
                
                  ) 
                 
                
               
              
                ) 
               
              
                − 
               
              
                ( 
               
               
               
                 1 
                
               
                 2 
                
               
              
                + 
               
               
               
                 1 
                
                
                
                  2 
                 
                
                  ⋅ 
                 
                
                  p 
                 
                
                  o 
                 
                
                  l 
                 
                
                  y 
                 
                
                  ( 
                 
                
                  n 
                 
                
                  ) 
                 
                
               
              
                ) 
               
              
              
              
                1 
               
              
                − 
               
              
                ( 
               
               
               
                 1 
                
               
                 2 
                
               
              
                + 
               
               
               
                 1 
                
                
                
                  2 
                 
                
                  ⋅ 
                 
                
                  p 
                 
                
                  o 
                 
                
                  l 
                 
                
                  y 
                 
                
                  ( 
                 
                
                  n 
                 
                
                  ) 
                 
                
               
              
                ) 
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
              
              
                p 
               
              
                o 
               
              
                l 
               
              
                y 
               
              
                ( 
               
              
                n 
               
              
                ) 
               
              
                − 
               
              
                1 
               
              
             
            
           
          
         
        
       
         \begin{aligned} &\underset{r_P}{Pr}\left[r_P \leftarrow_R: \underset{r_V:=e}{Pr}[\lang P^*,V \rang(G)=1] \ge \dfrac{1}{2} + \dfrac{1}{2 \cdot poly(n)}\right]\\ &\ge \dfrac{(\dfrac{1}{2} + \dfrac{1}{poly(n)}) - (\dfrac{1}{2} + \dfrac{1}{2 \cdot poly(n)})}{1-(\dfrac{1}{2} + \dfrac{1}{2 \cdot poly(n)})}\\ &= \dfrac{1}{poly(n)-1} \end{aligned} 
        
       
     rPPr[rP←R:rV:=ePr[⟨P∗,V⟩(G)=1]≥21+2⋅poly(n)1]≥1−(21+2⋅poly(n)1)(21+poly(n)1)−(21+2⋅poly(n)1)=poly(n)−11
由于  
     
      
       
       
         e 
        
       
         ∈ 
        
       
         { 
        
       
         0 
        
       
         , 
        
       
         1 
        
       
         } 
        
       
      
        e \in \{0,1\} 
       
      
    e∈{0,1} 是二值的,因此存在占比  
     
      
       
        
         
         
           1 
          
          
          
            p 
           
          
            o 
           
          
            l 
           
          
            y 
           
          
            ( 
           
          
            n 
           
          
            ) 
           
          
            − 
           
          
            1 
           
          
         
        
       
      
        \dfrac{1}{poly(n)-1} 
       
      
    poly(n)−11 的 “好” 随机带  
     
      
       
        
        
          r 
         
        
          P 
         
        
       
      
        r_P 
       
      
    rP 使得无论  
     
      
       
       
         e 
        
       
         = 
        
       
         0 
        
       
         / 
        
       
         1 
        
       
      
        e=0/1 
       
      
    e=0/1 都有  
     
      
       
       
         ⟨ 
        
        
        
          P 
         
        
          ∗ 
         
        
       
         , 
        
       
         V 
        
       
         ⟩ 
        
       
         ( 
        
       
         G 
        
       
         ) 
        
       
         = 
        
       
         1 
        
       
      
        \lang P^*,V \rang(G)=1 
       
      
    ⟨P∗,V⟩(G)=1,把它们收集到一个集合里:
  
      
       
        
        
          S 
         
        
          : 
         
        
          = 
         
        
          { 
         
         
         
           r 
          
         
           P 
          
         
        
          : 
         
         
          
           
           
             P 
            
           
             r 
            
           
          
            e 
           
          
         
        
          [ 
         
        
          ⟨ 
         
         
         
           P 
          
         
           ∗ 
          
         
        
          , 
         
        
          V 
         
        
          ⟩ 
         
        
          ( 
         
        
          G 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          ] 
         
        
          = 
         
        
          1 
         
        
          } 
         
        
       
         S := \{r_P: \underset{e}{Pr}[\lang P^*,V \rang(G)=1]=1\} 
        
       
     S:={rP:ePr[⟨P∗,V⟩(G)=1]=1}
于是 # S # r P ≥ 1 p o l y ( n ) − 1 \dfrac{\#S}{\#r_P} \ge \dfrac{1}{poly(n)-1} #rP#S≥poly(n)−11 占比显著,我们随机挑选随机带 r P ∈ S r_P \in S rP∈S,于是确定性图灵机 P ∗ ( r P ) P^*(r_P) P∗(rP) 对于挑战 e = 0 e=0 e=0 和 e = 1 e=1 e=1 都可以给出 accepting 的副本 ( a , 0 , z 0 ) , ( a , 1 , z 1 ) (a,0,z_0),(a,1,z_1) (a,0,z0),(a,1,z1),这就说明 G ≅ G ′ G \cong G' G≅G′ 且 ∃ H ′ , H ′ ∈ G ′ \exists H',H' \in G' ∃H′,H′∈G′,于是 G ∈ H C G \in HC G∈HC 与我们的假设矛盾。
因此 soundness error 至多为 1 2 + n e g l ( n ) \dfrac{1}{2}+negl(n) 21+negl(n)
Zero Knowledge
对于零知识性,我们构造如下的模拟器:

首先需要证明  
     
      
       
       
         S 
        
       
         i 
        
       
         m 
        
       
      
        Sim 
       
      
    Sim 是 Expected Poly-Time 的(这一步很重要!)。 
     
      
       
       
         S 
        
       
         i 
        
       
         m 
        
       
      
        Sim 
       
      
    Sim 仅当猜错了  
     
      
       
       
         e 
        
       
      
        e 
       
      
    e 才执行 rewind,我们证明猜对的概率  
     
      
       
       
         P 
        
       
         r 
        
       
         [ 
        
       
         k 
        
       
         = 
        
       
         e 
        
       
         ← 
        
        
        
          V 
         
        
          ∗ 
         
        
       
         ] 
        
       
         ≥ 
        
        
         
         
           1 
          
         
           2 
          
         
        
       
         − 
        
       
         n 
        
       
         e 
        
       
         g 
        
       
         l 
        
       
         ( 
        
       
         n 
        
       
         ) 
        
       
      
        Pr[k=e \leftarrow V^*] \ge \dfrac{1}{2}-negl(n) 
       
      
    Pr[k=e←V∗]≥21−negl(n) 是显著的。假设存在某个 PPT 敌手  
     
      
       
        
        
          V 
         
        
          ∗ 
         
        
       
      
        V^* 
       
      
    V∗,对于无限序列  
     
      
       
       
         { 
        
       
         G 
        
       
         ∈ 
        
       
         H 
        
       
         C 
        
       
         : 
        
       
         ∣ 
        
       
         G 
        
       
         ∣ 
        
       
         = 
        
       
         n 
        
        
        
          } 
         
        
          n 
         
        
       
      
        \{G \in HC:|G|=n\}_n 
       
      
    {G∈HC:∣G∣=n}n, 
     
      
       
       
         S 
        
       
         i 
        
       
         m 
        
       
      
        Sim 
       
      
    Sim 猜对的概率仅为
  
      
       
        
        
          P 
         
        
          r 
         
        
          [ 
         
        
          k 
         
        
          = 
         
        
          e 
         
        
          ← 
         
         
         
           V 
          
         
           ∗ 
          
         
        
          ] 
         
        
          ≤ 
         
         
         
           1 
          
         
           2 
          
         
        
          − 
         
         
         
           1 
          
          
          
            p 
           
          
            o 
           
          
            l 
           
          
            y 
           
          
            ( 
           
          
            n 
           
          
            ) 
           
          
         
        
       
         Pr[k=e \leftarrow V^*] \le \dfrac{1}{2}-\dfrac{1}{poly(n)} 
        
       
     Pr[k=e←V∗]≤21−poly(n)1
等价地,
  
      
       
        
        
          P 
         
        
          r 
         
        
          [ 
         
        
          1 
         
        
          = 
         
        
          b 
         
        
          ← 
         
         
         
           V 
          
         
           ∗ 
          
         
        
          ∣ 
         
        
          k 
         
        
          = 
         
        
          0 
         
        
          ] 
         
        
          − 
         
        
          P 
         
        
          r 
         
        
          [ 
         
        
          1 
         
        
          = 
         
        
          b 
         
        
          ← 
         
         
         
           V 
          
         
           ∗ 
          
         
        
          ∣ 
         
        
          k 
         
        
          = 
         
        
          1 
         
        
          ] 
         
        
          ≥ 
         
         
         
           2 
          
          
          
            p 
           
          
            o 
           
          
            l 
           
          
            y 
           
          
            ( 
           
          
            n 
           
          
            ) 
           
          
         
        
       
         Pr[1=b \leftarrow V^*|k=0] - Pr[1=b \leftarrow V^*|k=1] \ge \dfrac{2}{poly(n)} 
        
       
     Pr[1=b←V∗∣k=0]−Pr[1=b←V∗∣k=1]≥poly(n)2
则我们可以利用  
     
      
       
        
        
          V 
         
        
          ∗ 
         
        
       
      
        V^* 
       
      
    V∗ 区分随机图  
     
      
       
        
        
          G 
         
        
          ′ 
         
        
       
         = 
        
       
         π 
        
       
         ( 
        
       
         G 
        
       
         ) 
        
       
      
        G'=\pi(G) 
       
      
    G′=π(G) 和随机环图  
     
      
       
        
        
          H 
         
        
          ′ 
         
        
       
      
        H' 
       
      
    H′ 的承诺值的能力,我们利用一系列的 Hybird 实验(按字典序依次替换  
     
      
       
        
        
          G 
         
        
          ′ 
         
        
       
         , 
        
        
        
          H 
         
        
          ′ 
         
        
       
      
        G',H' 
       
      
    G′,H′ 的邻接矩阵的不同边,共  
     
      
       
        
        
          n 
         
        
          2 
         
        
       
      
        n^2 
       
      
    n2 个邻接矩阵  
     
      
       
        
        
          H 
         
         
         
           ( 
          
         
           i 
          
         
           , 
          
         
           j 
          
         
           ) 
          
         
        
       
      
        H_{(i,j)} 
       
      
    H(i,j)),必然存在一个位置  
     
      
       
       
         ( 
        
        
        
          i 
         
        
          ∗ 
         
        
       
         , 
        
        
        
          j 
         
        
          ∗ 
         
        
       
         ) 
        
       
      
        (i^*,j^*) 
       
      
    (i∗,j∗) 使得
  
      
       
        
        
          P 
         
        
          r 
         
        
          [ 
         
        
          1 
         
        
          ← 
         
         
         
           V 
          
         
           ∗ 
          
         
        
          ( 
         
        
          c 
         
        
          ← 
         
        
          C 
         
        
          o 
         
        
          m 
         
        
          ( 
         
         
         
           H 
          
          
          
            ( 
           
           
           
             i 
            
           
             ∗ 
            
           
          
            , 
           
           
           
             j 
            
           
             ∗ 
            
           
          
            ) 
           
          
         
        
          ) 
         
        
          ) 
         
        
          ] 
         
        
          − 
         
        
          P 
         
        
          r 
         
        
          [ 
         
        
          1 
         
        
          ← 
         
         
         
           V 
          
         
           ∗ 
          
         
        
          ( 
         
        
          c 
         
        
          ← 
         
        
          C 
         
        
          o 
         
        
          m 
         
        
          ( 
         
        
          n 
         
        
          e 
         
        
          x 
         
        
          t 
         
        
          ( 
         
         
         
           H 
          
          
          
            ( 
           
           
           
             i 
            
           
             ∗ 
            
           
          
            , 
           
           
           
             j 
            
           
             ∗ 
            
           
          
            ) 
           
          
         
        
          ) 
         
        
          ) 
         
        
          ) 
         
        
          ] 
         
        
          ≥ 
         
         
         
           2 
          
          
           
           
             n 
            
           
             2 
            
           
          
            ⋅ 
           
          
            p 
           
          
            o 
           
          
            l 
           
          
            y 
           
          
            ( 
           
          
            n 
           
          
            ) 
           
          
         
        
       
         Pr[1 \leftarrow V^*(c \leftarrow Com(H_{(i^*,j^*)}))] - Pr[1 \leftarrow V^*(c \leftarrow Com(next(H_{(i^*,j^*)})))] \ge \dfrac{2}{n^2 \cdot poly(n)} 
        
       
     Pr[1←V∗(c←Com(H(i∗,j∗)))]−Pr[1←V∗(c←Com(next(H(i∗,j∗))))]≥n2⋅poly(n)2
由于图 H ( i ∗ , j ∗ ) H_{(i^*,j^*)} H(i∗,j∗) 与 n e x t ( H ( i ∗ , j ∗ ) ) next(H_{(i^*,j^*)}) next(H(i∗,j∗)) 之间仅仅在 ( i ∗ , j ∗ ) (i^*,j^*) (i∗,j∗) 位置上的消息不同,因此这就打破了比特承诺方案的 Computational Hiding 性质。与安全假设矛盾,于是 S i m Sim Sim 能够以至少 1 2 − n e g l ( n ) \dfrac{1}{2} - negl(n) 21−negl(n) 的显著概率猜对。
根据  
     
      
       
       
         r 
        
       
         = 
        
       
         1 
        
       
         , 
        
       
         p 
        
       
         = 
        
        
         
         
           1 
          
         
           2 
          
         
        
       
         − 
        
       
         n 
        
       
         e 
        
       
         g 
        
       
         l 
        
       
         ( 
        
       
         n 
        
       
         ) 
        
       
      
        r=1, p=\dfrac{1}{2} - negl(n) 
       
      
    r=1,p=21−negl(n) 的帕斯卡分布,期望的 rewind 次数为:
  
      
       
        
        
          E 
         
        
          ( 
         
        
          t 
         
        
          ) 
         
        
          = 
         
         
         
           r 
          
         
           p 
          
         
        
          = 
         
        
          2 
         
        
          + 
         
        
          n 
         
        
          e 
         
        
          g 
         
        
          l 
         
        
          ( 
         
        
          n 
         
        
          ) 
         
        
       
         \mathbb E(t) = \dfrac{r}{p} = 2+negl(n) 
        
       
     E(t)=pr=2+negl(n)
这就证明了 S i m Sim Sim 期望上多项式时间内停机。
接下来,我们再证明 S i m Sim Sim 模拟出来的视图与真实的 V i e w V ∗ P ( H ) ( G ) View_{V^*}^{P(H)}(G) ViewV∗P(H)(G) 计算不可区分。与上边的证明类似,我们构造一系列的 Hybird 实验(按字典序依次替换 G ′ , H ′ G',H' G′,H′ 的邻接矩阵的不同边,邻接矩阵为 H ( i , j ) H_{(i,j)} H(i,j)),它们两两之间是不可区分的,否则将打破比特承诺方案的 Computational Hiding 性质。连续多项式个计算不可区分的分布间传递,第一个 Hybrid 实验 H 1 , 1 H_{1,1} H1,1,(就是 S i m V ∗ Sim_{V^*} SimV∗)和最后一个 Hybrid 实验 H n + 1 , n H_{n+1,n} Hn+1,n(就是 V i e w V ∗ View_{V^*} ViewV∗)也是不可区分的。
因此, S i m Sim Sim 可以在期望多项式时间内模拟出计算不可区分的视图,这说明 proof 消息中包含的信息(对于 PPT 敌手来说)并不比 R L ( x , w ) = 1 R_L(x,w)=1 RL(x,w)=1 更多,这是对于 w w w 零知识的。
WI of n-parallelized versions
为了降低 soundness error,我们独立执行 n n n 个副本。为了保持 round complexity 不变,我们实行 n n n 路并行。ZK 性质不一定保持,但是 WI 性质会保持。

假设并行不保持 WI,那么存在某 PPT 敌手  
     
      
       
       
         ( 
        
        
        
          V 
         
        
          ∗ 
         
        
       
         , 
        
       
         D 
        
       
         ) 
        
       
      
        (V^*,D) 
       
      
    (V∗,D),对于无限序列  
     
      
       
       
         { 
        
       
         ( 
        
       
         x 
        
       
         , 
        
        
        
          w 
         
        
          0 
         
        
       
         , 
        
        
        
          w 
         
        
          1 
         
        
       
         ) 
        
       
         : 
        
       
         ∣ 
        
       
         x 
        
       
         ∣ 
        
       
         = 
        
       
         n 
        
       
         , 
        
       
         ( 
        
       
         x 
        
       
         , 
        
        
        
          w 
         
        
          0 
         
        
       
         ) 
        
       
         , 
        
       
         ( 
        
       
         x 
        
       
         , 
        
        
        
          w 
         
        
          1 
         
        
       
         ) 
        
       
         ∈ 
        
        
        
          R 
         
        
          L 
         
        
        
        
          } 
         
        
          n 
         
        
       
      
        \{(x,w_0,w_1):|x|=n,(x,w_0),(x,w_1) \in R_L\}_n 
       
      
    {(x,w0,w1):∣x∣=n,(x,w0),(x,w1)∈RL}n,使得
  
      
       
        
        
          P 
         
        
          r 
         
        
          [ 
         
        
          D 
         
        
          ( 
         
        
          V 
         
        
          i 
         
        
          e 
         
         
         
           w 
          
          
          
            V 
           
          
            ∗ 
           
          
          
          
            P 
           
          
            ( 
           
           
           
             w 
            
           
             0 
            
           
          
            ) 
           
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          ] 
         
        
          − 
         
        
          P 
         
        
          r 
         
        
          [ 
         
        
          D 
         
        
          ( 
         
        
          V 
         
        
          i 
         
        
          e 
         
         
         
           w 
          
          
          
            V 
           
          
            ∗ 
           
          
          
          
            P 
           
          
            ( 
           
           
           
             w 
            
           
             1 
            
           
          
            ) 
           
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          ] 
         
        
          ≥ 
         
         
         
           1 
          
          
          
            p 
           
          
            o 
           
          
            l 
           
          
            y 
           
          
            ( 
           
          
            n 
           
          
            ) 
           
          
         
        
       
         Pr[D(View_{V^*}^{P(w_0)}(x))=1] - Pr[D(View_{V^*}^{P(w_1)}(x))=1] \ge \dfrac{1}{poly(n)} 
        
       
     Pr[D(ViewV∗P(w0)(x))=1]−Pr[D(ViewV∗P(w1)(x))=1]≥poly(n)1
那么考虑 Hybrid 证明者  
     
      
       
        
        
          P 
         
        
          i 
         
        
       
         ( 
        
        
        
          w 
         
        
          0 
         
        
       
         , 
        
        
        
          w 
         
        
          1 
         
        
       
         ) 
        
       
      
        P_i(w_0,w_1) 
       
      
    Pi(w0,w1),它的前  
     
      
       
       
         i 
        
       
      
        i 
       
      
    i 个副本使用  
     
      
       
        
        
          w 
         
        
          1 
         
        
       
      
        w_1 
       
      
    w1,其他副本使用  
     
      
       
        
        
          w 
         
        
          0 
         
        
       
      
        w_0 
       
      
    w0,易知  
     
      
       
        
        
          P 
         
        
          0 
         
        
       
         ( 
        
        
        
          w 
         
        
          0 
         
        
       
         , 
        
        
        
          w 
         
        
          1 
         
        
       
         ) 
        
       
      
        P_0(w_0,w_1) 
       
      
    P0(w0,w1) 就是  
     
      
       
       
         P 
        
       
         ( 
        
        
        
          w 
         
        
          0 
         
        
       
         ) 
        
       
      
        P(w_0) 
       
      
    P(w0), 
     
      
       
        
        
          P 
         
        
          n 
         
        
       
         ( 
        
        
        
          w 
         
        
          0 
         
        
       
         , 
        
        
        
          w 
         
        
          1 
         
        
       
         ) 
        
       
      
        P_n(w_0,w_1) 
       
      
    Pn(w0,w1) 就是  
     
      
       
       
         P 
        
       
         ( 
        
        
        
          w 
         
        
          1 
         
        
       
         ) 
        
       
      
        P(w_1) 
       
      
    P(w1)。由于  
     
      
       
       
         D 
        
       
      
        D 
       
      
    D 可以区分  
     
      
       
        
        
          P 
         
        
          0 
         
        
       
         ( 
        
        
        
          w 
         
        
          0 
         
        
       
         , 
        
        
        
          w 
         
        
          1 
         
        
       
         ) 
        
       
      
        P_0(w_0,w_1) 
       
      
    P0(w0,w1) 和  
     
      
       
        
        
          P 
         
        
          n 
         
        
       
         ( 
        
        
        
          w 
         
        
          0 
         
        
       
         , 
        
        
        
          w 
         
        
          1 
         
        
       
         ) 
        
       
      
        P_n(w_0,w_1) 
       
      
    Pn(w0,w1),因此它必然存在位置  
     
      
       
        
        
          i 
         
        
          ∗ 
         
        
       
      
        i^* 
       
      
    i∗,使得
  
      
       
        
        
          P 
         
        
          r 
         
        
          [ 
         
        
          D 
         
        
          ( 
         
        
          V 
         
        
          i 
         
        
          e 
         
         
         
           w 
          
          
          
            V 
           
          
            ∗ 
           
          
          
           
           
             P 
            
            
            
              i 
             
            
              ∗ 
             
            
           
          
            ( 
           
           
           
             w 
            
           
             0 
            
           
          
            , 
           
           
           
             w 
            
           
             1 
            
           
          
            ) 
           
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          ] 
         
        
          − 
         
        
          P 
         
        
          r 
         
        
          [ 
         
        
          D 
         
        
          ( 
         
        
          V 
         
        
          i 
         
        
          e 
         
         
         
           w 
          
          
          
            V 
           
          
            ∗ 
           
          
          
           
           
             P 
            
            
             
             
               i 
              
             
               ∗ 
              
             
            
              + 
             
            
              1 
             
            
           
          
            ( 
           
           
           
             w 
            
           
             0 
            
           
          
            , 
           
           
           
             w 
            
           
             1 
            
           
          
            ) 
           
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          ] 
         
        
          ≥ 
         
         
         
           1 
          
          
          
            n 
           
          
            ⋅ 
           
          
            p 
           
          
            o 
           
          
            l 
           
          
            y 
           
          
            ( 
           
          
            n 
           
          
            ) 
           
          
         
        
       
         Pr[D(View_{V^*}^{P_{i^*}(w_0,w_1)}(x))=1] - Pr[D(View_{V^*}^{P_{i^*+1}(w_0,w_1)}(x))=1] \ge \dfrac{1}{n \cdot poly(n)} 
        
       
     Pr[D(ViewV∗Pi∗(w0,w1)(x))=1]−Pr[D(ViewV∗Pi∗+1(w0,w1)(x))=1]≥n⋅poly(n)1
但是 V i e w V ∗ P i ∗ ( w 0 , w 1 ) ( x ) View_{V^*}^{P_{i^*}(w_0,w_1)}(x) ViewV∗Pi∗(w0,w1)(x) 和 V i e w V ∗ P i ∗ + 1 ( w 0 , w 1 ) ( x ) View_{V^*}^{P_{i^*+1}(w_0,w_1)}(x) ViewV∗Pi∗+1(w0,w1)(x) 仅仅在第 i ∗ − 1 i^*-1 i∗−1 个副本使用了不同的证据,其他相对应的副本都是同分布的。于是我们就构造出了打破原始 IP 系统的 WI 性质的 PPT 敌手,与基本假设矛盾。
Proof of Knowledge
对于知识的证明,我们构造如下的两种知识提取器:

一、容易看出  
     
      
       
       
         Initial Ext 
        
       
      
        \text{Initial Ext} 
       
      
    Initial Ext 的运行时间是 PPT 的。如果 PPT 敌手  
     
      
       
        
        
          P 
         
        
          ∗ 
         
        
       
      
        P^* 
       
      
    P∗ 使得  
     
      
       
       
         P 
        
       
         r 
        
       
         [ 
        
       
         ⟨ 
        
        
        
          P 
         
        
          ∗ 
         
        
       
         , 
        
       
         V 
        
       
         ⟩ 
        
       
         ( 
        
       
         G 
        
       
         ) 
        
       
         ] 
        
       
         = 
        
       
         p 
        
       
      
        Pr[\lang P^*,V \rang(G)]=p 
       
      
    Pr[⟨P∗,V⟩(G)]=p,我们证明
  
      
       
        
        
          P 
         
        
          r 
         
        
          [ 
         
        
          Initial Ext succ 
         
        
          ] 
         
        
          = 
         
         
         
           p 
          
         
           2 
          
         
        
       
         Pr[\text{Initial Ext succ}] = p^2 
        
       
     Pr[Initial Ext succ]=p2
因为  
     
      
       
       
         E 
        
       
         x 
        
       
         t 
        
       
      
        Ext 
       
      
    Ext 是对于固定的  
     
      
       
       
         r 
        
       
      
        r 
       
      
    r 重复了两次挑战  
     
      
       
       
         e 
        
       
         , 
        
        
        
          e 
         
        
          ′ 
         
        
       
      
        e,e' 
       
      
    e,e′,因此  
     
      
       
        
        
          P 
         
        
          ∗ 
         
        
       
      
        P^* 
       
      
    P∗ 给出 accepting 副本的概率不是独立的。对于  
     
      
       
        
        
          P 
         
        
          ∗ 
         
        
       
      
        P^* 
       
      
    P∗ 的某个随机带  
     
      
       
       
         r 
        
       
      
        r 
       
      
    r,我们考虑 “好” 的  
     
      
       
       
         V 
        
       
      
        V 
       
      
    V 的随机带的收集:
  
      
       
        
         
         
           S 
          
         
           r 
          
         
        
          : 
         
        
          = 
         
        
          { 
         
        
          e 
         
        
          : 
         
        
          ⟨ 
         
         
         
           P 
          
         
           ∗ 
          
         
        
          ( 
         
        
          r 
         
        
          ) 
         
        
          , 
         
        
          V 
         
        
          ( 
         
        
          e 
         
        
          ) 
         
        
          ⟩ 
         
        
          ( 
         
        
          G 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          } 
         
        
       
         S_r := \{e: \lang P^*(r),V(e) \rang(G)=1\} 
        
       
     Sr:={e:⟨P∗(r),V(e)⟩(G)=1}
虽然  
     
      
       
       
         ( 
        
       
         r 
        
       
         , 
        
       
         e 
        
       
         ) 
        
       
         , 
        
       
         ( 
        
       
         r 
        
       
         , 
        
        
        
          e 
         
        
          ′ 
         
        
       
         ) 
        
       
      
        (r,e),(r,e') 
       
      
    (r,e),(r,e′) 不独立,但是  
     
      
       
       
         r 
        
       
         , 
        
       
         e 
        
       
      
        r,e 
       
      
    r,e 独立并且  
     
      
       
       
         r 
        
       
         , 
        
        
        
          e 
         
        
          ′ 
         
        
       
      
        r,e' 
       
      
    r,e′ 独立,于是
  
      
       
        
         
          
           
           
             P 
            
           
             r 
            
           
           
           
             r 
            
           
             , 
            
           
             e 
            
           
          
         
        
          [ 
         
        
          ⟨ 
         
         
         
           P 
          
         
           ∗ 
          
         
        
          ( 
         
        
          r 
         
        
          ) 
         
        
          , 
         
        
          V 
         
        
          ( 
         
        
          e 
         
        
          ) 
         
        
          ⟩ 
         
        
          ( 
         
        
          G 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          ] 
         
        
          = 
         
         
          
           
           
             ∑ 
            
           
             r 
            
           
          
            ∣ 
           
           
           
             S 
            
           
             r 
            
           
          
            ∣ 
           
          
          
          
            # 
           
          
            ( 
           
          
            r 
           
          
            , 
           
          
            e 
           
          
            ) 
           
          
         
        
          = 
         
         
          
           
           
             ∑ 
            
            
            
              r 
             
            
              ∗ 
             
            
           
          
            P 
           
          
            r 
           
          
            [ 
           
           
           
             S 
            
            
            
              r 
             
            
              ∗ 
             
            
           
          
            ] 
           
          
          
          
            # 
           
          
            ( 
           
          
            r 
           
          
            ) 
           
          
         
        
          = 
         
        
          p 
         
        
       
         \underset{r,e}{Pr}[\lang P^*(r),V(e) \rang(G)=1] = \dfrac{\sum_r |S_r|}{\#(r,e)} = \dfrac{\sum_{r^*}Pr[S_{r^*}]}{\#(r)}= p 
        
       
     r,ePr[⟨P∗(r),V(e)⟩(G)=1]=#(r,e)∑r∣Sr∣=#(r)∑r∗Pr[Sr∗]=p
那么,
  
      
       
        
         
          
           
            
           
          
          
           
            
             
            
                   
             
            
              P 
             
            
              r 
             
            
              [ 
             
            
              Initial Ext succ 
             
            
              ] 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∑ 
              
              
              
                r 
               
              
                ∗ 
               
              
             
             
              
               
               
                 P 
                
               
                 r 
                
               
               
               
                 r 
                
               
                 , 
                
               
                 e 
                
               
                 , 
                
                
                
                  e 
                 
                
                  ′ 
                 
                
               
              
             
            
              [ 
             
            
              r 
             
            
              = 
             
             
             
               r 
              
             
               ∗ 
              
             
            
              , 
             
            
              ⟨ 
             
             
             
               P 
              
             
               ∗ 
              
             
            
              ( 
             
            
              r 
             
            
              ) 
             
            
              , 
             
            
              V 
             
            
              ( 
             
            
              e 
             
            
              ) 
             
            
              ⟩ 
             
            
              ( 
             
            
              G 
             
            
              ) 
             
            
              = 
             
            
              1 
             
            
              , 
             
            
              ⟨ 
             
             
             
               P 
              
             
               ∗ 
              
             
            
              ( 
             
            
              r 
             
            
              ) 
             
            
              , 
             
            
              V 
             
            
              ( 
             
             
             
               e 
              
             
               ′ 
              
             
            
              ) 
             
            
              ⟩ 
             
            
              ( 
             
            
              G 
             
            
              ) 
             
            
              = 
             
            
              1 
             
            
              ] 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∑ 
              
              
              
                r 
               
              
                ∗ 
               
              
             
             
              
               
               
                 P 
                
               
                 r 
                
               
               
               
                 r 
                
               
                 , 
                
               
                 e 
                
               
                 , 
                
                
                
                  e 
                 
                
                  ′ 
                 
                
               
              
             
            
              [ 
             
            
              r 
             
            
              = 
             
             
             
               r 
              
             
               ∗ 
              
             
            
              , 
             
            
              e 
             
            
              ∈ 
             
             
             
               S 
              
              
              
                r 
               
              
                ∗ 
               
              
             
            
              , 
             
             
             
               e 
              
             
               ′ 
              
             
            
              ∈ 
             
             
             
               S 
              
              
              
                r 
               
              
                ∗ 
               
              
             
            
              ] 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∑ 
              
              
              
                r 
               
              
                ∗ 
               
              
             
             
              
              
                ( 
               
              
                P 
               
              
                r 
               
              
                [ 
               
               
               
                 S 
                
                
                
                  r 
                 
                
                  ∗ 
                 
                
               
              
                ] 
               
               
               
                 ) 
                
               
                 2 
                
               
              
              
              
                # 
               
              
                ( 
               
              
                r 
               
              
                ) 
               
              
             
            
           
          
         
        
       
         \begin{aligned} &\ \ \ \ Pr[\text{Initial Ext succ}]\\ &= \sum_{r^*} \underset{r,e,e'}{Pr}[r=r^*, \lang P^*(r),V(e) \rang(G)=1, \lang P^*(r),V(e') \rang(G)=1]\\ &= \sum_{r^*} \underset{r,e,e'}{Pr}[r=r^*, e \in S_{r^*}, e' \in S_{r^*}]\\ &= \sum_{r^*}\dfrac{(Pr[S_{r^*}])^2}{\#(r)} \end{aligned} 
        
       
         Pr[Initial Ext succ]=r∗∑r,e,e′Pr[r=r∗,⟨P∗(r),V(e)⟩(G)=1,⟨P∗(r),V(e′)⟩(G)=1]=r∗∑r,e,e′Pr[r=r∗,e∈Sr∗,e′∈Sr∗]=r∗∑#(r)(Pr[Sr∗])2
利用 Cauchy 不等式  
     
      
       
       
         ( 
        
        
        
          ∑ 
         
        
          i 
         
        
        
        
          a 
         
        
          i 
         
        
          2 
         
        
       
         ) 
        
       
         ( 
        
        
        
          ∑ 
         
        
          i 
         
        
        
        
          b 
         
        
          i 
         
        
          2 
         
        
       
         ) 
        
       
         ≥ 
        
       
         ( 
        
        
        
          ∑ 
         
        
          i 
         
        
        
        
          a 
         
        
          i 
         
        
        
        
          b 
         
        
          i 
         
        
        
        
          ) 
         
        
          2 
         
        
       
      
        (\sum_i a_i^2)(\sum_i b_i^2) \ge (\sum_ia_ib_i)^2 
       
      
    (∑iai2)(∑ibi2)≥(∑iaibi)2,设  
     
      
       
       
         ∀ 
        
       
         i 
        
       
         , 
        
        
        
          a 
         
        
          i 
         
        
       
         = 
        
       
         1 
        
       
      
        \forall i,a_i=1 
       
      
    ∀i,ai=1 得到:
  
      
       
        
        
          P 
         
        
          r 
         
        
          [ 
         
        
          Initial Ext succ 
         
        
          ] 
         
        
          ≥ 
         
         
          
          
            ( 
           
           
           
             ∑ 
            
            
            
              r 
             
            
              ∗ 
             
            
           
          
            P 
           
          
            r 
           
          
            [ 
           
           
           
             S 
            
            
            
              r 
             
            
              ∗ 
             
            
           
          
            ] 
           
           
           
             ) 
            
           
             2 
            
           
          
          
          
            ( 
           
          
            # 
           
          
            ( 
           
          
            r 
           
          
            ) 
           
           
           
             ) 
            
           
             2 
            
           
          
         
        
          = 
         
         
         
           p 
          
         
           2 
          
         
        
       
         Pr[\text{Initial Ext succ}] \ge \dfrac{(\sum_{r^*}Pr[S_{r^*}])^2}{(\#(r))^2} = p^2 
        
       
     Pr[Initial Ext succ]≥(#(r))2(∑r∗Pr[Sr∗])2=p2
等号成立当仅当 ∀ r ∗ , P r [ S r ∗ ] \forall r^*, Pr[S_{r^*}] ∀r∗,Pr[Sr∗] 都相等(敌手成功率 ∀ r , P r e [ ⟨ P ∗ ( r ) , V ⟩ ( G ) ] = p \forall r, \underset{e}{Pr}[\lang P^*(r),V \rang(G)]=p ∀r,ePr[⟨P∗(r),V⟩(G)]=p),而这种敌手 P ∗ P^* P∗ 是可以存在的。
二、另一个知识提取器 E x t Ext Ext 容易看出它的成功率是 p p p(step1 以及 step 3 中独立的随机变量 ( r , e ) (r,e) (r,e) 落入 S = ⋃ r S r S=\bigcup_r S_r S=⋃rSr 的概率),但是还需要证明它可以在期望多项式时间内结束。
我们简记  
     
      
       
       
         r 
        
       
      
        r 
       
      
    r 是 step 1 的随机带, 
     
      
       
       
         e 
        
       
      
        e 
       
      
    e 是 step 3 的随机带, 
     
      
       
        
        
          r 
         
        
          ′ 
         
        
       
         = 
        
        
        
          e 
         
        
          1 
         
        
       
         ∥ 
        
       
         ⋯ 
        
       
         ∥ 
        
        
        
          e 
         
         
         
           p 
          
         
           o 
          
         
           l 
          
         
           y 
          
         
           ( 
          
         
           n 
          
         
           ) 
          
         
        
       
      
        r'=e_1\|\cdots\|e_{poly(n)} 
       
      
    r′=e1∥⋯∥epoly(n) 是 step 4 的随机带。我们依然针对每一个  
     
      
       
       
         r 
        
       
      
        r 
       
      
    r 考虑 “好” 随机带的收集,
  
      
       
        
         
         
           S 
          
         
           r 
          
         
        
          : 
         
        
          = 
         
        
          { 
         
        
          e 
         
        
          : 
         
        
          ⟨ 
         
         
         
           P 
          
         
           ∗ 
          
         
        
          ( 
         
        
          r 
         
        
          ) 
         
        
          , 
         
        
          V 
         
        
          ( 
         
        
          e 
         
        
          ) 
         
        
          ⟩ 
         
        
          ( 
         
        
          G 
         
        
          ) 
         
        
          = 
         
        
          1 
         
        
          } 
         
        
       
         S_r := \{e: \lang P^*(r),V(e) \rang(G)=1\} 
        
       
     Sr:={e:⟨P∗(r),V(e)⟩(G)=1}
简记  
     
      
       
        
        
          δ 
         
        
          r 
         
        
       
         = 
        
       
         P 
        
       
         r 
        
       
         [ 
        
        
        
          S 
         
         
         
           r 
          
         
           ∗ 
          
         
        
       
         ] 
        
       
         = 
        
       
         ∣ 
        
        
        
          S 
         
        
          r 
         
        
       
         ∣ 
        
       
         / 
        
       
         # 
        
       
         ( 
        
       
         r 
        
       
         ) 
        
       
      
        \delta_r = Pr[S_{r^*}] = |S_r|/\#(r) 
       
      
    δr=Pr[Sr∗]=∣Sr∣/#(r),令  
     
      
       
        
        
          T 
         
         
         
           r 
          
         
           , 
          
         
           e 
          
         
           , 
          
          
          
            r 
           
          
            ′ 
           
          
         
        
       
      
        T_{r,e,r'} 
       
      
    Tr,e,r′ 是设置好三个随机带后  
     
      
       
       
         E 
        
       
         x 
        
       
         t 
        
       
      
        Ext 
       
      
    Ext 的运行时间,令  
     
      
       
        
        
          t 
         
        
          3 
         
        
       
      
        t_3 
       
      
    t3 表示一轮 step 3 的执行时间,则期望的运行时间为
  
      
       
        
         
          
           
            
            
              E 
             
            
              ( 
             
            
              t 
             
            
              ) 
             
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∑ 
              
              
              
                r 
               
              
                , 
               
              
                e 
               
              
                , 
               
               
               
                 r 
                
               
                 ′ 
                
               
              
             
             
             
               T 
              
              
              
                r 
               
              
                , 
               
              
                e 
               
              
                , 
               
               
               
                 r 
                
               
                 ′ 
                
               
              
             
            
              ⋅ 
             
            
              P 
             
            
              r 
             
            
              [ 
             
            
              r 
             
             
             
               ← 
              
             
               R 
              
             
            
              , 
             
            
              e 
             
             
             
               ← 
              
             
               R 
              
             
            
              , 
             
             
             
               r 
              
             
               ′ 
              
             
             
             
               ← 
              
             
               R 
              
             
            
              ] 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∑ 
              
             
               r 
              
             
            
              P 
             
            
              r 
             
            
              [ 
             
            
              r 
             
            
              ] 
             
            
              ⋅ 
             
             
             
               ( 
              
              
              
                ∑ 
               
               
               
                 e 
                
               
                 ∈ 
                
                
                
                  S 
                 
                
                  r 
                 
                
               
              
             
               P 
              
             
               r 
              
             
               [ 
              
             
               e 
              
             
               ] 
              
              
              
                ( 
               
               
               
                 ∑ 
                
                
                
                  r 
                 
                
                  ′ 
                 
                
               
               
               
                 T 
                
                
                
                  r 
                 
                
                  , 
                 
                
                  e 
                 
                
                  , 
                 
                 
                 
                   r 
                  
                 
                   ′ 
                  
                 
                
               
              
                ⋅ 
               
              
                P 
               
              
                r 
               
              
                [ 
               
               
               
                 r 
                
               
                 ′ 
                
               
              
                ] 
               
              
                ) 
               
              
             
               + 
              
              
              
                ∑ 
               
               
               
                 e 
                
               
                 ∉ 
                
                
                
                  S 
                 
                
                  r 
                 
                
               
              
             
               P 
              
             
               r 
              
             
               [ 
              
             
               e 
              
             
               ] 
              
              
              
                ( 
               
               
               
                 ∑ 
                
                
                
                  r 
                 
                
                  ′ 
                 
                
               
               
               
                 T 
                
                
                
                  r 
                 
                
                  , 
                 
                
                  e 
                 
                
                  , 
                 
                 
                 
                   r 
                  
                 
                   ′ 
                  
                 
                
               
              
                ⋅ 
               
              
                P 
               
              
                r 
               
              
                [ 
               
               
               
                 r 
                
               
                 ′ 
                
               
              
                ] 
               
              
                ) 
               
              
             
               ) 
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∑ 
              
             
               r 
              
             
            
              P 
             
            
              r 
             
            
              [ 
             
            
              r 
             
            
              ] 
             
            
              ⋅ 
             
             
             
               ( 
              
              
              
                ( 
               
               
               
                 t 
                
               
                 3 
                
               
              
                + 
               
               
                
                
                  t 
                 
                
                  3 
                 
                
                
                
                  δ 
                 
                
                  r 
                 
                
               
              
                ) 
               
              
             
               ⋅ 
              
              
              
                ∑ 
               
               
               
                 e 
                
               
                 ∈ 
                
                
                
                  S 
                 
                
                  r 
                 
                
               
              
             
               P 
              
             
               r 
              
             
               [ 
              
             
               e 
              
             
               ] 
              
             
               + 
              
              
              
                t 
               
              
                3 
               
              
             
               ⋅ 
              
              
              
                ∑ 
               
               
               
                 e 
                
               
                 ∉ 
                
                
                
                  S 
                 
                
                  r 
                 
                
               
              
             
               P 
              
             
               r 
              
             
               [ 
              
             
               e 
              
             
               ] 
              
             
               ) 
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              ≤ 
             
             
             
               ∑ 
              
             
               r 
              
             
            
              P 
             
            
              r 
             
            
              [ 
             
            
              r 
             
            
              ] 
             
            
              ⋅ 
             
             
             
               ( 
              
              
              
                ( 
               
               
               
                 t 
                
               
                 3 
                
               
              
                + 
               
               
                
                
                  t 
                 
                
                  3 
                 
                
                
                
                  δ 
                 
                
                  r 
                 
                
               
              
                ) 
               
              
             
               ⋅ 
              
              
              
                δ 
               
              
                r 
               
              
             
               + 
              
              
              
                t 
               
              
                3 
               
              
             
               ⋅ 
              
             
               ( 
              
             
               1 
              
             
               − 
              
              
              
                δ 
               
              
                r 
               
              
             
               ) 
              
             
               ) 
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
            
              2 
             
            
              ⋅ 
             
             
             
               t 
              
             
               3 
              
             
            
           
          
         
        
       
         \begin{aligned} \mathbb E(t) &= \sum_{r,e,r'} T_{r,e,r'} \cdot Pr[r\leftarrow_R, e\leftarrow_R, r'\leftarrow_R]\\ &= \sum_{r} Pr[r] \cdot \left(\sum_{e \in S_r} Pr[e] \left(\sum_{r'} T_{r,e,r'} \cdot Pr[r']\right) + \sum_{e \notin S_r} Pr[e] \left(\sum_{r'} T_{r,e,r'} \cdot Pr[r']\right) \right)\\ &= \sum_{r} Pr[r] \cdot \left(\left(t_3+\dfrac{t_3}{\delta_r}\right) \cdot \sum_{e \in S_r} Pr[e] + t_3 \cdot \sum_{e \notin S_r} Pr[e]\right)\\ &\le \sum_{r} Pr[r] \cdot \left(\left(t_3+\dfrac{t_3}{\delta_r}\right) \cdot \delta_r + t_3 \cdot (1-\delta_r)\right)\\ &= 2 \cdot t_3 \end{aligned} 
        
       
     E(t)=r,e,r′∑Tr,e,r′⋅Pr[r←R,e←R,r′←R]=r∑Pr[r]⋅ 
                      e∈Sr∑Pr[e](r′∑Tr,e,r′⋅Pr[r′])+e∈/Sr∑Pr[e](r′∑Tr,e,r′⋅Pr[r′]) 
                      =r∑Pr[r]⋅ 
                      (t3+δrt3)⋅e∈Sr∑Pr[e]+t3⋅e∈/Sr∑Pr[e] 
                      ≤r∑Pr[r]⋅((t3+δrt3)⋅δr+t3⋅(1−δr))=2⋅t3
因此这个知识提取器在期望多项式时间内结束。
但要注意的是,即使 ∣ δ − δ ′ ∣ = n e g l ( n ) |\delta-\delta'| = negl(n) ∣δ−δ′∣=negl(n),也不一定使得 δ ⋅ 1 δ ′ \delta \cdot \dfrac{1}{\delta'} δ⋅δ′1 有界(可能会无穷大)。在上述的证明中,因为 r r r 固定了,因此独立随机地选取 r ′ r' r′ 它落在 S r S_r Sr 中的概率恰好为 δ r \delta_r δr 而没有任何损失。
Special Soundness
如果给定了两个 accepting 副本 ( a , e , z ) , ( a , e ′ , z ′ ) (a,e,z),(a,e',z') (a,e,z),(a,e′,z′),其中 e ≠ e ′ e \neq e' e=e′,那么不失一般性地 e = 0 , e ′ = 1 e=0,e'=1 e=0,e′=1,于是从 z z z 中我们获得了 G ′ ≅ G G' \cong G G′≅G,从 z ′ z' z′ 中我们获取了 H ′ ⊆ G ′ H' \subseteq G' H′⊆G′。只需做一个逆映射,就得到了证据 H = π − 1 ( H ′ ) ⊆ G H = \pi^{-1}(H') \subseteq G H=π−1(H′)⊆G,这里的算法描述就是一个 E x t Ext Ext 的实际构造。
Constant Round ZKP
对于常数轮的 IP 系统,由于是通过 n n n 路并行来实现的 soundness error 的降低,因此在证明 ZK 性质时,按照之前的模拟思路,模拟器必须同时猜对全部的 n n n 个挑战 e ⃗ = e 1 ∥ ⋯ ∥ e n \vec e=e_1\|\cdots\|e_n e=e1∥⋯∥en,这导致 rewinding 的次数是指数级!
有两个构造 s . e . = n e g l ( n ) s.e.=negl(n) s.e.=negl(n) 的常数轮 ZK 协议的方法:第一个是 FLS 技术 [Feige, Lapidot, Shamir, 91],第二个是 GK 技术 [Goldreich, khan, 96]。
FLS Paradigm
[FLS91] 从 [FS89] 中提取出了关键思想:在 first phase 中,使用 WI PoK,为模拟器创建一个 trapdoor,从而可证明安全。
下面,我们描述下 Feige-Shamir Protocol 的工作流程。令 WIPoK 是一个并行版本的 public-coin IP 系统,它的 knowledge error 是可忽略的。令 f f f 是一个 OWF。
- 在第一阶段, V V V 创造一个 “或” 语言 L 2 : = { ( y 0 , y 1 ) : ∃ r b , b ∈ { 0 , 1 } , y b = f ( r b ) } L^2:=\{(y_0,y_1): \exists r_b, b \in \{0,1\}, y_b=f(r_b)\} L2:={(y0,y1):∃rb,b∈{0,1},yb=f(rb)} 的实例和证据 ( ( y 0 , y 1 ) , r b ) ((y_0,y_1),r_b) ((y0,y1),rb),接着作为证明者利用 WIPoK 向 P P P 证明自己 “知道” 证据 r b r_b rb
- 在第二阶段, P P P 利用 WIPoK 向 V V V 证明自己知道 ( x , y 0 , y 1 ) (x,y_0,y_1) (x,y0,y1) 三者中某一个的证据。在 Real World 中诚实的 P ( w ) P(w) P(w) 实际使用了 x x x 的证据 w w w 来执行此阶段;但在证明 ZK 性质时模拟器 S i m Sim Sim 可以作为第一阶段中的验证者(作为 P P P),通过 rewinding 提取出 V ∗ V^* V∗ 的知识 r b r_b rb(因为是 PoK),从而在第二阶段使用这个证据来为 V ∗ V^* V∗ 模拟出不可区分的视图(我们给 S i m Sim Sim 提供了一个 Trapdoor)。

FS 协议中第一阶段和第二阶段同向的消息传递可以被放在一起,因此它是
- 4-round CZK argument under OWP:虽然此时存在 perfect-binding 的无交互承诺协议,但是由于 L 2 L^2 L2 基于 OWF 尽可以抵御 PPT 敌手,因此它不是 proof
- 5-round CZK argument under OWF:虽然此时存在 statistical-binding 的 2-round 承诺协议,但一样由于 OWF 仅仅是 argument
- 5-round PZK argument under DL:此时存在 perfect-hiding 的 2-round 承诺协议
FS 协议的 Completeness 是显然的。我们证明它是 argument of knowledge。构造如下的知识提取器,它与前一节中 PoK 的提取器的唯一区别就是多了 step 2 的第一阶段 WIPoK 的诚实执行。

首先,要证明 E x t Ext Ext 的运行时间是期望多项式的,过程与前一节的 PoK 中的第二个提取器的证明完全相同。其次,我们证明 E x t Ext Ext 有着显著的概率可以提取出知识(就是 step 3 中 e e e 落入 S r S_r Sr 的概率,其中 r r r 是随机的,于是概率就是 p p p)。
最后,我们还需要证明 E x t Ext Ext 提取出来的知识有显著概率是 x x x 的证据 w w w(如果提取出是 r b , r 1 − b r_b,r_{1-b} rb,r1−b,这对于 V ∗ V^* V∗ 来说根本不是知识)。假如提取出的证据满足 y b = f ( w ) , b ∈ { 0 , 1 } y_b = f(w),b \in \{0,1\} yb=f(w),b∈{0,1}(这儿符号滥用了,读者注意分辨),
- 假如总是有 w = r b w=r_b w=rb,这儿的 r b r_b rb 是 E x t Ext Ext 自己持有的关于 ( y 0 , y 1 ) (y_0,y_1) (y0,y1) 的证据,那么说明 P ∗ P^* P∗ 打破了第一阶段 PoK 的 WI 性质
- 假如以 1 2 + n e g l ( n ) \dfrac{1}{2}+negl(n) 21+negl(n) 的概率有 w = r 1 − b w=r_{1-b} w=r1−b,那么说明 P ∗ P^* P∗ 打破了 OWF
从而假设不成立,于是 E x t Ext Ext 提取出的证据就是 x x x 的证据 w w w(除了 n e g l ( n ) negl(n) negl(n) 的概率)。实际上针对 L 2 L^2 L2 的 WIPoK,就是一个针对 L 2 L^2 L2 上困难分布的 WHPoK,如果 P ∗ P^* P∗ 持有了 ( y 0 , y 1 ) (y_0,y_1) (y0,y1) 的证据 r b r_b rb,这就打破了 WH 性质。
我们证明它是 zero knowledge。构造如下的模拟器,它包含了一个针对第一阶段 WIPoK 的知识提取器,通过 rewinding 抓取出陷门 r b r_b rb,然后再用这个陷门为 V ∗ V^* V∗ 模拟出第二阶段的视图。

这个 S i m Sim Sim 本质上是一个 E x t Ext Ext,这与上一节中证明 ZK 性质的构造思路完全不同:那个模拟器使用 rewinding 技术直到 “猜对”(从而模拟视图与真实视图不可区分),而这个模拟器使用 rewinding 技术直到 “提取” 出陷门 r b r_b rb,接下来自然地可以给出一个第二阶段的与真实视图不可区分的模拟视图。
一样的,我们可以证明这个 S i m Sim Sim 执行时间是期望多项式的(与上一节中的 PoK 里的 E x t Ext Ext 完全相同),并证明模拟视图与真实视图不可区分(这很自然)。
GK Paradigm
Goldreich- khan 范式中,使用了两个不同的承诺协议。
- 用一个 Perfect Binding 承诺协议,实现一个 s . e . = n e g l ( n ) s.e.=negl(n) s.e.=negl(n) 的三轮 proof 系统
- 在执行 proof 之前,用一个 2-round Perfect Hiding 承诺协议(回顾下,不存在无交互的 Perfect Hiding 承诺协议),将之后要执行的随机挑战 e ⃗ \vec e e 做一个承诺

其 completeness 是容易证明的。由于我们使用 Perfect Binding 承诺协议实现了基础的 3-round proof 系统,因此 GS 协议自然也是个 proof with s . e . = n e g l ( n ) s.e.=negl(n) s.e.=negl(n),否则这就打破了 Perfect Binding。
对于 zero knowledge,GS 范式依然是使用通常的 “猜测” 加上 rewinding 技术,但是限制了 S i m Sim Sim 的最大执行时间(超时 abort),并且出现了 ∣ δ − δ ′ ∣ = n e g l ( n ) |\delta-\delta'|=negl(n) ∣δ−δ′∣=negl(n) 的情形(导致 δ δ ′ \dfrac{\delta}{\delta'} δ′δ 不一定有界)。[Goldreich, Kahan, 96] 使用了统计测试技术,来测量 δ \delta δ 的数值(原始论文我没看过,可能有说的不对的地方)。






![[深度学习思想] ControlNet 工作原理](https://img-blog.csdnimg.cn/9099f9420709438ca724b8b36a458a80.png)












