不同基數下 Pedersen 承諾算術的 Sigma 證明
我想知道是否有可能證明開口之間的相等性 $ 3 $ 佩德森承諾 $ P\cdot Q $ 和 $ R $ 什麼時候 $ P, Q, R $ 有不同的承諾密鑰。
假設該承諾 $ R $ 承諾 $ a+b $ 和 $ P $ 和 $ Q $ 承諾 $ a $ 和 $ b $ 分別。我們如何證明, $ P $ 和 $ Q $ 合併送出到相同的值 $ R $ 如果我們不知道之間的關係 $ (g_1, h_1) $ 和 $ (g_2,h_2) $ ?
$ P = g_1^ah_1^{r_1} $ , $ Q = g_2^b h_2^{r_2} $ 和 $ R = g_3^{a+b}h_3^{r_3} $ .
LegoSNARKs做了類似的事情( $ CP_{had} $ ),但我很好奇是否有使用 sigma 協議的解決方案。
這當然可以僅使用標準 Sigma 協議並將它們組合在一起。但首先,讓我們介紹使用的標準 Sigma 協議建構塊:
- 兩個 Pedersen 承諾中承諾價值的平等
鑑於佩德森的承諾 $ P=g_1^a h_1^{r_1} $ 和 $ P’=g_2^{a’} h_2^{r_2} $ ,可以使用 Sigma 協議在零知識中證明 $ a=a’ $ . 請注意,語句中的所有生成器都可能不同。
- 兩個 Pedersen 承諾的平等開放
鑑於佩德森的承諾 $ P=g_1^a h_1^{b} $ 和 $ P’=g_2^{a’} h_2^{b’} $ ,可以使用 Sigma 協議在零知識中證明 $ a=a’\land b=b’ $ . 請注意,語句中的所有生成器都可能不同。
- 使用 Sigma 協議證明不同語句的合取
鑑於幾個陳述 $ {\mathit{stmt_i}}^{n}{i=1} $ ,可以證明它們的合取,即 $ \wedge^{n}{i=1} \mathit{stmt_i} $ . 在這種情況下,對於每個語句,驗證者都會採樣相同的挑戰值。
有關這些建構塊的更徹底處理,請參閱這篇文章。
現在,為您的陳述設計一個 Sigma 協議應該很簡單。讓我們使用問題中介紹的符號。首先,證明者計算 $ P’=g_3^a h_3^{r_1} $ 並顯示開口的等效性 $ P’ $ 和 $ P $ . 它對 $ Q’=g_3^b h_3^{r_2} $ 和 $ Q $ . 最後,證明者可以證明該點的承諾值的相等性。 $ P’*Q’=g_3^{a+b} h_3^{r_1+r_2} $ 和 $ R=g_3^{a+b} h_3^{r_3} $ . 這些陳述的結合也可以通過對所有構成的 Sigma 協議採樣相同的挑戰值來輕鬆證明。