零知識證明(ZK證明):它是什麼以及它是如何運作的

你需要知道的最重要的事情

  • 零知識證明是一種密碼學方法,它允許一方在不洩露底層私有資料的情況下向另一方證明某個聲明的有效性。
  • ZK 證明在加密貨幣中用於隱私目的(例如隱藏交易細節)或擴展目的(例如壓縮交易),而後者可能並不意味著隱藏資料。
  • ZK 證明不能證明事實真相或輸入或來源的可靠性,而僅限於驗證關於所提供輸入的數學陳述的有效性。
「ZK」一詞是濫用最嚴重的術語之一 加密貨幣的世界專案方往往將其發佈在聚合解決方案、隱私錢包、身分工具和代幣名稱上,卻忽略了解釋此驗證實際檢查的內容或可能揭示的內容。

零知識證明本質上是一種真正獨特的加密方法。它允許一方證明某個聲明的有效性,另一方隨後進行確認,而無需交換任何私人資料。當該系統運作正常時,它將成為擴展區塊鏈、隱藏交易細節以及在無需共享資訊的情況下驗證身份的寶貴工具。

零知識證明(ZK證明):它是什麼以及它是如何運作的

但僅僅在產品頁面上標註「零知識證明」(ZK)並不能自動保證所有這些優勢。本指南將解釋零知識證明的工作原理、它們在當今加密貨幣領域的實際應用,以及在信任任何帶有此標籤的產品之前需要提出的關鍵問題。

要點

  • 零知識證明允許一方在不披露其背後機密資料的情況下證明其主張。
  • 在加密貨幣領域,零知識證明可以驗證私有資料、鏈下帳戶、身分聲明以及交易有效性.
  • ZK 系統有利於可擴展性和隱私性,因為驗證過程可以比揭露所有來源資料小得多。
  • 正確的證明可能取決於錯誤的輸入、薄弱的軟體、可靠的設定假設、橋樑危險或暴露的元資料。

什麼是零知識證明(ZK證明)?一個簡單的解釋

大多數人第一次接觸到帶有零知識證明(ZK證明)的加密貨幣項目,都是因為它們聲稱自己是「私密的」或「值得信賴的」。但如果不了解證明實際驗證的內容,這些話就毫無意義。這種認知上的差距正是大多數新手感到困惑的根源,也是行銷活動大行其道的溫床。

零知識證明是一種密碼學證明,它能夠在不洩露底層秘密的情況下,使審計員相信某個陳述為真。提出聲明的一方稱為聲明方,而驗證聲明的一方稱為審計員。

在加密貨幣領域,這意味著用戶、應用程式、錢包、匯總或協議可以在不向他人透露所有輸入資訊的情況下,證明交易的某些資訊、聲明身份、提供備份或執行計算。這種證明可以保護隱私、減輕驗證負擔,或兩者兼具。然而,它並不能保證所有依賴零知識證明的產品都是匿名或無風險的。

這個概念可以追溯到1985年Goldwasser、Micali和Rackoff發表的一篇關於互動式概念驗證系統的論文。現代加密貨幣在新型概念驗證系統中運用了相同的基本思想,這些系統無需驗證者之間進行任何雙向通訊即可運作。

所有零知識證明(ZK證明)都具有三個關鍵屬性:

完美:這意味著,如果每個人都遵守規則,那麼正確的陳述就應該成功。

合理性意味著錯誤陳述成功的機率應該非常低。

零知識審計意味著審計師只知道財務報表是否成功,而不知道背後的具體數據。

首要目標是證明本身,而不僅僅是保密。零知識證明系統仍然需要準確的公開聲明、有效的私有輸入以及能夠正確應用證明規則的軟體。

零知識證明(ZK證明)是如何運作的?

零知識證明(ZK Proof)的工作原理是將私有資訊轉化為支持公開聲明的可驗證證據。審計人員無需直接查看私有資料即可審查這些證據。

主要職責如下:

角色 使命
證明者 該證據由私人資料和公開聲明構成。
審計員 它會檢查證據是否與陳述相符。
秘密入口(見證人) 隱藏條目、秘密、憑證或帳戶追蹤。
陳述 檢察機關正面臨考驗。

工作流程通常始於一條私密的、保密的條目。驗證者識別出一條公開聲明,產生證明,並將其提交給另一驗證者以獲得接受或拒絕的結果。驗證者可以看到公開條目,例如標題、餘額範圍、群組成員身分或狀態根,但看不到完整的保密條目。

不同用例之間的差異在於對哪些輸入保持私密、哪些輸入公開的定義。無論目標是隱藏支付金額、確認投票資格,或是驗證一組鏈下交易,其結構都保持不變。

