零知识证明zero-knowledge proofs,简称ZKPs,大家都知道区块链本身的一个重要优点是透明度,但在很多情况下,智能合约APP应用程序通过输入实际有效的数据来实现智能合约的如何避免这种情况? 知识零证明的出现很好地解决了这个问题。
零知识证明(Zero Knowledge Proof )的研究始于1985年,由MIT教授Shafi Goldwasser、Silvio Micali和密码学巨匠Charles在《The Knowledge Complexity of Interactive Proof-Systems》论文中提出。 这篇文章提出了零知识证明这一伟大的概念,并逐渐成为现代密码学理论的基础之一。 Shafi Goldwasser和Silvio Micali也在2012年获得了被称为“计算机界的诺奖”的图灵奖。 零知识证明系统应完成的任务是“证明某一事实,且不泄露知识”。 这个过程是零知识的证明。
好像还很难懂吗? 我来举个简单的例子:
(图源网络、入侵删除) )。
阿里巴巴的故事大家都听过吧。 有一天,强盗为了抓住阿里巴巴拿到进入山洞的咒语而拷问他。 但聪明的阿里巴巴知道,如果把咒语告诉强盗,他也会完全失去价值。 一定会杀了他吧。 死活不说。 那样的话他也会杀的。 于是,我想出了不泄漏咒语,让强盗相信咒语的好方法。
阿里巴巴说。 “你们离我一箭之遥,用弓箭指着我。 你们举起右手我就念咒语打开石门。 你们一举起左手我就念咒语关上石门。 如果我逃跑了,或者没成功,证明我不知道咒语,你们可以一箭杀了我。 ’强盗同意了那个建议,在多次尝试之后,阿里巴巴成功地按照指示打开和关闭了石门。 但是,由于有一定的距离,他们不太清楚咒语是什么。 就像那样,阿里巴巴毫不知情地向强盗证明了他的真实性。
这个例子非常简单,是零知识证明机制的简单概念演示,但真正的零知识证明使用密码学,在不揭示数据的情况下证明数据的存在。 总之,为了制作零知识证书,需要让验证者(强盗)是证明者,阿里巴巴)执行一系列的操作,证明者只有在知道基础信息的情况下才能正确执行。 如果证明者胡乱掩饰结果,验证者很可能在验证中发现并证明他的错误。 知识零证明应用于区块链的价值是什么?
自从这个概念提出以来,人们把它应用到了各个领域。 例如,认证系统、证书保存系统、数据共享、水印检测、密钥交换等。 在隐私数据越来越受到关注的今天,零知识证明在隐私数据保护的应用中大放异彩:
隐私数据的保护:在日常生活中,比如只想证明考生合格了,但不想透露具体得了多少分的保险时,想证明自己不是心脏病,但不想暴露病例的所有信息。 无论是哪种信息,都可以用随机数字这样的零知识证明代替不想暴露的部分,从而证明数据是真实可靠的。
认证:使用网站时,用户可以向网站证明自己拥有私钥,也可以知道只有自己知道的答案。 网站可以不知道密钥,但可以通过零知识的证明来确认用户的身份。 通过集中存储,服务器可以向用户证明数据存储良好且不会泄漏。
压缩计算和扩展区块链:传统的区块架构多次重复相同的计算,包括签名检查、交易合法性检查和智能合约的执行。 有了计算的证明,就不需要多次重复同样的计算,可以用零知识技术证明压缩计算过程。
由此证明,零知识真正解决了“数据信任”,实现了“隐私数据保护”,真正实现了区块链“信任机器”的构想。
多看看