http://www.7klian.com

【零常识证明】zk-SNARK(二)——多项式非交互式零常识证明

上一篇文章(多项式的性质与证明)中,作者先容了如何操作多项式的性质来证明某个多项式的常识,相信各人已经对结构证明有了一些根基的认识。今朝的证明协议仍然存在一些缺陷,本文将会针对这些单薄项举办改造,进而最终结构出关于多项式的零常识证明协议。本文重点:KEA,交互式零常识证明,非交互式零常识证明和 Setup。

这个是通过 Knowledge-of-Exponent Assumption (简称 KEA) 要领来实现的,在 [Dam91] 中有先容,更精准一点(留意 a 和 α(alpha) 这两个字符的差异)说:
verifier 可以和 prover 勾串,汇报他暗码参数 s, α,有了这些参数 prover 就可以伪造证明,就像前面 remark 3.1 提到的那样。
加密值相乘
留意:配对操纵是通过改变椭圆曲线来实现这些性质的,此刻我们用的标记 gⁿ 就代表曲线上一个由生成元自相加了 n 次的点,而不是我们前面用到的乘法群生成元。
名誉的是,因为我们可以利用配对来乘以加密值,所以我们就可以从第一个参数开始逐一执行一致性校验,而且确保了每个参数都源于前一个。
有一个问题是如何验证参加者在生成 CRS 时用的随机数值是一致的,因为进攻者可以生成多个差异的随机数 s₁, s₂, … 和 α₁, α₂, …,然儿女入这些差异的随机数去执行 s 的差异次幂计较(或提供随机数作为一个 CRS 的扩充),从而使 CRS 无效可能不行用。
even@ 安比尝试室:总结一下这篇文章中一步一步办理了下面的几个问题:

非交互中如何配置安详果真且可复用的参数——> 参数加密,verifier 借助暗码配对举办验证
因而,我们就需要一个可以被反复利用,果真,可信,又不会被滥用的奥秘参数。
even@ 安比尝试室: 借助这个」无本钱的」能力,就可以轻松实现零知了。可是这里实现零常识的要领和实际中的 Pinocchio 协议,尚有 Groth16 方案略有差异。实际方案中是用乘法乘以 δ^(δ·t(s))。
至此,一个用来证明多项式常识的完整的
zk-SNARK 协议就结构出来了,不外此刻的协议在通用性上依然尚有许多限制,后头的文章将继承先容如何结构通用的 zk-SNARK。

留意:乍一眼看已往,这个限制大概会阻碍相关成果的实现,但在 zk-SNARK 中这反而是担保安详模式的最重要性质,拜见 remark 3.3。

留意零常识是如何垂手可得地融入到这个布局中去的,这凡是也被称为”无本钱的”零常识。
有了配对,我们此刻就筹备去配置安详果真且可复用的参数了。假定一下我们让一个厚道的参加方来生成奥秘值 s 和 α。只有 α 和所有须要的 s 的幂及其对应的 α-调动被加密了,那么原始数据就必需要被删除(i 为 0,1,…,d):
原文链接

原文标题:《从零开始进修 zk-SNARK(二)——多项式的非交互式零常识证明》
a)Alice 有一个值 a,她想要 Bob 对其举办任意指数的求幂(这里 a 是一个有限域群的生成器),独一的要求是只能对 a 举办求幂,为了担保这一点,她要:


verifier 知道 prover 有一个有效的多项式,可是并不知道是哪一个。我们可以操作多项式的其他性质添加特另外证明,如:被多个多项式整除,是某个多项式的平方。固然大概会有一个处事可以或许接管,存储和嘉奖所有颠末证明的多项式,可能有一个需求,加密计较某种形式的未知多项式。然而若有通用方案就可以支撑无数的应用。

到此刻为止,我们已经讲完了一个交互式的零常识方案。但为什么我们还需要有非交互式呢?因为交互式证明只对原始的 verifier 有效,其他任何人(其他的 verifier)都不可以或许信任这个证明,因为:
(ac)α = (a’)c
翻译 & 注解:even@ 安比尝试室(even@secbit.io)
这个布局「限制」prover 只能用 verifier 提供的加密的 s 举办计较,因而 prover 只能将系数 c 赋给 verifier 提供的多项式。此刻我们可以扩展这种单项式上的要领到多项式上,因为计较是先将每项的分派分隔计较然后再「同态地」相加在一起的(这个要领是 Jens Groth 在 [Gro10] 中先容的)。所以假如给定 prover 一个指数为 s 的幂以及它们的调动的加密值,他就可以计较原始的和调动后的多项式,这里也必需要满意同样的校验。对付阶数为 d 的多项式:
Bob 只能用 Alice 原本的元组来保持 α 干系
Remark 3.3 假如 pairing 的功效有大概在其它雷同的乘法协议中被复用,那么这里就完全没有安详性可言了,因为这样的话 prover 就可以结构
(b)α = b’

担保 prover 的证明是凭据法则正确结构的——> KEA
选择一个随机数 α
verifier 也可以利用同样的要领本身伪造证明。
Bob 在元组的两个值的计较上都用了同一个指数(即 c)
参考文献

最后这个协议提供了一个证明给 Alice,Bob 确实是用他知道的某个值对 a 举办求幂的,并且他也不能做此外任何操纵,譬喻:乘法,加法,因为这样就会粉碎 α-调动干系。
结论是:
[DK18]—Apoorvaa Deshpande and Yael Kalai. Proofs of Ignorance and Applications to 2-Message Witness Hiding. Cryptology ePrint Archive, Report 2018/896. https://eprint.iacr.org/2018/896. 2018.

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。