Zero-Knowledge-Proofs
如何證明 Cx 是對長度為 lm 的整數的承諾
參考 Jan Camenisch 和 Anna Lysyanskaya 的論文A Signature Scheme with Efficient Protocols,在SCN 2002 的會議記錄中,我需要一些幫助來理解如何驗證 $ C_x $ 是對長度整數的承諾 $ l_m $ .
$$ C_x = g^x * h^r $$, 在哪裡 $ x $ 是秘密和 $ r $ 是隨機性; $ g $ 和 $ h $ 是已知參數
您想證明對開口的了解 $ (x,r) $ 對 Pedersen 的承諾,這樣 $ x $ 屬於範圍 $ [0,2^{l_m}] $ . 這樣的證明稱為範圍證明,存在許多方法,使用位分解(致力於 $ x $ 一點一點地證明 $ x_i\cdot 2^i $ 確實是 $ x $ , 並證明每個送出的值都是一點) 或隱藏順序組上的平方分解技術。我在幾個答案中討論了其中一些方法,請參見此處和此處。最新最先進的範圍證明方法是Bulletproof,它實現了相對令人印象深刻的效率保證,以至於它實際上用於多個現實世界的應用程序(例如加密貨幣 Monero 和 Mimblewimble 等)。
我知道的唯一策略是每個比特使用一個承諾。那麼你可以證明所有的承諾對應於 $ i^{th} $ 位為 $ i> l_m $ 包含零。