2

一文带你读懂零知识证明

 2 years ago
source link: https://www.jinse.com/blockchain/1168646.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一文带你读懂零知识证明

必查客 1 小时前 1.7万

原标题:科普 | 最强白话讲懂零知识证明

零知识证明 zero-knowledge proofs,简称ZKPs,我们都知道区块链本身的一个关键优势就是透明性,但是在很多情况下,智能合约应用却出于各种商业或法律原因需要保障数据隐私,比如传入真实有效的数据来触发智能合约执行,但这涉及到信息会有泄露的风险。如何避免这种情况的发生呢?零知识证明的出现很好地解决了这个问题。

零知识证明(Zero Knowledge Proof)的研究最早始于1985年,由MIT教授Shafi Goldwasser, Silvio Micali 和 密码学大师Charles在《The Knowledge Complexity of Interactive Proof-Systems》论文中提出。正是这篇文章提出了 零知识证明 这个伟大概念,并逐步成为了现代密码学理论的根基之一,而Shafi Goldwasser和Silvio Micali也于2012 年获得了有“计算机界诺贝尔奖”之称的图灵奖。零知识证明系统所要完成的任务是「证明某一个事实并且不泄露知识」。这个过程就是零知识证明。

听起来还是有些晦涩难懂?讲个简单的例子:

阿里巴巴的故事想必大家都听过,有一天,劫匪抓住了阿里巴巴,拷问他想要得到进入山洞的咒语,但是聪明的阿里巴巴知道,如果把咒语告诉了劫匪,那么他也就彻底没有了价值,肯定会将他杀掉,死活不说,那么也会杀掉他,于是他想到一个好办法,即能不泄露咒语,又能让劫匪相信他知道咒语。

阿里巴巴说:“你们离我一箭远,然后用弓箭指着我,当你们举右手我会念咒语打开石门,当你们举左手我会念咒语关上石门,如果我逃跑或没有做到,证明我不知道咒语,你们可以一箭杀掉我。”劫匪同意了这个提议,多次尝试后阿里巴巴都成功按照指示让石门打开或关上了,但是由于有一定距离,他们听不清楚咒语到底是什么,就这样,阿里巴巴没有透露任何消息就向劫匪证明了他的真实性。

这个例子非常简单,虽然只是零知识证明机制简单的概念演示,真正的零知识证明运用的是密码学,在不透露数据的情况下证明数据的存在。总而言之,要创建零知识证明,验证者(劫匪)需要让证明者(阿里巴巴)执行一系列操作,而证明者只有在得知底层信息的情况下才能正确执行。如果证明者乱蒙一个结果,那么验证者极有可能在验证中发现并证明他的错误。那么零知识证明应用在区块链中有哪些价值呢?

5669909_image3.png

自从这个概念被提出来后,人们就将其应用到了各个领域,比如身份认证系统、存证系统、数据共享、水印检测,密钥交换等等,在隐私数据越来越受到大家关注的今天,零知识证明在隐私数据保护的应用中大放异彩:

保护隐私数据:日常生活中,比如只想证明考生及格了,但不想透露具体考了多少分;买保险的时候,只想证明自己没有心脏病,却不想暴露病例的所有信息,不管是哪种信息,都可以把不想暴露的部分换成一个很像随机数字的零知识证明,能够证明数据真实可信。

身份认证:在使用网站时,用户可以向网站证明他拥有私钥,或者知道某个只有自己才知道的答案,网站不用知道密钥,但可以通过零知识证明确认用户身份,通过去中心化存储,服务器可以向用户证明数据被妥善保存下来且不被泄露。

计算压缩与区块链扩容:在传统的区块架构中,同样的计算被重复多次,比如签名校验,交易的合法性校验,智能合约执行等一些其他的地方,因为有了计算的证明,同一个计算就不需要多次重复了,计算过程可以被零知识技术证明压缩。

由此,零知识证明真正解决了「数据的信任」,实现了「隐私数据的保护」,也让区块链真正实现了「信任机器」这一构想。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK