Zero-Knowledge-Proofs

匹諾曹協議:這個方程是指多項式的內積還是乘法?

  • June 16, 2022

Pinocchio 論文中,我對第 2.2.1 節中的方程式感到困惑。(下圖)

是兩個多項式的乘積 $ v_0(x)+\sum(cv(x)) $ 和 $ w_0(x)+\sum(c_w(x)) $ 內積還是簡單的乘法?

圖片來自第 2.2.1 節

我所說的兩個多項式的內積是指每個多項式中同次項的乘積。IE $ (2x^2 + x)*(3x^2 + 2x) = 6x^2 + 2x $ 例如。

我的猜測是它是內積。但是,根據這篇文章,這似乎是一個簡單的乘法!

我發現它違反直覺的原因是,如果它是一個簡單的乘法,那麼左線和右線的乘積等於輸出線的關係不成立,因此違反了一個等式 $ p(x) = h(x)t(x) $ .

誰能給我一個理由?

是的,這是正則多項式乘法。

對於任何給定的門 $ g $ 我們分配一個值 $ r_g $ ,我們設置了條件“左輸入乘右輸入等於輸出”等價於條件 $ p(r_g)=0 $ 這又相當於 $ (x-r_g)|p(x) $ 這樣就可以檢查所有門的正確性 $ \prod_g(x-r_g)|p(x) $ 股息在哪裡 $ t(x) $ .

這意味著我們必須確保我們選擇 $ v_k(x) $ , $ w_k(x) $ 和 $ y_k(x) $ 以便 $$ v_0(r_g)+\sum c_kv_k(r_g)=c_{L_g}, w_0(r_g)+\sum c_kw_k(r_g)=c_{R_g}\quad {\rm and }\quad y_0(r_g)+\sum c_ky_k(r_g)=c_{O_g} $$ 在哪裡 $ L_g $ 是左輸入線的索引 $ g $ , $ R_g $ 是右輸入線的索引 $ g $ 和 $ O_g $ 是輸出線的索引 $ g $ . 如果是這樣的話 $ c_{L_g}c_{R_g}=c_{O_g}\Rightarrow p(r_g)=0 $ 按要求。的價值 $ p $ 在除 $ r_g $ 沒有直接揭示任何關於評估的正確性的資訊 $ g $ . 我們可以通過指定 $$ v_k(r_g)=\begin{cases}1 &k=L_g\ 0 &otherwise\end{cases} $$ $$ w_k(r_g)=\begin{cases}1 &k=R_g\ 0 &otherwise\end{cases} $$ $$ y_k(r_g)=\begin{cases}1 &k=O_g\ 0 &otherwise\end{cases} $$ 它通過每個多項式 $ m $ 點(每根線一個),以便我們可以使用拉格朗日插值構造這樣的多項式。

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