零知识证明
开坑了一定更有动力!
zk-SNARK
SNARK Pinocchio 由 Eli Ben-Sasson 在 2012 年提出:Pinocchio: Nearly Practical Verifiable Computation。
Vitalik Buterin: Quadratic Arithmetic Programs: from Zero to Hero
用一个案例看转化原理
zk-SNARK 的目标是将一个待证明的任务通过数学运算电路最终转化成多项式,并基于多项式给出证明。
基于多项式进行零知识证明
回顾转化后的多项式问题:
- Prover 拥有多项式 的完整系数。
- Prover 和 Verifier 约定了多项式 。
- Prover 要在不透露 和 的情况下证明 。
Knowledge-of-Exponent Assumption 工具:假设 Alice 有个值 ,Alice 希望 Bob 能以某个任意指数 计算 并将值返回。如何保证 Alice 一定做了指数运算?Alice 可以随机 并计算 ,把 一起传递给 Bob 让其计算 ,验证 即可。
标准转化过程
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.