Commitments

為什麼必須在 pedersen 承諾中保密?

  • May 15, 2021

我在這個網站上閱讀了 Pedersen 的承諾:https ://asecuritysite.com/encryption/ped ,他們在那裡計算 $ h=g^s \bmod p $ , 他們說 $ s $ 一定是個秘密。

我想知道為什麼這是一個要求?因為驗證者會知道兩者的價值 $ h $ 和 $ g $ 無論如何,和一個隨機值 $ r $ 用於創建承諾,我不明白為什麼 $ s $ 必須保密嗎?

我想知道為什麼這是一個要求?

如果證明者知道什麼 $ s $ 也就是說,他們可以對任何他們想要的價值開放承諾。

假設承諾是 $ c = g^x h^r $ , 在哪裡 $ x $ 是最初承諾的價值。

那麼,如果證明者知道 $ s $ ,那麼他可以取任意值 $ y $ 併計算 $ r’ = r + s^{-1}(x - y) $ ; 然後,他可以將承諾打開為 $ c = g^y h^{r’} $

這將被接受為有效的開場白,因為 $ g^xh^r = g^{x+sr} = g^{x + s(r’ - s^{-1}(x-y))} = g^{y + sr’} = g^y h^{r’} $ ,因此他已成功打開承諾發布後選擇的值。

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