Bitguai.com

区块链技术丨改变世界
做高价值的区块链资讯媒体

解析零知识证明(zero-knowledge proofs)和zkSNARK是区块链技术?

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

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

“很久以前,在东部城市巴格达有一位名为阿里巴巴的老人,每天阿里巴巴都会跑去集市买卖东西。

某一天在巴格达集市,一名小偷从阿里巴巴的手中抢走了一个钱包。

阿里巴巴追赶这名小偷,而小偷则逃进了一个洞穴,这个神秘的洞穴有两个蜿蜒的入口:一个向左,另一个向右。

阿里巴巴并没有看到小偷走的是哪一条路。对此,阿里巴巴无奈只能选择其中的一条,他决定从左洞口进入,遗憾的是,很快他便走到了左手通道的尽头。这一路上,他仔细搜遍了每一个角落,但并没有找到小偷。阿里巴巴自言自语地表示小偷可能在另一个通道。于是他搜索了右边的通道,奇怪的是,这个通道也有个死胡同,而他还是没有找到那个小偷……

“这个洞穴很奇怪,” 阿里巴巴自言自语道,“那个该死的小偷跑哪去了?”

第二天,又一名小偷顺走了阿里巴巴的包裹跑了。诡异的是,这个小偷又进入了那个奇怪的洞穴,阿里巴巴由于体力差的原因,他并没有看到这个小偷的走向,这一次他选择从右边开始搜索。他一路走到右边通道的死胡同,但仍然没有找到小偷。他认为,第二名小偷也像第一个小偷那样幸运地离开了,静静地融入了拥挤的集市。

日子一天天过去,每天都会有小偷来光顾阿里巴巴这位老者。而阿里巴巴则总是会慢上一拍,从来没有抓到过这些小偷。到了第四十天,第四十名小偷顺走了阿里巴巴的头巾,然后又逃入了那个奇怪的洞穴,和以前一样,阿里巴巴依旧没有看到小偷的身影。这一次,他选择从左侧通道开始搜索,但遗憾的是,还是没有找到小偷。

阿里巴巴感到非常困惑,按以前的解释,这第四十个小偷和其他三十九个小偷一样也是幸运的?但这样的解释未免有些牵强,连他自己都不信了。这是因为,四十个小偷全都幸运逃走的概率只有万亿分之一!所以,阿里巴巴对自己说,一定存在着另外一种更可能的解释。

他开始怀疑那个奇怪的洞穴保护了一个秘密!对此,他决定躲藏在右边通道的袋子之下。在经历一段难熬的等待之后,他看到了一名小偷急匆匆跑了过来,然后对着墙壁低声说道:“芝麻开门”。随后,阿里巴巴便看到了惊人的一幕,那面墙壁竟然打开了,当小偷逃走之后,这面墙壁又合上了!但阿里巴巴非常高兴,因为他发现了这个奇怪洞穴的秘密。

他发现,当这面墙壁打开时,洞穴的左手通道和右手通道是相连着的。阿里巴巴一遍又一遍地试验了这个魔法词,并最终设法替换掉了魔法词。第二天,小偷就被阿里巴巴给抓住了……   出自《如何向孩子解释零知识证明》

 

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

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

  1. 零知识:验证者除了从证明中了解到声明的真实性之外,他什么也无法得到。
  2. 简洁性:证明简短,易于验证;
  3. 非交互性:证明不需要证明者和验证者之间来回交互
  4. 可靠性:证明在计算上是正确的(即伪造假NP声明的证明是不可行的)这种证明系统也被称为论证;
  5. 知识证明:该证明不仅证明NP声明是真实的,而且证明者知道为什么是这样的。

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

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

以下为中文译文:

p1

p2

p3

p4

p5

p1

p2

p8

p9

p10

p3

p12

p13

p14

p15

p16

p17

p18

p19

p20

p21

p22

p23

p24

p25

p26

p27

p28

p29

p30

p31

p32

p33

p34

p35

p36

p37

p38

p39

p40

p41

注释    (↵ returns to text)
  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://www.bitguai.com/block/jishu/25901.html,转载请注明出处!

免责声明:转载此文为传递更多市场信息,不代表比特怪的观点和立场,请自行参考。



商务合作(QQ):755847138
媒体合作:Market@bitguai.com
底部导航

本站除标明"本站原创"外所有信息均整理转载自互联网,版权归原作者所有。如有不妥,请联系我们修改或删除。

CopyRight 2017-2018 Bitguai.com All Rights Reserved丨苏ICP备18049263号-1 百度地图 谷歌地图 RSS订阅


比特怪成立于2017年,秉承做高价值的区块链技术和应用为核心的区块链资讯媒体。网站内容主要涵盖区块链技术、游戏、应用场景和区块链项目落地等。让区块链技术应用服务于各个行业。