Zero-Knowledge-Proofs
事後不涉及佩吉的平等證明
設置如下:
- 愛麗絲有一個秘密
x
- Alice 可以生成證明
P1, P2, P3, ...
- Bob(一個局外人)應該能夠證明任何兩個證明來自同一個
x
,而無需與 Alice 溝通是否存在這樣的證明協議?
這感覺像是屬於非互動式零知識協議領域的問題。
我一直在閱讀 Fiat-Shamir、Chaum-Pedersen 和 Schnorr 協議。
- Fiat-shamir:要求 Alice 和 Bob 事先就兩個公共值 G 和 H 達成一致
- Chaum-pedersen:這應該可以,但我需要快速確認才能知道這是否是我正在尋找的。即使 Alice 需要生成兩個以上的證明,只有兩個公共值可供 Alice 生成證明是否安全?
- Schnorr:旨在證明 的知識
x
,但不是證明的相等性,x
因此這不起作用有沒有比 ZK 更簡單的方法,還是我想多了?提前謝謝了
是否存在這樣的證明協議?
我不確定每個“證明”應該證明什麼,因此我提出了一個似乎可以滿足最終目標的簡單建議。
假設我們有一條素數階配對友好曲線;Alice 選擇了一個生成器 $ G \in G_1 $ 和一個發電機 $ H \in G_2 $ (鮑勃不需要知道)。
然後,對於每個證明,Alice 選擇一個隨機值 $ r \ne 0 $ , 並發布對 $ (rG, xrH) $ .
然後,當 Bob 想要驗證兩個“證明”是否 $ (X, Y), (Z, W) $ 對應同一個秘密 $ x $ ,他首先驗證了 $ X, Z \in G_1 $ , 和 $ Y, W \in G_2 $ ,並且它們都不是中性元素。然後,他檢查是否 $ e(X, W) = e(Y, Z) \ne 1 $ . 如果 $ X = r_1G $ , $ Y = r_1x_1H $ , $ Z = r_2G $ , $ W = r_2x_2H $ (對於某些人來說總是如此 $ r_1, x_1, r_2, x_2 $ ), 然後:
$$ e(X, W) = e(r_1G, r_2x_2H) = (e(G, H)^{r_1r_2})^{x_2} $$
$$ e(Y, Z) = e(r_2G, r_1x_1H) = (e(G, H)^{r_1r_2})^{x_1} $$
僅當它們相等時 $ x_1 = x_2 $