零知識證明是一種密碼學方法,讓證明者在不公開秘密內容的情況下,向驗證者證明某個陳述或計算結果確實成立。
它可以證明“我已滿 18 歲”而不披露生日,證明一筆轉帳餘額充足而不公開餘額,也能證明數千筆鏈下交易執行正確而不讓 Ethereum 重新計算。隱私和擴容因此成為 ZK 技術最重要的兩類應用。
但 ZK 並非天然隱藏一切,也不是無需成本的“終極答案”。ZK Rollup 可以公開交易資料,僅用有效性證明保證計算正確;隱私協議則需要把敏感資料作為秘密見證,並認真處理後設資料、金鑰、可信設定、資料可用性和合約漏洞。
若希望先了解零知識證明與 AI、跨鏈、預言機及模組化區塊鏈的整體關係,可閱讀2025 年 Web3 前沿賽道全景圖。
零知識證明由證明者和驗證者參與。證明者掌握一個秘密或完成了一段計算,希望讓驗證者相信陳述為真;驗證者透過公開規則檢查證明,而不獲得生成證明所用的全部私密輸入。
陳述可以是“這個雜湊對應的原文由我掌握”“帳戶餘額足夠支付”“某人屬於合格使用者集合”,也可以是“這批交易從舊狀態正確計算出新狀態”。秘密輸入通常稱為 Witness,即見證。
證明系統把程式或規則轉換為數學約束。證明者給出滿足約束的見證並生成短證明,驗證者使用驗證金鑰或公開參數檢查。驗證成功只說明該陳述滿足已定義規則,不保證規則本身符合業務真實意圖。
完整性表示:如果陳述真實,誠實證明者使用正確見證生成的證明,應被誠實驗證者接受。系統不能頻繁拒絕合法使用者,否則即使密碼學安全,也無法形成可靠產品。
可靠性又稱健全性,表示:如果陳述為假,作弊者幾乎不可能構造能通過驗證的證明。攻擊者不能憑空證明自己有餘額、滿足年齡要求,或讓無效交易批次被 L1 接受。
零知識性表示:驗證者除“陳述有效”之外,不應學到見證內容。嚴格定義通常透過模擬器說明,驗證過程得到的資訊可以在不知道秘密的情況下被模擬,因此證明沒有額外洩露。
這三項必須同時理解。一個系統可能能證明計算正確,卻沒有隱藏公開輸入;也可能保護見證,卻在應用層洩露地址、時間、Gas 或互動模式。隱私需要密碼學和產品設計共同完成。
第一步是定義要證明的程式。例如要求證明者知道某個密碼,其雜湊等於公開值;或證明一批交易的簽名、Nonce、餘額與狀態根變更都符合規則。
第二步是算術化。系統把程式轉換成有限域上的多項式、約束系統或執行軌跡。加法、乘法、範圍檢查和雜湊都必須用證明系統能處理的形式表示,複雜程式會產生大量約束。
第三步是生成 Witness。證明者執行程式得到私密中間值與結果,並按電路要求排列見證。錯誤見證無法滿足約束,理論上不能生成有效證明。
第四步是 Proving。證明者執行較重的密碼學計算,把龐大見證壓縮成較短證明。這個階段可能需要大量 CPU、GPU、記憶體或專用硬體,是 ZK 系統的主要成本來源。
第五步是 Verification。驗證者只使用公開輸入、證明和驗證金鑰檢查少量密碼學等式,不必重新執行原計算。正是“證明昂貴、驗證便宜”的不對稱,讓一條鏈可以驗證大量鏈下計算。
早期零知識協議要求證明者與驗證者多輪互動。證明者先提交承諾,驗證者隨機提出挑戰,證明者返回回應。重複足夠多次後,作弊者靠猜測通過的機率變得極低。
區塊鏈更適合非互動式證明。證明者一次生成可公開驗證的證明,任何節點都能獨立檢查,無需與原證明者線上對話。Fiat-Shamir 變換常用雜湊函式把互動中的隨機挑戰轉換成確定挑戰。
非互動證明需要公開參數或透明隨機性。一些 SNARK 使用可信設定生成 Common Reference String;另一些系統採用通用設定、可更新設定或無可信設定方案。選擇不同系統會影響證明大小、速度、透明度和升級成本。
SNARK 代表簡潔非互動式知識論證。它通常生成很小的證明,鏈上驗證快速且 Gas 較低,適合隱私支付、身份和 Rollup。Groth16、PLONK、Halo2 等屬於不同證明體系,不能只用一個名稱概括全部屬性。
部分 SNARK 需要可信設定。如果儀式產生的秘密參數沒有徹底銷燬,掌握 Toxic Waste 的攻擊者可能偽造證明。多方計算儀式透過讓許多參與者貢獻隨機性降低風險,只要至少一名參與者誠實銷燬秘密即可保護系統。
Halo2 等系統支援遞迴和無特定電路可信設定設計。無論採用何種方案,專案仍需公開參數來源、電路版本、密碼學曲線、審計和升級權限,不能只宣傳“使用 SNARK”。
STARK 代表可擴展透明知識論證。它使用可公開驗證的隨機性,通常不需要傳統可信設定,並基於雜湊等密碼學假設,常被認為具有更好的後量子研究屬性。
STARK 對大規模計算的證明生成具有擴展優勢,但原始證明通常比 SNARK 大,鏈上驗證成本也可能更高。遞迴證明和壓縮技術可把多個 STARK 證明聚合,降低最終結算成本。
Starknet 使用基於 STARK 的證明體系,Cairo 則是為可證明計算設計的執行環境。SHARP 可以聚合多個程式的證明並遞迴壓縮,讓不同應用分攤證明與 Ethereum 驗證成本。

