当前位置:网站首页>零知识证明——zkSNARK证明体系
零知识证明——zkSNARK证明体系
2022-08-04 20:00:00 【白速龙王的回眸】
本笔记整理摘录自Steven Yue大佬
三个核心算法:
setup约定电路,生成随机参数
prove:证明方生成零知识证明
verify:验证方进行验证
完整性:
知识证明:(非常关键)
证明,证明方确实有一些我们不知道的信息,也就是这个w确确实实存在
简短证明:简短高效
零知识:公有输入x和证明pi不能暴露w
PCP定理(概率可验证定理)
所有NP难问题,都可以通过随机抽样,通过随机验证方法证明

不是直接看pi了,只能在里面抽取k位
总的来说就是抽查,抽查的正确次数越多,作假的可能性越低(有点假设检验内味了)
Kilian SNARK
PCP可能有庞大的只读存储区域
我们将readonly那里编程一个commitment
证明方展示数据的时候只需要附带一个Merkle Proof证明自己提交的数据确实是在pi中的即可
这样就可以避免存储大量的pi信息
非交互的Killian SNARK
证明方在提交证明的时候验证方无需在线,它可以在后面随机事件点来验证
需要Fiat-Shamir-Heuristic,它可以把任何交互式的随机验证协议转换为非交互式的
首先需要一个安全哈希函数H(随机预言机,无论输入的是什么,输出的值我们都可以看作是一个和输入没有关联的随机数)
改造的关键就是把验证方的随机值依赖于安全哈希函数来生成
LCPC(线性)
两个d阶的不同系数的多项式,最多只会有d个点重合
通过把证明的值当作多项式的系数,然后验证多项式在某个点的值是否相等即可


因此我们把SNARK转成多项式的形式
但是电路很难变成多项式的形式,所以需要一个叫做R1CS的程序矩阵

多项式插值,范德蒙德多项式,还原多项式的每一项系数
构造成多项式子P, Q, R
证明P * Q = R
总结
PCP定理是通过随机抽查的方法来快速验证任何NP问题的解。
LPCP是约束版的PCP,讲了通过随机抽查多项式取值的方法来快速验证多项式的系数。
Fiat-Shamir Heuristic可以把一个交互式协议变成一个非交互式协议。
从一个数学运算电路出发,变换成R1CS程序矩阵之后,可以最后还原成多项式
边栏推荐
猜你喜欢
随机推荐
CAS :80750-24-9(脱硫生物素 NHS 酯)
node 的运行命令
新式茶饮,卷完水果还能卷什么?
In July 2022, domestic database memorabilia
June To -.-- -..- -
If it is test axi dma catch a few words here
uwp ScrollViewer content out of panel when set the long width
c sqlite ... ...
【着色器实现Glitch单项故障闪烁效果(与Television效果不同)_Shader效果第十四篇】
Order of lds links
Use "green computing" technology to promote sustainable development of computing power
Zip4j使用
ASP.NET商贸进销存管理系统源码(带数据库文档)源码免费分享
长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析等领域中的应用
web 应用开发最佳实践之一:避免大型、复杂的布局和布局抖动
C语言基础[通俗易懂]
seata源码解析:seata server各种消息处理流程
拥抱Cmake小朋友 简单又实用,但是不灵活
awk statistical difference record
力扣题(5)—— 最长回文子串








