Pedersen 承諾的指數不為零的零知識證明
給定一個值 $ 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 $ .
要計算組件值,請參閱此答案。
要了解如何使用這些組件建構範圍證明,請參閱此答案。