# ZK SNARK

> ZK SNARK 是一种用于区块链的零知识证明系统，用于私密且安全地验证交易。它通过允许证明者在不泄露底层数据的情况下证明陈述的真实性，从而增强了可扩展性、隐私性和身份保护。

- Canonical URL: https://iq.wiki/zh/wiki/zk-snark
- Categories: Glossary
- Created: 2023-08-12T14:01:40.825Z
- Last updated: 2026-06-18T13:25:29.442Z
- Source: IQ.wiki — the world's largest blockchain and crypto encyclopedia (https://iq.wiki)

---

**ZK SNARK** 是一种以隐私为中心的证明系统，用于验证链上交易。它主要应用于三个领域：可扩展性解决方案、隐私交易和身份保护。[\[1\]](#cite-id-v88a6fghw9)​[\[2\]](#cite-id-a3aft5c2po)​

[YOUTUBE@VID](j63LwlM7lAI)

ZK SNARK 的全称是“零知识简洁非交互式知识论证”（zero-knowledge succinct non-interactive argument of knowledge），它是一种零知识证明（ZKP），允许一方（证明者）向另一方（验证者）证明某个陈述是真实的，而无需泄露交易信息，且双方之间无需任何交互。这是一种让交易在[区块链](https://iq.wiki/wiki/blockchain)上保持私密和完全加密，同时仍能根据网络共识规则进行验证的方法。[\[1\]](#cite-id-v88a6fghw9)​[\[2\]](#cite-id-a3aft5c2po)​

## 概述

ZK SNARK 是零知识证明（ZKP）的一种变体。ZKP 模拟了零知识，这是证明系统的一种属性，可以在不泄露相关信息的情况下验证链上交互。证明系统是加密审计员，负责证明交互已发生并验证交易输出的正确性。[\[1\]](#cite-id-v88a6fghw9)​

ZK SNARK 需要两方——证明者和验证者——在线并进行多次交互。证明者将秘密信息传递给一种特殊算法以计算 ZKP，然后将证明发送给验证者，验证者使用另一种算法检查证明者是否知道该秘密信息。ZK SNARK 主要用于[区块链](https://iq.wiki/wiki/blockchain)网络，以最大限度地减少经常遇到的可扩展性问题。[\[1\]](#cite-id-v88a6fghw9)​[\[3\]](#cite-id-wj54ew1158)​

## 历史

简洁非交互式知识论证（SNARK）为计算的非交互式委托提供了一种手段，由 Ran Canetti、Alessandro Chiesa 和 Eran Tromer 于 2012 年引入。作者描述了 SNARK 在公共参考串（CRS）模型中构建零知识（ZK）SNARK。当 ZK SNARK 这种零知识证明（ZKP）协议被添加到分布式账本解决方案中时，可扩展性和隐私性得到了增强。零知识证明（ZKP）最早由 Shafi Goldwasser、[Silvio Micali](https://iq.wiki/wiki/silvio-micali) 和 Charles Rackoff 于 1985 年提出，它允许一方仅展示其拥有一项信息，而不泄露该信息或任何额外信息。[\[2\]](#cite-id-a3aft5c2po)​[\[4\]](#cite-id-2b7r8q5ktlt)​[\[5\]](#cite-id-hwzdt4rk40a)​

第一个应用 ZK SNARK 技术的案例是 Zcash。Zcash 是一种基于 [Bitcoin](https://iq.wiki/wiki/bitcoin) 代码库的注重隐私的[加密货币](https://iq.wiki/wiki/cryptocurrency)，它使用 ZK SNARK 创建屏蔽交易，其中发送者、接收者和金额都是保密的。通过利用 ZK SNARK，Zcash 中的屏蔽交易可以在[区块链](https://iq.wiki/wiki/blockchain)上完全加密，但仍能根据网络共识规则验证为有效。[\[5\]](#cite-id-hwzdt4rk40a)​[\[6\]](#cite-id-3eybqq85a5h)​

## ZK SNARK 的概念

ZK SNARK 代表“零知识简洁非交互式知识论证”。在理解其核心逻辑时，涉及五个概念：[\[1\]](#cite-id-v88a6fghw9)​[\[3\]](#cite-id-wj54ew1158)​

### 零知识 (Zero-knowledge)

零知识确保仅揭示陈述的有效性，而不提供其他任何信息。[\[1\]](#cite-id-v88a6fghw9)​

### 简洁论证 (Succinct arguments)

这指的是 ZKP 的紧凑性和验证速度。由于 ZKP 体积小且验证所需的计算能力极低，因此可以在几毫秒内完成验证。[\[1\]](#cite-id-v88a6fghw9)​[\[2\]](#cite-id-a3aft5c2po)​

### 非交互式 (Non-interactive)

非交互式证明减少了证明者和验证者之间的通信，使证明系统更加高效和实用。[\[1\]](#cite-id-v88a6fghw9)​[\[3\]](#cite-id-wj54ew1158)​

### 论证 (Argument)

在 ZK SNARK 中，论证是证明陈述真实性的一系列数学运算。[\[7\]](#cite-id-36kfjlout7m)​

### 知识 (of knowledge)

它是证明者为生成证明而处理的信息，永远不会泄露给验证者。知识论证是一种加密声明，意味着证明者拥有特定信息。在没有信息的情况下，证明者可能无法计算出有效的 ZKP。[\[1\]](#cite-id-v88a6fghw9)​[\[3\]](#cite-id-wj54ew1158)​[\[8\]](#cite-id-zsjh0is7pj)​

## 用途

### 可扩展性解决方案

ZK SNARK 充当证明聚合器，因为它为批次中的多笔交易编译单个证明。这种单一证明有助于减少[区块链](https://iq.wiki/wiki/blockchain)上的存储和拥堵，从而提高交易吞吐量并降低交易费用。此外，ZK SNARK 证明是简洁的，可以轻松快速地验证所有交易的正确性。利用 ZK SNARK 技术解决 [Ethereum](https://iq.wiki/wiki/ethereum) 可扩展性问题的一些项目包括 zkSync 和 [Polygon](https://iq.wiki/wiki/polygon) Hermez。[\[1\]](#cite-id-v88a6fghw9)​

### 隐私交易

掩盖发送者和接收者地址以及交易金额等个人详细信息是 ZK SNARK 促进[区块链](https://iq.wiki/wiki/blockchain)上隐私交易的一种方式。通过链上隐私交易，传统货币系统可以摆脱金融监管，机构可以使用由 ZK-SNARK 驱动的网络进行安全且私密的业务。利用 ZK SNARK 实现隐私的一些项目包括 Zcash 和 [Tornado Cash](https://iq.wiki/wiki/tornado-cash)。[\[1\]](#cite-id-v88a6fghw9)​

### 身份保护

ZK SNARK 增强了个人数据的隐私和安全性，同时降低了身份盗用风险。它帮助用户在不泄露个人信息的情况下证明其身份或凭据的真实性。借助 ZK SNARK，去信任身份验证成为可能，从而消除了服务提供商存储用户凭据的需求。利用 ZK SNARK 身份保护的一个项目示例是 ZKCreds。[\[1\]](#cite-id-v88a6fghw9)​
