零知识证明可以让你证明你知道一个“秘密”,而不必告诉对方或向对方透露这个秘密。
用于零知识证明的数学非常强大,非常有用,因为它可以用于无密码登录,年龄验证,证明俱乐部成员资格、公钥所有权等,而不泄露任何信息。
Plonk是什么?
Plonk是由Gabizon, Williamson和Ciobotaru设计的,它是“为共同的非交互的知识论证的拉格朗日基的排列”的缩写。
Plonk是一个零知识证明系统,它使用一个可更新的参考字符串(挂在那里),这使得它具有一些非常有趣的特性。知道最近,我们一方面还可以计算所有不同的零知识证明系统,但自从加密学在区块链技术中的应用以来,它们就变得非常流行。
近年来,我们看到了各种各样的零知识证明系统的出现:Bulletproofs、zk-STARKs和不同种类的zk-SNARKs,例如Groth16, Marlin,Sonic,Plonk等。言归正传,让我们直接进入主题,谈谈为什么我们喜欢PLONK的三个原因。
· 由于有一个可更新的引用字符串,所以它是安全的。
· 重要的一点是速度快;验证和验证时间都快。
· 由于其通用引用字符串,它是可扩展的。
可安全更新的引用字符串
Plonk使用一个可更新引用字符串的受信任设置,这意味着两件事情。首先,在仪式中多个参与者生成原始参考字符串,只要至少有一个参与者是诚实的,它就不能被妥协。一个常见的过程,参与者也知道实际上破坏他们的硬件以获得额外的安全。
其次,特别是Plonk,原始引用字符串不断更新。在黄昏网络中,每N个分组生成器都会对字符串进行更新。随着时间的推移,至少有一个参与者诚实的概率增加,这增加了另一个安全级别。
“人人为我,我为人人”,大仲马在1844年小说《三个火枪手》中对可更新的参考字符串的描述。
快速验证和验证时间
当涉及到验证和验证时间,我们希望他们足够快,可以用于项目。这里我们区分验证和验证时间。
从区块链的角度来看,证明时间与证明者一起,并且只在他/她的一边发生。换句话说,证明者可以很容易地等待几秒钟,但如果需要更长的时间,那就肯定会带来不便。
目前,在移动Intel Core i5处理器上,我们的Plonk验证时间大约为6秒。
验证时间则是另一回事,因为它们需要被包含在区块中。换句话说,验证交易所需的时间越长,区块中包含的交易就越少,这确实影响了区块链的可扩展性。
Plonk的特别之处在于,它的验证时间几乎是恒定的,不受证明复杂性的影响,因此与其他零知识证明系统(如弹证明)相比,它是更好的选择。
可扩展通用引用字符串
快速验证时间不仅增加了项目的可扩展性。与其他zk-SNARKs不同,Plonk有一个通用的原始引用字符串。换句话说,原始受信任的设置可以用于构建任何类型的电路的证明,即使该电路是在原始仪式之后创建的。对于黄昏网络来说,这意味着平台用户可以依赖网络的安全和安全,而无需合作伙伴在每次需要新电路时都需要建立原始的参考字符串。