Zero-Knowledge-Proofs

零知識增長證明16

  • June 13, 2022

我了解在非互動式線性形式(Groth16 的第 15 頁:https ://eprint.iacr.org/2016/260.pdf )中,給出 $ A $ 和 $ B $ 在證明中 $ (A,B,C) $ ,模擬器可以計算出 $ C $ 經過: $ C =\frac{AB-\alpha\beta-D}{\delta} $ 在哪裡 $ D = \sum^{l}_{i=0} {a_i(\beta u_i(x) + \alpha v_i(x) + w_i(x))} $ .

但是,當方案編譯為 SNARK 時,我不明白模擬器將如何工作。在這裡,當所有鍵都被提升為電源形式時,我們有: $ e(A,B) = e(C, g^\delta) e(g^\alpha, g^\beta) e(D, g) $ . 我看到 $ e(C, g^\delta) = e(A,B)/(e(g^\alpha, g^\beta) e(D, g)) $ ,但模擬器如何提取 $ G_1 $ 元素 $ C $ 來自 $ G_t $ 元素 $ e(C, g^\delta) $ ?

模擬器不會生成隨機元素 $ \mathbb G_T $ , 但會像以前一樣生成統一的隨機值 $ A,B\in\mathbb Z/p\mathbb Z $ 併計算 $ C $ 根據你的等式。然後他們會通過 SNARK-ify 這些數字 $ [A]=g^A\in\mathbb G_1 $ , $ [B]=h^B\in\mathbb G_2 $ 和 $ [C]=g^C\in\mathbb G_1 $ 根據第 6 頁的底部(請注意,這些 SNARK 化的元素都均勻分佈在各自的組中)。

方程 $ e([A],[B])=e([C],h^\delta) e(g^\alpha,h^\beta)e(g,h)^D $ 然後將通過雙線性屬性自動為真 $ e $ .

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