美文网首页
神奇的零知识证明和zkSNARK究竟是什么

神奇的零知识证明和zkSNARK究竟是什么

作者: 以太中文网 | 来源:发表于2018-10-18 14:44 被阅读0次

所谓零知识证明(zero-knowledge proofs),最初是由麻省理工教授Shafi Goldwasser、Silvio Micali(注:两人都是图灵奖得主)以及另一位密码学大牛Charles Rackoff于20世纪80年代初共同提出的[1]。有了零知识证明,就允许一方(证明者)说服另一方(验证者),一个给定的论断是真实的,而不会泄露任何超过论断本身有效性的信息。

由于这一话题确实艰涩难懂,这里便以著名的《阿里巴巴洞穴》[2]为例,以便让读者更好地了解零知识证明的概念:

“很久以前,在东部城市巴格达有一位名为阿里巴巴的老人,每天阿里巴巴都会跑去集市买卖东西。某一天在巴格达集市,一名小偷从阿里巴巴的手中抢走了一个钱包。阿里巴巴追赶这名小偷,而小偷则逃进了一个洞穴,这个神秘的洞穴有两个蜿蜒的入口:一个向左,另一个向右。阿里巴巴并没有看到小偷走的是哪一条路。对此,阿里巴巴无奈只能选择其中的一条,他决定从左洞口进入,遗憾的是,很快他便走到了左手通道的尽头。这一路上,他仔细搜遍了每一个角落,但并没有找到小偷。阿里巴巴自言自语地表示小偷可能在另一个通道。于是他搜索了右边的通道,奇怪的是,这个通道也有个死胡同,而他还是没有找到那个小偷……“这个洞穴很奇怪,” 阿里巴巴自言自语道,“那个该死的小偷跑哪去了?”第二天,又一名小偷顺走了阿里巴巴的包裹跑了。诡异的是,这个小偷又进入了那个奇怪的洞穴,阿里巴巴由于体力差的原因,他并没有看到这个小偷的走向,这一次他选择从右边开始搜索。他一路走到右边通道的死胡同,但仍然没有找到小偷。他认为,第二名小偷也像第一个小偷那样幸运地离开了,静静地融入了拥挤的集市。日子一天天过去,每天都会有小偷来光顾阿里巴巴这位老者。而阿里巴巴则总是会慢上一拍,从来没有抓到过这些小偷。到了第四十天,第四十名小偷顺走了阿里巴巴的头巾,然后又逃入了那个奇怪的洞穴,和以前一样,阿里巴巴依旧没有看到小偷的身影。这一次,他选择从左侧通道开始搜索,但遗憾的是,还是没有找到小偷。阿里巴巴感到非常困惑,按以前的解释,这第四十个小偷和其他三十九个小偷一样也是幸运的?但这样的解释未免有些牵强,连他自己都不信了。这是因为,四十个小偷全都幸运逃走的概率只有万亿分之一!所以,阿里巴巴对自己说,一定存在着另外一种更可能的解释。他开始怀疑那个奇怪的洞穴保护了一个秘密!对此,他决定躲藏在右边通道的袋子之下。在经历一段难熬的等待之后,他看到了一名小偷急匆匆跑了过来,然后对着墙壁低声说道:“芝麻开门”。随后,阿里巴巴便看到了惊人的一幕,那面墙壁竟然打开了,当小偷逃走之后,这面墙壁又合上了!但阿里巴巴非常高兴,因为他发现了这个奇怪洞穴的秘密。他发现,当这面墙壁打开时,洞穴的左手通道和右手通道是相连着的。阿里巴巴一遍又一遍地试验了这个魔法词,并最终设法替换掉了魔法词。第二天,小偷就被阿里巴巴给抓住了…… 出自《如何向孩子解释零知识证明》

而zkSNARK,则是零知识证明的一个变体,它使得证明者能够简洁地使任何验证者相信给定论断的有效性,并且实现计算零知识,而不需要证明者与任何验证者之间进行交互。

在零知识当中,zkSNARKs可被用于证明和验证计算的完整性,并以NP声明表示。一个掌握NP声明验证部分知识的证明者,可以产生一个简洁的证明,证实了NP声明的真实性。任何人都可以验证这个简短的证明,其提供了以下这些属性:

零知识:验证者除了从证明中了解到声明的真实性之外,他什么也无法得到。

简洁性:证明简短,易于验证;

非交互性:证明不需要证明者和验证者之间来回交互

可靠性:证明在计算上是正确的(即伪造假NP声明的证明是不可行的)这种证明系统也被称为论证;

知识证明:该证明不仅证明NP声明是真实的,而且证明者知道为什么是这样的。

这些属性共同构成了zkSNARK,它代表了一种零知识、简洁、非交互式的知识论证。

对此话题,伯克利大学区块链顾问Howard Wu研究颇深,他在《SNARKs的崛起》[3]这一课程当中详细介绍了零知识证明、zkSNARKs以及libsnark的概念,有兴趣的读者可以了解一下。

以下为中文译文:

1.zkSNARK教程与开发环境:https://github.com/howardwu/libsnark-tutorial↵

2.如何向孩子解释零知识证明:https://link.springer.com/content/pdf/10.1007%2F0-387-34805-0_60.pdf↵

3.SNARKs的崛起:https://drive.google.com/file/d/167mgTAXcbRpZRc5hCFPwwhidf8wpKeUY/view

参考资料:https://drive.google.com/file/d/167mgTAXcbRpZRc5hCFPwwhidf8wpKeUY/view

https://github.com/howardwu/libsnark-tutorial

https://link.springer.com/content/pdf/10.1007%2F0-387-34805-0_60.pdf

编译:洒脱喜

稿源(译):巴比特资讯(http://www.8btc.com/zksnark-zero-knowledge-proofs)

相关文章

  • 神奇的零知识证明和zkSNARK究竟是什么

    所谓零知识证明(zero-knowledge proofs),最初是由麻省理工教授Shafi Goldwasser...

  • 零知识证明与zkSNARK

    最近以太坊启动了“大都会”硬分叉,很重要的一个功能就是整合了ZCash的零知识证明技术zkSNARK。我们一起来看...

  • Circom编译器

    Circom是零知识证明中的电路编程语言,方便设计和开发零知识证明的数值电路。 Circom工具包包括: Circ...

  • 2018.4.21清华学习笔记

    一、什么零知识证明(Zero—Knowledge Proof) 零知识证明(Zero—Knowledge Proo...

  • Filecoin白皮书分析

    预备概念 零知识证明(Zero-knowledge proof) 零知识证明指的是证明者(prover)向验证者(...

  • 当区块链遇到零知识证明

    本文由云+社区发表 当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息...

  • 婚姻关系中的零知识证明

    零知识证明是什么? 零知识证明用一句话讲,就是:A手中有信息,B要负责验证A的确拥有这个信息,但B不能知道A的信息...

  • 零知识证明

    本周优壹组织的学习中学习到了加密相关的知识,其中出现了零知识证明,做了一些检索以期解惑。 如何理解零知识证明 零知...

  • 零知识证明

    你的手里有红绿两个颜色的小球,假如你有一个对颜色不敏感的朋友,你要如何在不告诉他小球具体颜色的情况下,让其相信那是...

  • 零知识证明

    员外外出打猎,误打误撞掉进了一个传说中的藏宝洞,传闻这个藏宝洞中有一个可以统领整个族人的权杖。员外心想自己终于可以...

网友评论

      本文标题:神奇的零知识证明和zkSNARK究竟是什么

      本文链接:https://www.haomeiwen.com/subject/ulojzftx.html