当前位置:网站首页>零知识证明——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程序矩阵之后,可以最后还原成多项式
边栏推荐
猜你喜欢
SQL Server 遇到报错解决办法--更新中
C#弹出询问对话框
"WAIC 2022 · hackers marathon" two ants wealth competition invited you to fight!
Ant Group's time series database CeresDB is officially open source
vscode离线安装插件方法
电脑一键重装系统内存完整性无法打开怎么办
JS new一个构造器发生了什么?从零手写一个new方法
带你了解数据分布式存储原理
How to monitor code cyclomatic complexity by refactoring indicators
【Attention演变史】翻译模型seq2seq (第二弹)
随机推荐
Elastic Search 根据匹配分和热度分排序
电脑一键重装系统内存完整性无法打开怎么办
visual studio 与 visual studio code
华为企业组网实例:VRRP+MSTP典型组网配置
使用 Chrome 开发者工具的 lighthouse 功能分析 web 应用的性能问题
hash和history路由的区别
web 应用开发最佳实践之一:避免大型、复杂的布局和布局抖动
【有奖征文】秋招特训,打造你的专属产品体验
Chrome安装zotero connector 插件
June To -.-- -..- -
Order of lds links
Force KouTi (5), the longest text string back
KubeSphere简介,功能介绍,优势,架构说明及应用场景
如何手动下载并安装 Visual Studio Code 的 SAP Fiori tools - Extension Pack
搭建MyCat2双主双从的MySQL读写分离
如果是测试 axi dma抓数的话 看这里
zynq records
刷题-洛谷-P1304 哥德巴赫猜想
多用户同时远程登录连接到一台服务器
微信小程序云开发 | 赠、删、改城市名称信息的应用实现