在这一步步的改造之后,我们获得了最终版本的 zkSNARK,又名 Pinocchio [Par + 13],协议(零常识 部门是可选的并用差异的颜色 标注出来了),就是:
[Gro10]—Jens Groth.「Short pairing-based non-interactive zero-knowledge arguments」. In: International Conference on the Theory and Application of Cryptology and Information Security. Springer. 2010, pp. 321–340.
[GM17]—Jens Groth, Mary Maller. Snarky Signatures: Minimal Signatures of Knowledge from Simulation-Extractable SNARKs. Cryptology ePrint Archive, Report 2017/540. https://eprint.iacr.org/2017/540. 2017.
even@ 安比尝试室: 与前文中的零知方案差异,这里通过相加而不是相乘的方法来确保 prover 常识的零知性。
【零常识证明】zk-SNARK(四)——多项式的约束约束
注解
区块律动 BlockBeats 提醒,按照银保监会等五部分于 2018 年 8 月宣布《关于防御以「」「」名义举办犯科集资的风险提示》的文件,请宽大公家理性对待区块链,不要盲目相信口不择言的理睬,树立正确的钱币见识和投资理念,切实提高风险意识;对发明的违法犯法线索,可努力向有关部分举报反应。
来历链接:weixin.qq.comeven@ 安比尝试室:这样会严重限制实用性,电路需要支持参数。假如不能按照 verifier 的输入对其举办查抄,那么证明的可用性将受到限制。也就是说,固然知道 prover 将两个值相乘可是并不知道这些值和/或计较功效。尽量有大概在 proving key 中通过「硬编码」来举办验证一些特定的值(如,乘法运算的功效必需为 12),但这就需要针对每一个想要的「verifier 的输入」生成单独的密钥对。Pinocchio 协议是针对 GGPR 论文的改造,在 3.1 节中也提到了实现零常识只需要沿用 GGPR 论文的要领即可,并不是这篇论文的孝敬。别的,Pinocchio 协议论文偏重工程实践,在 2013 年时,零常识证明还并没有获得应用。真正的应用照旧自从匿名币 ZCash 起。
再次感激 Maksym Petkus 大神的分享和授权。文章翻译存在不敷之处,接待更正,增补,指导。
这个协议证明白一个非凡有限执行机制的计较,即在一次运算中可以将险些任意数量的变量加在一起可是只能执行一次乘法,因而就有时机优化措施以有效地操作这种特性的同时也利用这个布局最大限度地淘汰计较次数。
[Mal+19]—Mary Maller, Sean Bowe, Markulf Kohlweiss, and Sarah Meiklejohn. Sonic: Zero-Knowledge SNARKs from Linear-Size Universal and Updateable Structured Reference Strings. Cryptology ePrint Archive, Report 2019/099. https://eprint.iacr.org/2019/099. 2019.结论
校对:valuka@ 安比尝试室
以前我们利用随机数δ-转换来结构多项式的「零常识」证明,这种要领可以或许使得证明与随机数无法区分(零常识这一章节):
[Gro+18]—Jens Groth, Markulf Kohlweiss, Mary Maller, Sarah Meiklejohn, and Ian Miers. Updatable and Universal Common Reference Strings with Applications to zk-SNARKs. Cryptology ePrint Archive, Report 2018/280. https://eprint.iacr.org/2018/280. 2018.通过计较我们证明白:
https://medium.com/@imolfar/why-and-how-zk-snark-works-7-constraints-and-public-inputs-e95f6596dd1c
更巨大的约束也可以用这种方法暗示,以此来确保利用的值满意法则。留意很重要的一点是在当前的计较布局中是不能对 1 举办约束的:
原文标题:《从零开始进修 zk-SNARK(五)——Pinocchio 协议》
最终,我们需要对每一个多项式的值利用差异的随机数 (δs),譬喻:
很是奇怪的是最初的 Pinocchio 协议 [Par+13] 主要存眷可验证的计较,而较少涉及 零常识 性质,这其实只需要一点点小修改,这个险些是没有什么本钱的。https://medium.com/@imolfar/why-and-how-zk-snark-works-8-zero-knowledge-computation-f120339c2c55于是既埋没了加密值,又使得等式可以通过有效计较 的查抄。
因而假如可以由 verifier 而不是 prover 为计较指定一些值(输入可能输出),包罗,那证明就可以变得更通用了。
零常识证明结构规模正在不绝成长,包罗引入了优化([BCTV13, Gro16, GM17]),改造譬喻可更新的 proving key 和 verification key([Gro+18]),以及新的结构要领(Bulletproofs [Bün+17], ZK-STARK [Ben+18], Sonic [Mal+19])。
[BCTV13]—Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, Madars Virza. Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture. Cryptology ePrint Archive, Report 2013/879. https://eprint.iacr.org/2013/879. 2013.导读
非交互性 (Non-interactive)——证明只要一经计较就可以在不直接与 prover 交互的前提下使任意数量的 verifier 确信
even@ 安比尝试室:这里将原本由 prover 赋值的一些变量改为由拿到 verifier 赋值,使得 prover 不得不与 verifier 保持沟通的输入。这不只办理了 Verifier 参数输入的问题,也间接办理了常数赋值的问题。
【零常识证明】zk-SNARK(二)——多项式非交互式零常识证明
约束和民众输
民众输入和 1
回首
计较的零常识证明
[con18]—Wikipedia contributors. Constraint satisfaction. Wikipedia, The Free Encyclopedia. 2018.
【零常识证明】zk-SNARK(一)——多项式的性质与证明
留意:按照协议(单个变量操纵数多项式 的章节)的性质,由多项式 l0(x),r0(x),o0(x) 暗示的值 1 已在相应的运算中具备了符合的值,因此不需要再赋值了。
注解
注解
原文来历:安比尝试室 作者:Maksym Petkus
自从引入通用计较协议(计较的证明这一章节),我们一直放弃了零常识 的性质,这是为了让协议的改造变得更简朴。至此,我们已经构建了可验证的计较协议。
注解
可是问题是利用沟通的 δ 会故障安详性,,因为我们在证明中别离用了以下这些值:
我们的阐明主要会合在运算的观念上。可是,协议实际上不是去做」计较「,而是检讨输出值是否是操纵数正确运算获得的功效。所以我们称之为约束,即一个 verifier 约束 prover 去为预界说的「措施」提供有效值,而无论这个「措施」是什么。多个约束构成的系统被称为「约束系统」(在我们的例子中这是一个一阶约束系统,或被称为 R1CS)。
零常识 ( zero-knowledge)——很「难」从证明中提取任何常识,即,它与随机数无法区分。
零常识计较
[Par+13]—Bryan Parno, Craig Gentry, Jon Howell, and Mariana Raykova. Pinocchio: Nearly Practical Verifiable Computation. Cryptology ePrint Archive, Report 2013/279. https://eprint.iacr.org/2013/279. 2013.
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。