当前位置:网站首页>零知识证明——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程序矩阵之后,可以最后还原成多项式
边栏推荐
猜你喜欢

How to promote the implementation of rural revitalization

Ant Group's time series database CeresDB is officially open source

性能测试流程

ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators

The list of Kubernetes - watch mechanism

刷题-洛谷-P1319 压缩技术

hash和history路由的区别

linkboy 5.0 正式发布,新增语音识别、图像识别

In July 2022, domestic database memorabilia

高效目标检测:动态候选较大程度提升检测精度(附论文下载)
随机推荐
Go学习笔记(篇一)配置Go开发环境
Order of lds links
Desthiobiotin-PEG4-Azide_脱硫生物素-叠氮化物 100mg
刷题-洛谷-P1200 你的飞碟在这儿Your Ride Is Here
linkboy 5.0 正式发布,新增语音识别、图像识别
多商户商城系统功能拆解22讲-平台端分销商品
如何找到某个 ABAP structure 某字段的源头来自哪个数据库表
win10终端中如何切换磁盘
宏定义小方法
腾讯云胡启明:Kubernetes云上资源的分析与优化
c sqlite ... ...
2022年国内手机满意度榜单:华为稳坐国产品牌第一
【Attention 演变史】RNN的产生、架构、推广、问题(第一弹)
NLP技术为何在工业界这么卷?前沿案例解析来了
搭建MyCat2一主一从的MySQL读写分离
zynq records
蚂蚁集团时序数据库CeresDB正式开源
刷题-洛谷-P1307 数字反转
EasyUi常用代码
Jmeter - Heap配置原因报错Invalid initial heap size: -Xms1024m -Xmx2048mError