Zero-Knowledge Proof (ZKP)

Wiki Powered byIconIQ
Zero-Knowledge Proof (ZKP)

我们刚刚发布了 IQ AI.

查看详情

Zero-Knowledge Proof (ZKP)

零知识证明 (ZKP) 是一种密码学工具,允许一方(证明者)说服另一方(验证者)某个陈述的有效性,而不会泄露除陈述本身真实性之外的任何额外信息。ZKP 是数学难题,正确解决时可以证明接收方的真实性。这使其成为保护个人隐私和增强各种应用安全性的宝贵工具。[1]

概述

知识证明是一种密码学证明,其中“证明者”说服“验证者”它知道某些信息。证明者是创建密码学证明的实体或程序。验证者是检查证明内容的实体或程序。知识证明具有两个基本特征,完整性和可靠性,并且知识证明 (PoK) 和零知识证明 (ZKP) 之间的关键区别在于零知识。如果一个陈述是真实的,那么验证者除了该陈述是真实的之外,不会从证明者那里学到任何东西。[8][12]

ZPK 的概念由 Shafi Goldwasser、 和 Charles Rackoff 在他们 1985 年的论文“交互式证明系统的知识复杂性”中提出。[12]

证明者可以向验证者证明他/她知道值 X,而无需提供任何信息,除了他/她知道值 X 这一事实。这个概念背后的主要本质是在不泄露知识的情况下证明拥有知识。这里的主要挑战是在不说明 X 是什么或任何其他信息的情况下显示值 X 的知识。[2]

零知识证明 (ZKP) 是自相矛盾的概念,在包括密码学、技术和隐私保护系统在内的各个领域具有巨大的应用潜力。

零知识证明的类型

有几种类型的 ZKP,每种都有其自身的优点和缺点。一些最常见的类型包括:

  • 交互式 ZKP: 这些涉及证明者和验证者之间的一系列挑战和响应。[4][5]
  • 非交互式 ZKP: 这些只需要从证明者到验证者的单个消息。[5][6]
  • Sigma 协议: 这些是特定类型的 ZKP,以其效率和多功能性而闻名。[7]
  • 这些是非交互式 ZKP,特别有效,可用于证明关于计算有效性的陈述。[9][8]
  • ZK-STARKs: 这些是非交互式 ZKP,比 ZK-SNARKs 提供更高的效率,但构造起来更复杂。[10][8]

零知识证明的潜在应用

ZKP 具有广泛的潜在应用,包括:

  • 隐私保护身份验证: 用户可以向网站或服务证明其身份,而无需泄露其个人信息。
  • 安全投票: 选民可以证明他们有资格投票,而无需泄露其身份或投票。
  • 匿名凭证: 用户可以获取和使用凭证,而无需泄露其身份。
  • 区块链可扩展性: ZKP 可用于验证交易,而无需泄露底层数据,从而减少存储在区块链上的数据量并提高可扩展性。
  • 知识的零知识证明: 这些可用于证明拥有某些知识,而无需泄露知识本身。

ZKP 的关键属性

  • 完整性: 如果陈述是真实的并且证明者正确遵循协议,则验证者将始终被说服。
  • 可靠性: 如果陈述是错误的,则没有作弊的证明者可以以大于可忽略不计的值的概率说服验证者。
  • 零知识: 验证者学到的只是陈述的有效性。

例子

  • Schnorr 签名: 一种密码签名方案,允许用户证明他们拥有私钥,而无需泄露密钥本身。一种利用 的算法,以其简单性而闻名,Schnorr 签名被提议作为 技术路线图中的升级,以取代 数字签名算法 (ECDSA)。Schnorr 通常因其简单性、可证明的安全性和线性性而受到吹捧。由于 Schnorr 需要比 ECDSA 更少的计算,因此它被认为适用于 交易。[11]
  • ZK-SNARKs: 一种非交互式 ZKP,它使用高级密码学来有效地证明复杂的陈述。首字母缩略词 代表 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,指的是一种证明构造,其中可以证明拥有某些信息,例如,密钥,而无需泄露该信息,并且证明者和验证者之间没有任何交互。 是 zk-SNARKs 的第一个广泛应用,这是一种新型的零知识密码学。Zcash 的强大隐私保证源于这样一个事实,即 Zcash 中的屏蔽交易可以在 上完全加密,但仍然可以使用 zk-SNARK 证明根据网络的共识规则进行验证。[9][13]
  • ZK-STARKs: 另一种非交互式 ZKP,它基于多项式承诺,并提供比 ZK-SNARKs 更好的可扩展性。 还支持 ZKP 协议,例如 zk-SNARKs 和 zk-STARKs,以实现网络上的私有交易和验证。[10][15]
  • Bulletproofs: 最近将其 Bulletproofs ZKP 系统的代码升级到其新的和改进的 Bulletproof+ ZKP 解决方案中。Bulletproofs 是一种非交互式 ZKP,它证明支付金额是一个正数,而无需泄露实际金额。这样, 确保除了相关方之外,没有人可以追踪每笔交易的发送者、接收者或金额。[14]

ZKP 的挑战

虽然 ZKP 提供了显着的好处,但它们也面临着一些挑战,例如:

  • 计算复杂性: 一些 ZKP 的实现可能在计算上很昂贵,特别是对于复杂的陈述。
  • 标准化: ZKP 没有单一标准,这可能会阻碍它们的采用。
  • 安全漏洞: ZKP 仍然相对较新,可能容易受到尚未知的漏洞的影响。[7]

参考文献

首页分类排名事件词汇表