Protocol-Design

以下非互動式零知識集成員協議是否可以證明是安全的?

  • June 14, 2021

給定以下零知識集成員協議https://infoscience.epfl.ch/record/128718/files/CCS08.pdf]。這在以下步驟中給出(請參閱第 9 頁)。

  1. 驗證者

-選擇一組表示為的元素 $ \phi $

-選擇 $ x \in_{R} \mathbb{Z}{p} $ 併計算 $ y \leftarrow g^{x} $ 和 $ A{i} \leftarrow g^{\frac{1}{x+i}} $ 對於每個 $ i \in \Phi $

  1. 證明者
  • 選擇集合中的一個元素 $ \phi $ 表示為 $ \sigma $

-選擇 $ v \in_{R} \mathbb{Z}{p} $ 併計算 $ V \leftarrow A{\sigma}^{v} $

-選擇 $ s, t, m \in_{R} \mathbb{Z}_{p} $ 併計算 $ a \leftarrow e(V, g)^{-s} e(g, g)^{t} $ 和 $ D \leftarrow g^{s} h^{m} $

  • 使用 fiat-shamir 啟發式計算挑戰 c: $ c=H(V|a| D) $

-計算 $ z_{\sigma} \leftarrow s-\sigma c, z_{v} \leftarrow t-v c, $ 和 $ z_{r} \leftarrow m-r c $

-發送 $ C, c, a, D, Z_{\sigma}, Z_{v}, Z_{r} $ 給驗證者

  1. 驗證者通過檢查來驗證證明:

$ D \stackrel{?}{=} C^{c} h^{z_{r}} g^{z_{\sigma}} $ 和 $ a \stackrel{?}{=} e(V, y)^{c} \cdot e(V, g)^{-z_{\sigma}} \cdot e(g, g)^{z_{v}} $

接下來,以下定理 1(證明上述協議的零知識)如下:

“提取屬性意味著對於任何以機率 ε 說服 V 的證明者 P*,存在一個提取器與 P* 互動並以機率 poly(ε) 輸出見證 (σ, r, v)。此外,如果我們假設提取器輸入由兩個轉錄本組成,即

$$ \left{y,\left{A_{i}\right}, V, a, D, c, c^{\prime}, z_{\sigma}, z_{\sigma}^{\prime}, z_{v}, z_{v}^{\prime}, z_{r}, z_{r}^{\prime}\right} $$

可以通過計算獲得見證: $$ \sigma=\frac{z_{\sigma}-z_{\sigma}^{\prime}}{c^{\prime}-c} ; \quad r=\frac{z_{r}-z_{r}^{\prime}}{c^{\prime}-c} ; \quad v=\frac{z_{v}-z_{v}^{\prime}}{c^{\prime}-c} $$

提取器成功時 $ \left(c^{\prime}-c\right) \text { is invertible in } \mathbb{Z}_{p} $ "

我的問題:

考慮到論文中給出的 ZKSM 和證明,如果我們考慮以下數據的情況

$$ {y,{A_i },V,a,D,c,Z_σ,Z_v,Z_r} $$ 被公開(例如,儲存在充當驗證者的公共區塊鏈中)。因此,對手成功獲得證人( $ \sigma $ , r, v) 如果他能夠得到 $ c^{’} $ 這樣 $ \left(c^{\prime}-c\right) $ 是可逆的 $ Z_p $ . 這種情況可行嗎?換句話說,考慮到欄位

的屬性,對手可以找到 $ c^{’} $ 這樣 $ \left(c^{\prime}-c\right) $ 是可逆的 $ Z_p $ ?.

讀最後一句話:

對手能否找到 $ c’ $ 這樣 $ c’ - c= 0 $ 在一個領域。這來自於欄位的定義,無論何時 $ c’ != c $

這第二個挑戰 $ c’ $ 成績單的第二部分來自提取器算法,這是知識定義證明的一部分。提取器算法被正式授予將證明者倒回到他發送第一條消息的狀態的權力,因此它可以選擇另一個挑戰。提取器在預期多項式時間內產生的見證是知識定義證明的主要要求。

提取器算法的這種強大的倒帶功能看起來很棘手。從實際的角度來看,這可能很難理解。希望人們可以將其理解為另一個棘手想法的形式化:“知識”究竟意味著什麼。

對於一個實用的方法:確保在第一步總是選擇新的​​隨機數,不要重複使用(倒帶)。

引用自:https://crypto.stackexchange.com/questions/71042