Notes on Zero Knowledge Proofs
/ 2 min read
Updated:Table of Contents
算术电路: .
举例: 验证hash函数的算术电路: : 当输出, 否则输出不为. 可以表示为: , 其中和是算术电路的输入. 对于一个SHA256的验证, 算术电路大概需要个门.
NARK: Non-interactive ARgument of Knowledge
组成:
- (public) 验证电路: ;
- (public) 公共声明 (public statement): ;
- (private) 证据/见证 (witness): ;
- (public) 公共参数 (public parameters): ;
- (public) prover’s parameters: ;
- (public) verifier’s parameters: .
性质:
- 完备性(Completeness): 对于使得算术电路输出的输入, 生成的证明一定可以通过验证.
- 可靠性(Soundness): 如果V接受了证明, 则生成证明的Prover一定有的知识.
SNARK: Succinct NARK, 一个符合完备性, 可靠性的NARK, 同时是简短的.
zk-SNARK: 一个 SNARK, 同时需要满足 zero knowledge.