因此,即使無人知曉秘密,零知識證明仍然有用。智能合約可以驗證證明。匯總可以發布有效性證明。應用程式無需收集憑證本身,即可確認憑證是否符合特定規則。驗證過程由數學演算法完成,驗證者永遠不會提供原始數據。

零知識證明(ZK證明)的簡化範例

為了更好地理解抽象的密碼學原理,沒有什麼比實際例子更清晰的了,而年齡驗證就是最常見、應用最廣泛的例子之一。

一個人無需透露完整的出生日期、地址、證件號碼或姓名即可證明自己已年滿18歲。在這種情況下,只需籠統地聲明“此人已成年”。具體的證據是能夠證實這項聲明的證件或身分資訊。驗證者只需要「通過」或「未通過」的結果,無需提供可重複使用的身分證件影本。

相關的加密版本工作原理相同。錢包可以證明其用戶屬於已批准的群組、持有有效憑證或滿足特定條件才能參與投票或申訴,而應用程式無需收到原始文件或完整的帳戶歷史記錄即可驗證此證明。

密碼驗證在一個更簡單的場景中也體現了同樣的邏輯:

  • 安裝程式知道密碼。
  • 調查人員需要證據證明認證者知情。
  • 驗證過程必須在不洩漏密碼的情況下進行。
  • 重複使用或複製的證據不應在以後解鎖系統。

當這些類比暗示自動隱私時,它們就站不住腳了。真正的零知識證明(ZK)系統需要嚴格的加密、明確定義的輸入、防重播機制,以及防止在錯誤情況下重複使用證明的方法。年齡驗證的例子之所以有效,是因為它包含了所有這些要素。但是,許多使用「零知識證明」標籤的加密產品並沒有明確說明實際採用了哪些控制措施。

區塊鏈和加密貨幣中的零知識證明(ZK證明)

對於許多區塊鏈和加密貨幣領域的初學者來說,理解零知識證明(ZK 證明)是一個令人困惑的問題。

大多數區塊鏈本質上都是完全透明的。發送比特幣或以太坊時,任何人都可以永久追蹤交易的整個過程。區塊鏈的設計初衷就是作為一個公共帳本。

那麼,當一個專案提到「ZK」這個術語時,究竟會發生什麼變化呢?

這完全取決於 ZK 證明的應用目的。

隱私相關的應用意味著零知識證明會隱藏交易中的特定細節,例如發送者、接收者或金額。交易仍然保留在鏈上,但這些細節受到保護。 Zcash 就是一個較早的例子,它使用 zk-SNARKs 進行安全轉賬,可以隱藏發送方、接收方和金額等信息,使其不被公開。

其可擴展性體現在零知識證明(ZK Proof)能夠壓縮加密貨幣交易中的一系列交易,並確保其正確執行,而無需在主鏈上重新執行每個步驟。交易資料可以完全公開,沒有任何隱藏資訊。此處證明的目的是為了提高效率和驗證有效性,而不是保護隱私。

許多零密鑰聚合、零密鑰擴展虛擬機器和二層網路都屬於第二類。這些技術使用零密鑰來提高速度和降低成本,而不是隱藏資料。

當你在產品上看到「零知識」(ZK)這個字時,首先要問的問題是:這是什麼樣的零知識證明?如果團隊無法用清晰簡潔的句子回答這個問題,那麼這本身就足以說明問題了。

ZK-SNARKs 和 ZK-STARKs 以及有效性證明

要瞭解零知識證明(ZK Proof)技術,必須先熟悉加密貨幣領域兩大主要的證明係統:ZK-SNARKs 和 ZK-STARKs。雖然兩者都旨在解決同一個根本問題,但它們的實現方法卻截然不同,而這種差異對於評估任何依賴這些證明系統的項目的安全性都至關重要。

SNARK 代表“簡潔非互動式知識論證”,而 STARK 則代表“可擴展透明知識論證”。這兩個理論體係都支援零知識屬性,且資料驗證的成本遠低於完全重新計算。

證明家族 實際比較
ZK-SNARK 它們的證明通常很小,驗證起來也很高效,但根據設計的不同,它們通常需要考慮「可信任設定」。
ZK-STARK 它們的特點是設置透明、可擴展性強,但它們的證明通常更大,驗證成本也更高。
有效性證明 更廣泛地指證明狀態轉變或計算結果正確的證明。

對於初學者來說,最關鍵的一點是「可信設定」。一些 SNARK 系統依賴必須創建並永久銷毀的設定材料。如果這些材料落入不法分子手中,安全模型就會崩潰,因為惡意行為者可以創造虛假的、通過驗證的證明。 STARK 系統完全避免了這項要求,因此被稱為「透明」。但其缺點是 STARK 證明通常更大,這會增加鏈上驗證的成本。

