小行浅聊零知识证明

导语:

区块链是基于加密学、数学、代码学等多学科领域的创新性技术,融合了很多技术,包括前边解读的非对称加密、共识算法、智能合约、时间戳等等。小行是非技术人士,但爱钻研,对不了解的新奇事物天然充满好奇,初次接触时往往都是不明觉厉,其实当你简单了解它背后的原理之后,就会一切了然,同时会对区块链更加坚定更加充满信心。

相信伙伴们在看白皮书或者研究区块链方面的文献资料时,或多或少会看到“零知识证明”这个词汇。今天跟小行一起做个简单的了解吧。

科普中国●科学百科

零知识证明(Zero-Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。

通俗的讲,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即给外界的“知识”为“零”。

零知识证明详解

当遇到“一个信息数据需要验证,既不能泄露任何有用信息,又能让对方确信。”这种情况时,零知识证明就能派上用场,大显身手了,这个验证的过程我们可以称之为零知识证明协议。零知识证明严格意义上来说属于加密学范畴。

零知识证明协议包括两部分:

证明者(Prover)和验证者(Verifier)

证明的过程是通过这两部分之间的交互来执行的,当证明者P向验证者V证明了某个信息数据,而这时验证者V除了相信且知道证明者P能证明该信息数据外,没有获得任何与信息数据相关的内容, 我们可以称证明者P实现了零知识证明。

零知识证明分为交互式零知识证明和非交互式零知识证明。

交互式零知识证明

Goldwasser等人提出的零知识证明中,证明者和验证者之间必须进行交互,这样的零知识证明被称为“交互零知识证明”。

非交互式零知识证明

80年代末,Blum等人进一步提出了“非交互零知识证明”的概念,非交互零知识证明中不需要任何交互,证明者P事先公开公布一个自助验证渠道,任何人只要愿意花时间,即可自助验证,用这样一个自助过程代替交互过程实现了零知识证明。

用一个简单实例贯穿说明,路人甲想向他的同事证明某个地方是他的住处,但又不想让他们看到自己房间里的摆设。

方式一:同事跟路人甲一起,看着路人甲用钥匙打开房门,并进入了路人甲房间,两人一起度过了一个愉快的下午。以此证明这是路人甲的住处。

方式二:让同事在楼梯拐角处等待,路人甲从房间把自己另外一套换洗的工作服拿出来给同事看,以此证明这是自己的住处。

方式三:路人甲在公司公开告诉同事们,xx小区xx栋xxx号是我的住处,如果你们想验证,到我家门口,拨打我的手机号,我的手机在家里放着,你们可以听听里边是否有我的电话铃声,铃声是“我滴老噶,就住在宅个屯,我是宅个屯里,土生土长的人儿...”

小行解析:在这个实例里边,同事们是验证者,路人甲是证明者,房间里边的摆设是信息内容。

方式一是普通的证明,信息也泄露了,所以可以称之为知识证明。

方式二和方式三都是零知识证明,既证明了此处是自己的住处,又没有泄露“房间里的摆设"这个信息内容。不同的是,方式二是交互式零知识证明,即路人甲和同事之间进行了证明、验证的交互;而方式三,路人甲向同事们直接公开公布了一个自助验证方式——拨打电话听铃声,以此代替了交互证明的过程,即非交互式零知识证明。

零知识证明在区块链的应用

零知识证明在加密货币和区块链中,通所谓的知识通常是指交易信息数据。

以最典型的Zcash为例说明,Zcash以其超强的匿名性著称,零知识证明是实现Zcash的匿名特性的核心技术,充分运用了”零知识证明”这一密码学原理,在区块链记录中隐藏了交易者的所有信息,包括交易双方的地址和交易的金额,因此除了密钥所有者,即使别人获取到了某钱包地址所对应的IP,也无法追溯整个交易链,以此确保隐私的安全,即匿名。

零知识证明如何助推Zcash超强匿名性的实现?

以地址A(交易方A)中发送5个币到地址B(交易方B)为例,如果是比特币的话,会把发送者删除5个币,给接收者建立5个币,打包验证的矿工可以看到交易双方的地址以及金额,交易完成之后,整个网络里所有人都可以查看的到交易双方的地址和金额,甚至可以监测追溯整个流向。

Zcash却可以实现在不泄露有用信息的情况下实现转帐,这里的有用信息包括交易双方的地址和金额等。和比特币不同的是,Zcash代币都有对应的加密票号,发送之后,不是删除发送者的代币,而是发送者会把自己发送的代币票号001放入到作废列表,然后把自己发送的代币票号001广播全网,这时系统会给接收者建立新票号002。打包验证的矿工拿到票号001后,去作废列表检索,能检索到就说明发送者的代币已作废,同时把接收者新票号002录入正常的票号列表,接收者凭私钥即可对票号解密获取代币。交易双方的信息都是加密的,所以才保证了双方信息隐私的安全,矿工是按加密票号对比作废列表从而实现转帐,矿工只能看到两个票号,无法看到双方的地址和金额,第三方更无从查看。由此Zcash网络充分利用零知识证明实现了匿名性交易。

至此相信您已经可以大致了解零知识证明的特性以及优点。

特性:完备性、合理性、零知识性

优点:安全高效

结语:

PS:本篇解读解析是小行个人理解而解读的认知,有很多地方可能存在不妥之处,欢迎批评指正。零知识证明理论是一个非常重要的理论和思维方式,给我们提供了一种能向别人证明拥有某知识但不透漏该知识的一种思维和方法。零知识证明不仅仅是区块链方面可以应用,在日常生活中、工作事务中、各行各业领域有这方面安全需求的场景,都可以应用,诸如身份认证、学术讨论等都可以尝试零知识证明。

以上内容仅代表小行个人理解和认知,欢迎指正评论,谢谢。

文末寄语:愿每一个爱写作的人,心中有杆良心称,手中执笔有公正。愿您的文笔水平更上一层楼,在文字世界里收获更多物质和精神上的收益,愿每一个爱写作的伙伴在每一次合上笔盖或者敲击键盘entet键的一刹那,都有着侠客收剑入鞘的潇洒、骄傲和满满的成就感!

【以上内容系Mr小行原创图文,如有转载,请注明出处】

本文同步发表于微信公众号:小行执笔走天涯

一花一世界,一叶一菩提;

一人一追寻,一笔一天涯。

天涯之大,大外有大,

只字片语间,一切了然......

每一次经历,都是一种收获;

每一步旅程,都会看到不一样的风景;

既然迈开了步子,就不要停下来。

我是小行,欢迎关注“小行执笔走天涯”,让我带你在文字间浪迹不一样的天涯。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180907G1P11Z00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券