网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

零知识证明

更新时间:2026年03月27日   作者:spoto   标签(Tag):

零知识证明(Zero Knowledge Proof)这是一种由麻省理工学院的研究人员最初提出的加密方案。沙菲·戈德瓦塞尔还有西尔维奥·米卡利零知识协议是一种概率性评估方式,这意味着它们无法像直接披露全部信息那样来证明某事的真实性。这些协议所提供的信息是不可分割的,这些信息共同可以用来证明某个断言的真实性。

  • 目前,网站会接收用户的密码作为输入数据,然后将其哈希值与存储的哈希值进行比对。同样,银行在提供贷款时也需要用户的信用评分,这就使得用户的隐私和信息泄露的风险完全取决于服务器本身的安全性。
  • 如果可以利用ZKP,那么客户端的密码就不会被验证者知晓,从而仍然可以成功进行登录认证。
  • 在ZKP出现之前,我们总是质疑证明者本身的合法性,以及证明系统的可靠性。但ZKP则提出了另一个问题:如果证明者试图泄露信息的话,那该怎么办呢?

示例1:一个色盲的朋友和两个球:

  • 有两个朋友,他们的名字分别是萨钦和桑奇特。其中,桑奇特是色盲患者。
  • 萨钦有两个球,他需要证明这两个球的颜色是不同的。
  • 桑奇塔随机地把球放到自己的背后,然后让萨钦来判断这些球是否真的被移动了。
  • 如果所有的球都是同一种颜色,而萨钦提供了错误的信息,那么他回答正确的概率就是50%。
  • 当这个活动重复进行多次之后,萨钦在听到错误的信息时给出正确答案的概率就会显著降低。
  • 在这里,萨钦扮演的是“证明者”的角色,而桑奇塔则扮演的是“验证者”的角色。
  • 颜色就是需要被处理的绝对信息,或者说是需要执行的算法。而这种算法的有效性,可以在不向验证者透露与颜色相关的信息的情况下得到证明。

示例2:寻找Waldo

  • 《寻找Waldo》是一款游戏,玩家需要从一张从上方拍摄的、包含大量人的照片中找出那个叫Waldo的人。
  • 萨钦有一个寻找“沃尔多”的算法,但他不想把这个算法告诉桑奇塔。
  • 桑奇塔想要购买这个算法,但她需要确认一下该算法是否真的有效。
  • 萨钦在纸板上挖了一个小孔,然后把那个小孔盖在Waldo的身上。
  • 萨钦是“证明者”,而桑奇塔则是“验证者”。
  • 该算法在完全不了解其工作原理的情况下也能被证明是有效的。

零知识证明的性质

  • 零知识:
    如果该陈述是正确的,那么验证者将无法得知该陈述是否属实。这里的“陈述”可以指一个绝对值,也可以指某种算法。
  • 完整性:
    如果这一陈述是真实的,那么最终,一个诚实的验证者还是可以被说服的。
  • 合理性:
    如果证明者不诚实的话,他们就无法让验证者相信该证明的可靠性。

零知识证明的类型

  • 交互式零知识证明:
    这需要验证者不断询问关于“证明者”所拥有的“知识”的一系列问题。上述寻找Waldo的例子就是个互动过程,因为“证明者”采取了一系列行动来向验证者证明这些知识的准确性。
  • 非交互式零知识证明:
    为了使“交互式”解决方案能够正常运行,验证者和证明者都需要同时在线。这一特性使得在现实世界中的应用难以实现大规模扩展。 非交互式零知识证明不需要任何交互过程,因此避免了勾结的可能性。 这需要选择一个哈希函数,以便验证者能够随机地选取挑战值。 在1986年,菲亚特和沙米尔共同提出了菲亚特-沙米尔启发式算法。这一算法成功地将交互式的零知识证明转变为非交互式的零知识证明。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料