0% read

最后更新:

Zero-Knowledge Proof (ZKP)

零知识证明 (Zero-knowledge proof, ZKP) 是一种加密工具,它允许一方(证明者)向另一方(验证者)证明某个陈述的有效性,而无需泄露除该陈述本身真实性以外的任何额外信息。ZKP 是数学难题,当被正确解答时,可以证明接收方是真实的。这使其成为保护个人隐私和增强各种应用安全性的宝贵工具。[1]\

概述

知识证明是一种加密证明,其中“证明者”向“验证者”证明其了解某些信息。证明者是创建加密证明的实体或程序。验证者是检查证明内容的实体或程序。知识证明具有两个基本特征:完备性(Completeness)和可靠性(Soundness),而知识证明 (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 的关键属性

  • 完备性 (Completeness): 如果陈述为真且证明者正确遵守协议,验证者将始终被说服。
  • 可靠性 (Soundness): 如果陈述为假,任何作弊的证明者都无法以超过微小概率的可能来说服验证者。
  • 零知识性 (Zero-knowledge): 验证者除了知道陈述的有效性外,学不到任何其他东西。

示例

  • Schnorr 签名: 一种加密签名方案,允许用户证明自己拥有私钥而无需泄露私钥本身。这是一种利用的算法,以其简单性著称。Schnorr 签名被提议包含在 的技术路线图中,作为对椭圆曲线数字签名算法 (ECDSA) 的升级。Schnorr 因其简单性、可证明的安全性和线性特征而备受推崇。由于 Schnorr 所需的计算量少于 ECDSA,因此被认为适用于交易。[11]
  • ZK-SNARKs: 一种非交互式 ZKP,使用高级密码学来高效证明复杂的陈述。 是“零知识简洁非交互式知识论证”的缩写,指的是一种证明构建方式,证明者可以证明拥有某些信息(例如密钥)而无需泄露该信息,且证明者与验证者之间无需任何交互。 是 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]
发现错误了吗?

参考文献 (15 来源)

首页分类维基MC事件词汇表