Starknet 是基於 STARK 工作量證明機制建構的網路的典型例子。這並不意味著每個 STARK 系統預設都是私有的,而是說明了工作量證明機制的設計如何影響現實世界的基礎設施決策。

零知識證明(ZK證明)目前應用於哪些領域?

零知識證明(ZK 證明)的應用範圍非常廣泛,遠遠超過大多數初學者的想像。每種應用場景隱藏的資料不同,證明的結論也不同,帶來的風險也各不相同。

加密貨幣領域最突出的視覺應用包括以下幾種:

  • 受保護的付款方式: 它會隱藏選定交易的詳細信息,例如寄件者、收件人或金額。
  • ZK匯總: 它確保交易集的正確執行,而無需在底層鏈上重新運行每個計算。
  • 身分系統: 無需提供原始文件即可證明資格、獨特性或資格。
  • 儲備金證明: 它對已承諾的資產或負債的索賠是有限的。
  • 類似 zkTLS 的工具: 在不洩漏會話本身的情況下,從網路會話中確定事實。
  • 投票制度: 在確定資格的同時,最大限度地降低將選票與個人聯繫起來的風險。
  • 外部計算: 這證明該結果是按照所謂的程序進行的。

對於大多數加密貨幣用戶而言,隱私應用程式場景最為常見。注重隱私的加密貨幣類別涵蓋了那些將交易保密性或元資料限製作為其核心功能的資產。零知識證明可以支持這一目標,但錢包行為、透明地址、元數據和應用程式設計都會影響用戶實際體驗到的隱私。

Zcash 是最成熟的例子。它使用 zk-SNARKs 實現安全的交易功能,允許用戶在不洩露資訊的情況下證明資訊的所有權。

身份是一個獨立的用例。與身分相關的加密貨幣類別適用於驗證會員資格、唯一性、憑證或權限的系統。 World ID 使用零知識證明,使用戶能夠在不洩露申請人底層身分資料的情況下確認憑證的有效性。透過可驗證憑證進行選擇性披露也遵循類似的方法,允許持有者僅披露憑證的特定字段,而不是整個文件。

對於大多數非代幣相關用途,零知識證明屬於隱私增強密碼學的範疇。雖然證明可以限制資訊洩露,但並不能消除對發行方、軟體、錢包和硬體的信任需求。

零知識證明(ZK證明)無法證明什麼

對於初學者來說,這一部分極為重要,儘管大多數加密貨幣項目都避免對此進行清晰的解釋。

無效證明不能證明事實真理。它的作用僅限於驗證關於給定輸入的給定數學陳述是否為真。

零知識證明可以證明某個隱藏輸入符合特定規則。但是,除非周圍系統也能夠證明,否則它無法證明該隱藏輸入來自可信賴的個人、精確的感測器、溶劑交換或可靠的發行方。

這些限制在許多加密貨幣聲明中都顯而易見。例如,儲備金證明可以表明承諾餘額符合特定標準,但可能無法證明負債的全部規模、資產的真實所有權,或者資金是否是為通過盡職調查而臨時借入的。同樣,信用證明可以表明已簽署的信用協議符合規定,但無法證明發行人已妥善履行盡職調查義務。

最大的缺陷並不在於證明本身:

  • 信任輸入: 用於證明的數據可能不正確或已被竄改。
  • 對發行機構的信任: 簽署背書的人可能意志薄弱、行為不端或不誠實。
  • 信任 甲骨文: 鏈外資料可能已過時或在進入證明之前已被篡改。
  • 信任設備: 惡意軟體可以在證據生成之前影響用戶簽署或看到的內容。
  • 元資料外洩: 即使證據本身隱藏了底層數據,位址、時間、IP 數據和應用程式行為也可能揭示某些模式。

因此,任何基於零知識證明的聲明都必須明確指出所證明的具體內容。除非應用程式明確說明哪些資料被隱藏、哪些資料保持公開,以及由誰來保證實際輸入的有效性,否則「私有」、「已驗證」和「合規」等術語都是不完整的標籤。

零知識證明(ZK 證明)的風險、成本和置信度假設

儘管證明系統本身在數學上可能嚴謹可靠,但圍繞它的產品可能有缺陷。僅僅理解其數學原理是不夠的,對於大多數使用者而言,下文所述的實際風險比加密本身的風險更為重要。

風險 需要檢查什麼
可靠的設定 驗證系統是否需要準備材料以及如何準備這些材料。
維修費用 證明製程是否需要特殊設備、時間或中央操作員。
元資料外洩 哪些位址、時間、費用、IP訊號或公開資訊仍然可見?
匯總風險 序列器控制、橋接設計、資料可用性和強制退出路徑。
實施錯誤 審計流程、漏洞賞金、晉升金鑰和事件歷史記錄。
錢包錯誤 錯誤的網路、偽造的應用程式、惡意簽名或洩漏的復原短語。
拉科魯尼亞 該工具是阻止、記錄或報告特定活動。

