241219 閱讀《Chameleon-Hashes with Ephemeral Trapdoors And Applications to Invisible Sanitizable Signatures》遇到了 NIZKPoK,故學習一下
NIZKPoK#
Non-Interactive Zero-Knowledge Proof 非互動零知識證明
论文中的体现#
解释#
證明者想要證明自己知道某個值 $x$,而不透露 $x$ 本身
Fiat-Shamir 變換(簡化的非互動證明)#
- 初始化:$g$ 和 $h$ 是公開的參數,$x$ 是秘密(證明者知道它)
- 生成證明:隨機選擇一個隨機值 $r$,計算承諾值 $t=h*g^r$
- 計算挑戰:生成一個挑戰 $c$(通常通過哈希函數生成)
- 計算響應:計算 $z=r+c*x$
- 發送證明:發送三元組 $(t,c,z)$
- 驗證:驗證者檢查是否滿足 $g^z=t*h^c$