ZK SNARK 是一种以隐私为中心的证明系统,用于验证链上交易。它主要用于三个领域:可扩展性解决方案、私有交易和身份保护。[1][2]
ZK SNARK,代表“零知识简洁非交互式知识论证”,是一种零知识证明 (ZKP),它允许一方(证明者)向另一方(验证者)证明某个陈述是真实的,而无需泄露交易信息,也无需双方之间的任何交互。这是一种在 区块链 上私有且完全加密交易的方式,同时仍然使用网络的共识规则进行验证。[1][2]
ZK SNARK 是零知识证明 (ZKP) 的一种变体。ZKP 模拟零知识,这是一种证明系统的属性,可以在不泄露相关信息的情况下验证链上交互。证明系统是密码学审计器,用于证明交互已经发生并验证交易输出的正确性。[1]
ZK SNARK 需要证明者和验证者双方都可用并重复交互。证明者将秘密信息传递给一个特殊算法来计算 ZKP,然后将证明发送给验证者,验证者使用另一个算法来检查证明者是否知道秘密信息。ZK SNARK 主要用于 区块链 网络,以最大限度地减少经常遇到的可扩展性问题。[1][3]
简洁非交互式知识论证 (SNARK) 提供了一种非交互式计算委托的方法,由 Ran Canetti、Alessandro Chiesa 和 Eran Tromer 于 2012 年推出。作者描述说,SNARK 在公共参考字符串 (CRS) 模型中构建零知识 (ZK) SNARK。当零知识证明 (ZKP) 协议 ZK SNARK 添加到分布式账本解决方案时,可扩展性和隐私性得到增强。零知识证明 (ZKP) 最早由 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 于 1985 年提出,它允许一方仅显示他们拥有一条信息,而不泄露该信息或任何其他信息。[2][4][5]
第一个使用 ZK SNARK 技术的应用程序是 Zcash。Zcash 是一种以隐私为中心的 加密货币,基于 比特币 的代码库,它使用 ZK SNARK 来创建屏蔽交易,其中发送者、接收者和金额都保持私密。通过利用 ZK SNARK,Zcash 中的屏蔽交易可以在 区块链 上完全加密,但仍然可以根据网络的共识规则验证为有效。[5][6]
ZK SNARK 代表“零知识简洁非交互式知识论证”。在理解核心逻辑时,涉及五个概念:[1][3]
零知识确保只显示语句的有效性,不提供其他信息。[1]
这是指 ZKP 的紧凑性和验证速度。由于 ZKP 很小,并且验证所需的计算能力极小,因此可以在几毫秒内完成验证。[1][2]
非交互式证明减少了证明者和验证者之间的通信,使证明系统更加高效和实用。[1][3]
在 ZK SNARK 中,论证是一系列数学运算,用于证明语句的真实性。[7]
这是证明者处理的信息,用于生成永远不会透露给验证者的证明。知识论证是一种密码学声明,意味着证明者拥有特定信息。当没有信息时,证明者可能无法计算出有效的 ZKP。[1][3][8]
ZK SNARK 充当证明聚合器,因为它为批处理中存在的多个交易编译单个证明。这个单一证明有助于减少 区块链 上的存储和拥塞,从而加快交易吞吐量并降低交易费用。此外,ZK SNARK 证明是简洁的,可以轻松快速地验证所有交易的正确性。一些利用 ZK SNARK 技术来解决 以太坊 的可扩展性问题的项目是 zkSync 和 Polygon Hermez。[1]
屏蔽个人详细信息,例如发送者和接收者的地址以及交易的价值,是 ZK SNARK 促进 区块链 上私有交易的一种方式。通过链上私有交易,传统的货币系统可以摆脱金融监控,机构可以使用 ZK-SNARK 驱动的网络来进行安全和私密的业务。一些利用 ZK SNARK 实现隐私的项目是 Zcash 和 Tornado Cash。[1]
ZK SNARK 增强了个人数据的隐私和安全性,同时抑制了身份盗窃的风险。它可以帮助用户证明其身份或凭证的真实性,而无需泄露个人信息。借助 ZK SNARK,可以实现无需信任的身份验证,从而无需服务提供商存储用户的凭证。利用 ZK SNARK 身份保护的一个例子是 ZKCreds。[1]