隱私應用把餘額、交易金額、身份屬性或名單成員資格作為秘密見證,只公開驗證所需的最小陳述。驗證者知道使用者符合條件,卻不需要看到完整原始資料。
Zcash 的 Shielded Transaction 使用 zk-SNARK 證明轉帳遵守貨幣規則,例如輸入有效、沒有重複花費、輸出金額守恆,同時隱藏傳送者、接收者、金額和 Memo。鏈仍能拒絕無效交易,卻不公開所有財務細節。
身份場景可證明“年齡超過門檻”“來自允許地區”“持有有效憑證”或“是名單中的唯一成員”,而不上傳護照原件。Nullifier 可防止同一資格重複領取獎勵或重複投票,同時避免在不同應用間直接暴露統一身份標識。
零知識不能自動隱藏網路層資訊。IP、錢包充值來源、交易時間、Gas 支付和與透明地址的互動仍可能形成關聯。若匿名集合很小,或使用者經常在公開與私密模式之間切換,外部觀察者仍可推斷身份。
ZK Rollup 在 L2 執行和儲存大量交易,把交易批次的狀態變化摘要、必要資料與有效性證明提交到 Ethereum。L1 驗證證明後接受新狀態,無需重新執行批次中的每筆交易。
批處理把固定證明與結算成本分攤給大量使用者,減少 L1 計算和儲存壓力。證明驗證通過後,狀態不需要像 Optimistic Rollup 那樣等待完整挑戰期來確認計算正確,因此理論上可以更快形成可提款狀態。
ZK Rollup 的安全不只靠證明。L1 合約必須正確驗證證明,Rollup 還要提供足夠資料,讓使用者重建狀態並在營運者停止服務時退出。Sequencer、Prover、升級管理員和橋合約也可能成為中心化或故障點。
ZKsync Era 使用有效性證明確認批次執行,Starknet 使用 STARK 證明和 Cairo,其他 zkEVM 則努力相容 Ethereum 開發工具與位元組碼。它們在虛擬機器、證明系統、資料可用性與相容程度上並不相同。
關於 ZK Rollup、Optimistic Rollup、Validium 和側鏈的完整區別,可閱讀Layer 2 是什麼?以太坊擴容方案完全指南。
zkEVM 是可以對 EVM 或與 EVM 相近執行環境生成有效性證明的系統。它讓 Solidity 合約和 Ethereum 工具遷移到 ZK Rollup,同時把交易執行轉換成證明電路可驗證的數學約束。
EVM 最初不是為 ZK 設計,部分操作碼、Keccak 雜湊、動態記憶體和狀態存取證明成本很高。專案需要在 Ethereum 等價性、開發相容性與證明效率之間取捨,因此不同 zkEVM 對位元組碼和工具的支援程度不同。
還要區分 zkEVM Rollup 與 L1 zkEVM。前者在 L2 執行並把證明提交給 Ethereum;後者希望 Ethereum 驗證者用 ZK 證明驗證 L1 區塊執行,減少所有節點重複計算,提高驗證效率和節點可及性。
ZK Rollup 把交易資料或恢復狀態所需資料發布到 L1,成本相對高,但使用者可依靠 Ethereum 資料重建狀態。即使營運者停止服務,使用者仍有更強的自主退出基礎。
Validium 同樣使用有效性證明保證狀態轉移正確,但資料儲存在鏈外,由資料可用性委員會或其他網路提供。它可以降低費用和提高吞吐,卻增加資料被扣留的風險;證明正確不代表使用者一定拿得到恢復狀態所需資料。
Volition 允許使用者或應用在 Rollup 與 Validium 資料模式之間選擇。高價值資產可採用 L1 資料可用性,低價值高頻交易可選擇鏈外資料。靈活性增加後,錢包和介面必須明確披露每筆資產處於哪種安全模式。
資料可用性與執行有效性是兩個獨立問題。ZK 證明可以證明“狀態變化算對了”,卻不能憑空恢復未公開的交易資料。評估擴容專案時,兩者都要檢查。
去中心化身份可以用 ZK 證明資格、憑證持有和集合成員身份,實現最小披露。使用者不必把完整身份證件交給每個應用,驗證方只得到業務所需結論。相關背景可閱讀去中心化身份 DID:掌控你的數字身份。
儲備證明可在不公開全部帳戶細節的情況下證明資產或負債滿足某些約束。它仍不能自動證明資產所有權、負債完整性與託管法律關係,需要審計、簽名和其他資料配合。
合規場景可以證明交易滿足名單、額度和地區規則,而不公開所有客戶資料。隱私機器學習可證明模型按承諾執行或結果來自某個模型,不過大型模型的證明成本仍高,通常需要專用 zkVM、遞迴和硬體加速。
跨鏈協議可用 ZK 輕客戶端證明另一條鏈的共識與狀態,減少固定多籤信任;遊戲可證明公平計算;DAO 可實現匿名投票同時防止重複投票;供應鏈可證明某項條件滿足而隱藏商業機密。
複雜程式需要大量約束,Prover 可能消耗顯著計算、記憶體和時間。證明服務集中在少數高效能營運者,會帶來可用性、審查和基礎設施中心化風險。
電路證明的是被編碼的規則。如果開發者漏寫約束,攻擊者可能提供不符合業務規則卻滿足電路的見證。驗證器會正確接受一個“錯誤定義的問題”的證明。
使用特定可信設定的證明系統依賴儀式秘密被銷燬。若參數生成被破壞,攻擊者可能偽造證明而不易被發現。專案應公開儀式、參與者、參數雜湊和更新方式。
曲線、雜湊、有限域、隨機數、編譯器和驗證合約任何實現錯誤都可能破壞安全。新證明系統需要長期研究、形式化驗證、審計和實際執行驗證。
即使 Witness 保密,公開輸入、Nullifier、充值與提現金額、網路地址和時間模式仍可能關聯使用者。隱私應用需要足夠匿名集合和安全預設設定。
Rollup 合約、橋、Prover、Sequencer 和驗證金鑰可能受管理員控制。ZK Proof 阻止無效狀態並不自動阻止惡意升級,時間鎖、多籤和逃生艙仍然重要。
零知識證明擅長證明“輸入滿足規則”,卻不能憑空判斷鏈外輸入是否真實。若年齡、學歷、資產或現實事件由某個機構簽發,系統仍需信任簽發者按規則核驗並妥善保護金鑰。錯誤憑證進入電路後,也可能生成密碼學上完全有效的證明。
因此,身份和合規應用應同時檢查憑證來源、撤銷機制、有效期限、簽發者金鑰輪換與預言機安全。ZK 可以減少向驗證方披露的資料,卻不能消除資料來源風險。
隱私不是單筆交易的孤立屬性。若某個隱私池只有少數使用者,或使用者存入後立即以相同金額轉出,觀察者仍可能透過金額、時間、Gas、網路地址與互動習慣進行關聯。證明沒有洩露 Witness,不代表行為模式沒有留下線索。
使用者應避免把“無法直接讀取明文”誤解為“無法追蹤”。協議則應評估匿名集合規模、金額標準化、延遲機制、Relayer、網路層隱私與預設錢包流程,同時向使用者清楚說明公開欄位。
專案常用每秒證明數量、證明大小或驗證 Gas 展示效能,但不同電路複雜度、硬體、批次規模與安全參數之間不能直接橫向比較。一個簡單雜湊電路的速度,不能代表完整 zkEVM 執行複雜智慧合約時的成本。
評估效能時,應同時檢視證明延遲、峰值記憶體、硬體配置、批次等待、鏈上資料費、驗證費和最終確認時間。還要區分實驗室基準、測試網結果與主網長期負載,避免只憑單一指標判斷可擴展性。
第一,確認它證明什麼。專案應公開陳述、公開輸入、秘密見證和安全邊界。只說“採用 ZK”卻不解釋證明內容,無法判斷隱私與有效性保證。
第二,確認使用哪種證明系統。檢查 SNARK、STARK、PLONK、Halo2 或其他框架,是否需要可信設定,證明大小、生成成本、驗證成本與遞迴方式如何。
第三,檢查電路和程式碼是否開源、審計與測試。證明系統庫安全不代表業務電路安全,Rollup 的狀態機、橋、升級合約和錢包也需要獨立審查。
第四,檢查資料可用性。確認交易資料發布在 Ethereum、Blob、獨立 DA 網路還是委員會,使用者在營運者停止時如何重建狀態和退出。
第五,檢查系統中心化。瞭解 Sequencer、Prover、參數生成、升級管理員、暫停者和橋控制權。路線圖中的“未來去中心化”不等於當前已經去中心化。
第六,檢查使用者隱私邊界。哪些欄位真正隱藏,哪些公開,錢包是否預設保護隱私,Nullifier 能否跨應用關聯,IP 與法幣入口是否洩露身份。
為了評估零知識證明專案,可使用 ZKP 六維清單。它不是投資評級,也不代表密碼學安全認證。
確認秘密見證、公開輸入和可能洩露的後設資料。有效性證明不一定提供交易隱私,隱私宣告必須落實到具體欄位和攻擊模型。
明確陳述與約束:是證明餘額、身份、程式執行、狀態轉移還是鏈共識。證明只對已編碼規則負責,不對規則外事實負責。
檢查證明硬體、成本、Prover 數量、抗審查和失敗恢復。單一 Prover 下線可能導致網路停止,即使無法提交無效狀態。
檢視電路、編譯器、證明庫、參數和驗證合約是否開源、審計與形式化驗證。業務約束缺失是最危險的實現錯誤之一。
確認資料發布位置、恢復狀態與強制退出方式。Validity Proof 保證計算正確,Data Availability 決定使用者能否獨立繼續使用狀態。
核查多籤、時間鎖、暫停、橋、Sequencer 和驗證金鑰。管理員若能立即替換驗證器,可能繞過使用者對當前證明系統的信任。
它只保護被設計為秘密見證的資訊。公開輸入、交易時間、地址關聯、IP 和充值提現路徑仍可能洩露。具體隱私取決於協議與使用方式。
不是。多數 ZK Rollup 使用有效性證明擴容,但交易資料和帳戶活動可能公開。要獲得隱私,還需專門的隱私狀態、電路和錢包設計。
沒有統一答案。SNARK 證明小、驗證便宜,部分方案需要可信設定;STARK 通常透明且適合大計算,但證明更大。安全還取決於實現、參數和審計。
正常驗證不會恢復 Witness。若密碼學假設、實現、金鑰管理或應用後設資料失效,隱私仍可能受損,因此不能把“零知識”理解為永久絕對匿名。
它在鏈下執行大量交易,把證明和批次資料成本分攤給許多使用者。費用仍受證明、資料發布、L1 Gas、Sequencer 和橋接影響,不保證始終便宜。
可信設定是生成證明與驗證公共參數的儀式。若殘留秘密被攻擊者掌握,部分系統可能被偽造。多方儀式與透明證明系統可降低相關風險。
普通使用者不必掌握公式,但應理解專案證明什麼、是否保護隱私、資料放在哪裡、誰控制升級,以及橋和錢包的風險。
零知識證明把“相信執行者”轉變為“驗證數學證明”。它可以在不披露秘密的情況下證明資格與交易有效,也能讓 Ethereum 用一次驗證確認大量鏈下計算。
SNARK、STARK、遞迴證明、zkEVM 和 zkVM 正在改善證明效率與可程式設計性。Zcash 展示隱私支付,Starknet 與 ZKsync 展示有效性 Rollup,身份協議則展示選擇性披露與防女巫能力。
但 ZK 只保證被正確編碼並驗證的陳述。電路漏洞、可信設定、Prover 中心化、資料不可用、管理員升級和後設資料洩露,都不會因新增“ZK”標籤自動消失。
從Web3 技術堆疊:從底層公鏈到應用層看,零知識證明橫跨密碼學、執行層、擴容、身份與應用。評估時應分開檢查證明系統、資料、營運與使用者體驗。
回到2025 年 Web3 前沿賽道全景圖,可以繼續把 ZK 與 AI、跨鏈、預言機、隱私計算和模組化區塊鏈放在同一框架中理解。
如需使用獨立錢包連接 Web3 應用,可選擇 Hotcoin Web3 Wallet;需要行動端行情與交易工具,可前往 Hotcoin App;瀏覽更多教育內容,請前往 Hotcoin。
風險提示: 本文僅用於教育與資訊分享,不構成投資、交易、密碼學、智慧合約開發、法律或稅務建議。ZK 專案可能面臨電路與驗證器漏洞、可信設定、證明金鑰洩露、Prover 與 Sequencer 中心化、資料不可用、橋接、合約升級、隱私後設資料和監管風險;參與前請核驗最新官方文件、審計、參數、資料模式、管理員權限和退出機制,並只投入可承受損失的資產。


