﻿---
title: "零知識證明"
description: "準確理解零知識證明：完備性、可靠性、模擬、見證、設定假設、區塊鏈用途與驗證風險。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 零知識證明

> 僅供教育參考，不構成投資或安全建議。有效證明只在證明系統的假設下保證已編碼的陳述。

<a id="answer"></a>

## 直接答案

零知識證明（ZKP）讓證明者在不洩露用來建立陳述的秘密見證之下，使驗證者相信該陳述為真。其形式化保證並非「互動記錄完全沒有資訊」，而是除了公開陳述本身能推導出的資訊，合規驗證者學到的內容皆可在不知道見證時模擬出來。

證明系統須分別考察三個性質：**完備性**，即持有有效見證的誠實證明者會被接受；**可靠性**，即虛假陳述僅以可忽略機率被接受；**零知識性**，即見證在規定的威脅模型下維持隱藏。許多實用系統屬於計算型論證：可靠性只對計算能力受限的攻擊者成立，並依賴明確列出的密碼學假設。

零知識性也不同於簡潔性和有效性。證明可以是零知識但驗證成本很高，可以很簡潔卻公開資料，也可以正確證明某個已編碼關係，但該關係不符合應用原本想執行的規則。

<a id="mechanism"></a>

## 運作原理

先定義公開陳述 `x`、私密見證 `w` 與精確關係 `R`。證明者產生證明，驗證者使用公共參數或驗證金鑰判斷。預期的可靠性主張可概括為：

`Verify(vk, x, proof) = 1 => exists w: R(x, w) = 1`

此式只說明已編碼關係存在合適見證。它不會公開見證，也不會認證鏈下輸入，更不能證明 `R` 已涵蓋應用想執行的所有業務規則。

- **互動式與非互動式。** 早期 ZK 協定交換挑戰與回應。非互動式系統把證據裝入一個證明，通常依賴設定材料、隨機預言機模型或兩者。
- **設定模型。** Groth16 的證明很小，但需要針對電路的結構化設定。PLONK 類系統可使用通用、可更新的結構化參考字串。STARK 構造不需要結構化可信設定，但通常證明較大，並依賴雜湊與低度測試。
- **算術化與承諾。** 實作會把程式轉換成代數約束，對見證衍生值作承諾，再用隨機化檢查，讓驗證者無須重做計算或查看見證便能檢驗結果。
- **知識證明。** 有些系統還主張藉由證明提取器形式化地說明，被接受的證明者「知道」一個見證。這是獨立性質，不能只由「零知識」標籤推斷。

<a id="example"></a>

## 範例

假設 `x` 包含一個承諾和 `100 units` 的門檻，`w` 包含被承諾的餘額與致盲因子。關係會檢查承諾能否正確開啟，以及餘額是否至少為 `100 units`。有效零知識證明可確認這項關係而不披露確切餘額。

但結果本身不能證明證明者擁有該帳戶、資金未受限制，或同一承諾未被重複使用。這些主張需要額外約束和公開輸入。

在隱私型加密貨幣中，電路可在隱藏部分交易細節時強制檢查授權、價值守恆與防重複。在有效性 Rollup 中，證明可確認一批狀態轉換；系統仍可能公開交易資料，因此「ZK Rollup」不自動等於私密交易。

<a id="risks"></a>

## 風險

- 不完整或錯誤的電路可能完美證明錯誤規則。
- 缺少域分離、鏈識別碼、根或承諾，可能把證明綁定到錯誤情境。
- 對需要可信設定的系統，設定遭入侵或「有毒廢料」未銷毀會破壞可靠性。
- 證明器、驗證器、互動記錄、曲線、雜湊、編譯器或智慧合約的缺陷可能讓理論保證失效。
- 公開輸入、證明時間、交易圖、費用與網路中繼資料可能洩露形式化 ZK 陳述之外的資訊。
- 見證產生、瀏覽器、硬體或遠端證明服務的側通道可能在證明產生前暴露秘密。
- 驗證證明並不提供資料可用性、排序器活性、結算最終性、抗審查性或安全升級。
- 不同證明系統的密碼學假設與具體安全餘量不同；不能只按證明大小或驗證速度評定安全性。

<a id="misconceptions"></a>

## 常見誤解

- **「零知識表示不公開任何資料。」** 公開陳述和刻意暴露的輸出仍可見，證明模型以外的中繼資料也可能洩露。
- **「證明有效就代表應用正確。」** 它只表示已編碼關係獲接受，電路、整合和政策錯誤仍可能存在。
- **「所有 ZK 系統的信任假設相同。」** 設定儀式、曲線、雜湊、互動記錄模型與升級控制均有實質差異。
- **「ZK 就是加密。」** 加密隱藏資料供獲授權者解密；ZK 證明無須傳送見證供人解密即可建立主張。

<a id="related"></a>

## 相關主題

- [密碼學雜湊](/zh-tw/crypto/cryptographic-hash/)
- [隱私幣](/zh-tw/crypto/privacy-coin/)
- [有效性證明](/zh-tw/crypto/validity-proof/)
- [ZK Rollup](/zh-tw/crypto/zk-rollup/)

<a id="sources"></a>

## 來源

- [The Knowledge Complexity of Interactive Proof Systems](https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Zero%20Knowledge/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf) - SIAM Journal on Computing（查閱日期：2026-08-22）
- [On the Size of Pairing-based Non-interactive Arguments](https://eprint.iacr.org/2016/260.pdf) - IACR Cryptology ePrint Archive（查閱日期：2026-08-22）
- [Scalable, transparent, and post-quantum secure computational integrity](https://eprint.iacr.org/2018/046.pdf) - IACR Cryptology ePrint Archive（查閱日期：2026-08-22）
- [PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge](https://eprint.iacr.org/2019/953.pdf) - IACR Cryptology ePrint Archive（查閱日期：2026-08-22）
- [Zcash Protocol Specification](https://zips.z.cash/protocol/protocol.pdf) - Zcash Protocol Specification（查閱日期：2026-08-22）

Source: https://wiki.fcontext.com/zh-tw/crypto/zero-knowledge-proof/index.mdx
