最近有空看了看Plookup的论文。针对对电路描述不友好的操作(比如bit操作),Plookup给出了新的思路和证明方式。给定某个操作的真值表示(lookup table),证明某个操作的输入/输出是在真值表中。这种方式,相对之前的bit计算约束方式,降低约束的个数,提高了电路效率。
Plookup的论文下载地址如下:
https://eprint.iacr.org/2020/315.pdf
基本思想
Plookup尝试解决的问题是,给定两个集合,证明某个集合的元素在另外一个集合中。给定两个集合t和f,s是f排序后的结果。如果t中的元素最少在f中出现过一次。判别f中的元素是否包括在t中,只需要比较元素差的集合:
Polygon 推出基于STARK零知识证明的扩容方案 Miden,采用Facebook开源技术且兼容EVM:11月16日消息,Polygon宣布推出基于零知识的、与 EVM 兼容的扩容解决方案Miden,同时也将开源其核心组件的早期原型版本Polygon Miden 虚拟机 (VM) 。Polygon Miden 是一个基于 STARK 的 ZK Rollup,Polygon Miden VM 是完全开源的基于 STARK 的虚拟机,它的作用是验证程序执行并为DApp 部署提供增强的尽职调查。Miden VM 通过利用Facebook的Novi开发的STARK证明器/验证器Winterfell 对基于Rust语言编写的零知识虚拟机 Distaff VM进行了扩展。Distaff VM和Winterfell的核心开发人员Bobbin Threadbare将加入 Polygon 作为 Miden Lead,致力于重新整合 Distaff,将 Distaff 和 Winterfell 结合起来,并继续开发 Miden VM 及其周围的生态系统。
除Polygon Miden外,Polygon价值10亿美元的ZK策略资金还孵化Polygon Hermez和Polygon Nightfall。Polygon Hermez是此前收购的Hermez Network,Polygon Nightfall是与安永共同开发构建的以隐私为重点保护的Rollup。[2021/11/17 21:56:06]
Trail of Bits计划利用零知识证明重塑漏洞披露流程:安全研究机构Trail of Bits宣布,正在与约翰霍普金斯大学的Matthew Green合作,使用零知识证明(zero-knowledge proofs)技术为科技公司和安全漏洞研究人员建立一种可信的基础设施,在新的合作方式之下,双方在针对漏洞披露(Vulnerability Disclosure)的流程中可进行合理的沟通,而不必担心受到破坏或歧视。
在接下来的四年里,Trail of Bits 将会进一步推进零知识证明的理论极限,并为安全漏洞研究人员提供相应的软件,用以产生漏洞可利用性的零知识证明。[2020/5/22]
举个例子,t是{1,4,8}的集合,元素的差异集合为{3, 4},分别是4-1,8-4。如果s只有t中的元素组成,并且每个元素最少出现一次,例如{1,1,4,8,8,8},元素的差异集合也为{3,4}。如果s中的元素并不完全是t中的元素,那即使在元素差异集合一样的情况下,也不能说明s中元素在t的集合中。例如s为{1,5,5,5,8,8},元素的差异集合也为{3,4},分别是8-5,5-1。
动态 | 三星SDS采用零知识证明增强其企业区块链隐私性:据coindesk消息,三星企业技术部门SDS (Samsung SDS)正在使用零知识证明(zero-knowledge proof, ZKPs)来增强其Nexledger区块链的隐私保护。该公司周四表示,它已与总部位于以色列的QEDIT建立了合作关系,在不披露保密信息的情况下,在一个共享的账簿上记录和验证资产转移。此举突显出采用分布式账本技术的公司面临的挑战之一,向网络广播交易,可能会暴露敏感的客户数据,并向竞争对手泄露信息。[2019/11/14]
论文提出,可以引入一个随机因子,将前后两个元素相加的方法,确定两个集合的依赖关系。
定义多项式
在基本思想的基础上,论文在第三章定义了两个多项式F和G:
如果F和G相互对等,有且如下的条件成立:
f集合属于t
s是(f,t)的并集,并且按照t中的元素排序
如果条件成立,可以推导出两个多项式相等。F多项式可以看成是两部分组成,分别是两个连乘。后面的连乘可以看成是t中的元素连乘。前面的连乘,可以看成是f中元素的连乘。因为f中的元素属于t,则f中的元素的连乘,可以想象成多个相同元素的连乘。反之,因为beta和gamma的随机因子,也能从F和G对等条件推出满足的两个条件。具体的证明过程,可以查看论文的第三章。
在定义多项式的基础上,问题可以转化成两个多项式相等。
Plookup协议
已知f和t,可以排序得到s。因为s由f和t合并而成,s可以由两个函数h1和h2表示。关键在于第4步,定义了Z函数:
Z(g) = 1 - 初始为1
Z(x) 是两种多项式表示的商
Z(g^(n+1)) = 1 - n+1元素的连乘,两种多项式表达式相等
验证者,除了查看Z函数外,额外还要查看h1/h2连续性。
论文进一步将协议推广到更通用的情况,并给出了t中元素是连续情况下的优化协议。感兴趣的小伙伴可以自行查看。
Plookup提出了一种明确输入/输出的情况下,如何证明某个函数的运算正确的协议。输入输出定义成lookup表,计算的输入/结果只要在该lookup表中即表示运算正确。和Plonk采用同样的思路,Plookup定义了问题的多项式表示,证明了Z函数的递归表示和边界。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。