Zero-Knowledge-Proofs

Pedersen 承諾的指數不為零的零知識證明

  • June 18, 2022

給定一個值 $ v = g^ah^b $ , 和 $ a,b $ 秘密,我想知道是否有辦法在零知識中證明兩個指數都不為零。換句話說,給定 $ v $ 和 $ g,h \in \mathbb{G} $ , 我想證明 $ {a,b \in \mathbb{Z}_p: v = g^ah^b\wedge a\neq 0 \wedge b \neq 0} $ . 我知道如何實現第一個條件,但我不知道如何實現其他兩個。

我知道 sigma 協議通常用於這種類型的證明,但我還沒有找到專門實現這一點的協議。

編輯:

我應該補充一點 $ g^a $ 和 $ h^b $ 在我的情況下,無法向驗證者透露。

編輯2:

為了達到第一個條件(知識 $ a,b $ 這樣 $ v = g^ah^b) $ :

證明者

$ r_1, r_2 \in \mathbb{Z}_p $

$ u = g^{r_1}h^{r_2} $

$ c = H(g, h, u, v) $

$ z_1 = r_1 + ca $

$ z_2 = r_2 + cb $

發送 $ (u, c, z_1, z_2) $ 給驗證者。

驗證者

$ c \stackrel{?}{=} H(g, h, u, v) $

$ g^{z_1}h^{z_2} \stackrel{?}{=} v^cu $

您的 Pedersen 承諾 $ v $ 可以被視為對價值的承諾 $ a $ 有致盲因子 $ b $ ,或作為對價值的承諾 $ b $ 有致盲因子 $ a $ .

讓 $ \ell $ 成為你的發電機組大小 $ g $ 和 $ h $ .

不失一般性,您可以使用範圍證明來證明 $ v $ 是對價值的承諾 $ a $ 這樣 $ 0<a<\ell $ . 然後你創建一個類似的範圍證明,處理 $ v $ 作為對價值的承諾 $ b $ ,並證明 $ 0<b<\ell $ .

為了證明 $ 0<a<\ell $ , 計算承諾 $ v’=v/g $ 並證明 $ v’ $ 是對價值的承諾 $ a’ $ 這樣 $ 0\leq a’<\ell-1 $ .

範圍證明證明 $ v’ $ 可以是由一組不能等於或超過上限的組件組成的 $ \ell-1 $ .

要計算組件值,請參閱此答案

要了解如何使用這些組件建構範圍證明,請參閱此答案

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