Zero-Knowledge-Proofs

雙線性設置中常數離散對數的知識證明

  • February 3, 2022

考慮配對 $ \mathbb{e}: \mathbb{G}_1\times \mathbb{G}_2\longrightarrow \mathbb{G}_T $ 帶發電機 $ g_1 $ , $ g_2 $ 為了 $ \mathbb{G}_1 $ , $ \mathbb{G}_2 $ 分別。團體 $ \mathbb{G}_1 $ , $ \mathbb{G}_2 $ , $ \mathbb{G}_T $ 是一些主要的順序 $ p $ .

對於活板門 $ s $ , 讓 $ [g_1,g_1^s,\cdots,g_1^{s^N}], [g_2,g_2^s,\cdots,g_2^{s^N}] $ 是公共參考字元串(儘管對於一些 Snarks 和多項式承諾方案,公共參數不包含 $ g_2^{s^i} $ 為了 $ i\geq 2 $ ).

給定元素 $ a,b\in \mathbb{G}_1 $ ,我想在 ZK 中證明我知道一個常數(而不是更大的多項式) $ \alpha $ 這樣 $ a^{\alpha} = b $ . 最有效的方法是什麼?

我有幾個想法:

想法1:

  1. 對於隨機生成的元素 $ a_2\in \mathbb{G}_2 $ (挑戰),證明者發送元素 $ b_2:= a_2^{\alpha} $ .
  2. 驗證者執行配對檢查 $ \mathbb{e}(a,b_2) = \mathbb{e}(a_2,b) $

想法 2

  1. 證明者以零知識證明他知道一些多項式 $ f(X) $ 這樣 $ a^{f(s)} = b $ (有直接的方法可以做到這一點,與 Schnorr 的離散日誌 PoK 協議沒有太大區別)
  2. 證明者發送元素 $ b_2:= g_2^{s^N\cdot \alpha} $ (如果 $ \alpha = f(s) $ 對於一些非常數多項式 $ f(X) $ ).
  3. 驗證者驗證在步驟 1 中發送的證明。
  4. 驗證者執行配對檢查 $ \mathbb{e}(a,b_2) = \mathbb{e}(b,g_2^{s^N}) $

是否有更有效的協議可以完成這項工作?我不是特別喜歡依靠散列算法生成組的隨機元素的想法 $ \mathbb{G}_2 $ 作為挑戰。

我不認為這些想法中的任何一個都是零知識,因為我看不到驗證者在沒有證明者合作的情況下如何能夠產生有效的成績單。

另一方面,如果我們只執行 Schnorr 協議 $ \mathbb G_1 $ 在不使用雙線性結構的情況下,這似乎可以完成這項工作。有什麼理由不能接受嗎?

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