最后这个协议提供了一个证明给 Alice ,Bob 确实是用他知道的某个值对 a 举办求幂的,并且他也不能做此外任何操纵,譬喻:乘法,加法,因为这样就会粉碎 α-调动干系。
[email protected]安比尝试室: 换句话说,配对只支持 x * y 这种两个值的乘法,但不支持三个或以上的值相乘,好比不支持 x * y * z。
· verifier 也可以利用同样的要领本身伪造证明。
注解
在同态加密中,求幂是对被加密值举办乘法运算。我们可以应用这个布局到一个简朴的系数多项式 f(x) = c⋅ x的例子中:· 提供一个元组 (a, a’) 给 Bob, 然后让他对这两个值执行任意的求幂运算,返回功效元组 (b, b’),这里的指数 “α-调动” 依然保持稳定,即 bα = b'(mod n)
c) 有了回覆的元组和 α,Alice 就可以验证等式:因而 prover 就需要别离和每个 verifier 做交互来证明一个告诉(就是例子中指的多项式的常识)。
https://medium.com/@imolfar/why-and-how-zk-snark-works-3-non-interactivity-distributed-setup-c0310c0e5d1c
· verifier 必需生存 α and t(s) 直到所有相关证明被验证完毕,这就带来了一个大概造成奥秘参数泄漏的特别进攻面。
1)同态加密无法对两个加密值做乘法,那如何验证加密后的参数呢?
本系列文章已获作者中文翻译授权。
我们此刻筹备来归并这个慢慢演化出来的 zk-SNARKOP 协议。为简捷起见,我们将利用大括号来暗示由旁边的下标填充的一组元素,譬喻:[email protected]安比尝试室: 借助这个”无本钱的”能力,就可以轻松实现零知了。可是这里实现零常识的要领和实际中的Pinocchio协议,尚有Groth16 方案略有差异。实际方案中是用乘法乘以 δ^(δ·t(s))。
当我们在验证每一个参加者奥秘参数的一致性时,要留意参加者生成 CRS 的进程并没有强制后一个参加者(就是我们例子中的 Bob 和 Carol)都要利用前面已经果真的 CRS。因而假如一个进攻者是链上的最后一个参加者,他可以像链上的第一个参加者一样忽略前面的 CRS 随便结构一个有效的 CRS,这样他就酿成了独一一个知道奥秘 s 和 α 的人。 信任任意一个参加者
尽量交互式证明也有它的用处,譬喻一个 prover 只想让一个特定的 verifier (称为方针 verifier,更多的信息拜见 [JSI96] )确信,就不能再反复操作同一个证明去向别人证明这个声明白,可是当一个 prover 想让浩瀚的参加者同时可能永久地确信的话,这种要领就很低效了。prover 需要保持一直在线而且对每一个 verifier 执行沟通的计较。
· Bob 在元组的两个值的计较上都用了同一个指数(即 c)
作者:Maksym Petkus
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。