zk-snark 零知识证明原理

问题背景

问题有两个参与人:prover 和 verifier。
其中verifier知道多项式,然而不知道结果,但是给出结果时,verifier有验证方法。
prover知道结果,但是要在不告知结果的情况下,证明自己的确知道结果。

基于的性质

对于两个d阶的不同的多项式,至多只有d个交叉点。==> verifier随机给定x,如果prover总能给出正确的y,说明prover的确知道多项式的所有参数。

将多项式转换成R1CS 一阶约束系统

效果:给定解向量s后,只要s能通过每一组a、b、c的验证(符合s.a * s.b - s.c = 0),即说明校验通过

将R1CS转换为QAP(向量点积运算转换为多项式运算)

目的:简化s的验证过程,从多次向量点积运算改为1次多项式运算,即可完成校验

提供证明而不泄漏知识

椭圆曲线(待学习)
双线性映射(待学习)
指数知识假设(待学习)

数学基础太薄弱了,看这篇文章我承认草率了啊……
零知识证明 简书
零知识证明 ATA

lihongyu wechat
欢迎扫描二维码关注公众号
0%