可信任設定是最容易被誤解的風險。它並非總是不可逾越的障礙,但確實是一個需要認真對待的假設。使用者應該清楚項目是依賴設定協定、特定電路的設置,還是透明的驗證設計。

證明的成本可能會悄悄導致系統中心化。如果只有少數業者能夠足夠快速地產生證明,那麼網路就能以低成本驗證結果,同時仍依賴專門的基礎設施來產生證明。任何聲稱去中心化的 ZK-Rollup 或計算網路都應該考慮這一點。

隱私權聲明應仔細閱讀。例如,某個工具可能會隱藏交易金額但公開地址,或匿名化應用程式但仍顯示驗證者的資格,或設定餘額範圍但完全公開錢包活動和時間。例如,在交易加密貨幣時,您可能會認為自己的隱私得到完全保障。

量子安全的概念也出現在零知識(ZK)的行銷中。有些系統聲稱具備後量子特性,但這並不意味著所有零知識資產、錢包、橋接器或連網應用程式都能免受未來加密攻擊。重要的是要明白,保護加密貨幣需要採取綜合性的方法。

如何安全地使用零知識(ZK)加密工具

第一步是明確定義這個工具究竟是什麼:它是隱私錢包、匯總解決方案、代幣、身分系統、儲備證明頁面,還是開發者基礎設施?僅僅稱其為「零知識證明」並不能回答這個問題。

在關聯錢包、透過橋接器轉移資金或購買代幣之前,請使用此清單:

  • 請明確指出該證明所驗證的具體語句。
  • 啟用校對功能後,檢查哪些資料仍公開。
  • 分別驗證網路、橋接器和智慧合約位址。
  • 檢查驗證系統是否需要可靠的設定。
  • 檢查是否涉及中央排序器、發行器或操作員。
  • 支付 小規模試驗治療 在轉移重要資金之前。
  • 將恢復短語和簽名設備與應用程式聲明分開。

妥善管理錢包至關重要,因為大多數零知識證明 (ZK) 工具都需要錢包介面或帳戶才能運作。如果您是零知識證明新手,即將使用不熟悉的零知識證明應用程序,我們關於最佳加密貨幣錢包入門指南的文章涵蓋了主要類別以及連接前需要注意的事項。

交易所支援是另一個需要考慮的因素。中心化平台可能會上架與 ZK 關聯的代幣,但未必支援所有 Rollup 方案、保護地址或提現路徑。如果您是加密貨幣交易新手,正在尋找 ZK 資產,那麼對新手友好的加密貨幣交易所可以幫助您了解費用、安全性和支援的資產類型,從而更好地進行比較。對於使用基於 ZK Rollup 的 DeFi 應用程式的使用者而言,去中心化交易所 (DEX) 則更為合適。

以下是一個簡單的工作流程:閱讀應用程式的證明聲明,檢查字串和智慧合約地址,小額測試,永遠不要簽署你不認識的東西,並且在工具明確告訴你它隱藏了什麼之前,假定隱私是部分隱藏的。

常見問題

用簡單的話來說,什麼是零知識證明?

零知識證明是一種在不披露構成該主張的專有資訊的情況下驗證該主張的方法。在加密貨幣領域,這意味著可以在不透露所有輸入資訊的情況下證明資格、驗證交易支付、建立安全的支付系統或聲明憑證。

零知識證明是如何運作的?

鑑定人員根據私人證人的證詞和公開聲明收集證據。然後,鑑定人員在不與證人見面的情況下檢查證據,並決定是否接受。

零知識證明的例子是什麼?

年齡驗證是零知識證明的典型例子。只要憑證授權單位和驗證系統值得信賴,使用者無需透露完整的出生日期、地址或證件號碼即可證明自己已達到規定的年齡。

ZK捲簾式包裝有什麼特別之處嗎?

ZK-rollup並非自動具備隱私性。許多ZK-rollup使用有效性證明來表明鏈下交易執行的正確性,而交易資料或足以重構rollup狀態的資料可能仍然公開。

zk-SNARKs 和 zk-STARKs 有什麼區別?

zk-SNARKs 通常能產生體積小、驗證效率高的證明,但其某些設計需要可信任設定。而 zk-STARKs 則無需可信設置,且能很好地擴展到大型帳戶,儘管其證明通常體積更大。

零知識證明能證明現實世界中的事件嗎?

零知識證明本身無法證明現實世界中的事件。它們可以證明所提供的數據滿足某個數學規則,但當論點依賴外部世界時,系統仍然需要可靠的感測器、發布者或預言機。

評論被關閉。