零知识证明如何運作?為何對隱私至關重要

BTC
ETH
ADA
LINK
MATIC
SOL
UNI
ZEC
零知識證明區塊鏈擴容zk-SNARKs隱私
2026-08-11來源: crypto.news
零知识证明如何運作?為何對隱私至關重要

你可以證明自己年滿18歲,而無需透露生日。你可以證明自己有足夠的資金進行交易,而無需透露餘額。你可以證明某項計算被正確執行,而無需透露輸入內容。零知識證明讓這一切成為可能,並且它們正悄然成為區塊鏈中繼哈希函數之後最重要的密碼學原語。

摘要

大多數零知識證明的介紹都從阿里巴巴洞穴的類比開始,其中某人通過始終從驗證者要求的一側出來,證明自己知道打開門的暗語,而從不透露暗語。這個類比很迷人,但對於理解ZK證明在實踐中的重要性完全無用。它告訴你這樣的證明是可能的,但沒有告訴你為什麼有人會在區塊鏈上需要它。

實際的出發點更簡單。每個區塊鏈都面臨同樣的張力:透明度帶來信任,但透明度也破壞隱私。比特幣的賬本是公開的。每一筆交易、每一個餘額、每一個地址都對任何人可見。以太坊也是如此。這種透明度使系統可審計且可信,但也意味著任何知道哪個地址屬於你的人,都能看到你進行的每一筆交易、你持有的每一個代幣,以及你互動過的每一個協議。

零知識證明解決了這種張力。它們讓你能證明關於你數據的事實,而無需透露數據本身。你可以證明你的賬戶餘額超過某個門檻,而無需透露確切餘額。你可以證明一筆交易有效,而無需透露發送者、接收者或金額。你可以證明你不在制裁名單上,而無需透露你的身份。

背後的數學很深奧。應用是直接的。

每個ZK證明必須具備的三個屬性

每個零知識證明系統都必須滿足三個屬性,理解它們對於評估任何基於ZK的協議至關重要。

完備性。如果陳述為真,並且證明者和驗證者都遵循協議,驗證者將始終被說服。有效的證明永遠不會驗證失敗。如果你真的知道秘密,證明將始終有效。

可靠性。如果陳述為假,任何作弊的證明者都無法說服驗證者其為真,除非概率可以忽略不計。不誠實的證明者無法偽造有效的證明。虛假證明通過驗證的概率如此之小(通常小於2^128分之一),以至於實際上不可能。

零知識。驗證者除了陳述為真這一事實之外,什麼也學不到。證明不會洩露關於秘密本身、任何中間計算或用於生成證明的任何數據的任何信息。驗證者在看到證明後的知識,與有人直接告訴他們陳述為真時完全相同。

第三個屬性使ZK證明有用而不僅僅是正確。標準數字簽名證明消息是由特定密鑰簽署的,但它們會透露消息內容。標準哈希承諾證明某個值被承諾,但在打開時會透露該值。ZK證明證明秘密值之間存在某種關係,而在任何時候都不會透露這些值。

zk-SNARK和zk-STARK的區別

區塊鏈中兩種主導的ZK證明系統是zk-SNARK和zk-STARK。它們以不同的權衡解決相同的問題。

zk-SNARK(零知識簡潔非交互式知識論證)產生小且驗證快速的證明。典型的zk-SNARK證明約為200到300字節,在以太坊上驗證大約需要200,000到300,000 gas。驗證時間是恆定的,無論被證明的計算有多複雜。驗證單筆交易的證明與驗證一萬筆交易的證明所需的時間相同。

這種簡潔性的代價是可信設置。大多數zk-SNARK系統需要一次性儀式,其中生成隨機參數,之後隨機性被銷毀。如果儀式中的隨機性沒有被妥善銷毀,攻擊者可能偽造證明。Zcash進行了密碼學歷史上最精心的可信設置儀式之一(“Powers of Tau”儀式),有全球數百名參與者,其安全假設是至少有一名參與者誠實地銷毀了他們的隨機性。

較新的 SNARK 系統如 PLONK 和 Halo 2 已減少或消除了可信設置的要求,但這種印象仍然存在。有些項目特意避免使用 SNARK,就是因為可信設置的擔憂,即使他們會使用的實作並不需要可信設置。

zk-STARK(零知識可擴展透明論證)完全消除了可信設置。它們的安全性來自於雜湊函數,而不是橢圓曲線假設,這使得它們是透明的(沒有秘密參數),並且在理論上具有抗量子性(基於雜湊的密碼學被認為對量子電腦是安全的,而橢圓曲線密碼學則不是)。

權衡在於大小。STARK 證明明顯大於 SNARK 證明,通常為數十到數百 KB,而 SNARK 證明僅為數百位元組。在數據存儲需要花費 gas 的區塊鏈上,較大的證明意味著較高的驗證成本。StarkWare 是 STARK 技術的主要開發者,通過使用遞歸證明組合來解決這個問題:證明一個證明是有效的,然後證明這個證明的證明是有效的,從而壓縮最終的鏈上足跡。

實際上,這種區別比五年前更重要。現代證明系統越來越多地融合了兩者的技術,工程重點已從使用哪種證明系統轉移到證明者生成證明的速度以及驗證者檢查證明的成本。

用於區塊鏈擴容的 ZK 證明

ZK 證明的擴容應用在概念上很直接。Rollup 在鏈下執行一批交易,生成證明該批次交易被正確執行的證明,並將證明發佈到以太坊。以太坊驗證器合約在單次操作中檢查證明並接受新狀態。

使其強大的是證明和驗證之間的不對稱性。為一批 10,000 筆交易生成證明可能需要一台強大的機器花費幾分鐘。驗證證明只需不到一秒,並且無論批次中有多少交易,花費的 gas 都是固定的。這種不對稱性使得 ZK rollup 能將數千筆交易壓縮為單次以太坊驗證。

主要的 ZK rollup 各自對這種架構採取不同的方法。

zkSync Era 使用自定義虛擬機(zkEVM),在語言層面上與 Solidity 兼容,但編譯為針對 ZK 證明生成優化的不同指令集。現有的以太坊合約可以以最小的更改重新編譯為 zkSync。

StarkNet 使用 Cairo 程式語言和 STARK 證明。Cairo 是專門為可證明計算設計的專用語言,這使其具有性能優勢,但要求開發者學習新的語言和範式。

Polygon zkEVM 旨在實現 EVM 等價,意味著它可以執行與以太坊相同的字節碼而無需重新編譯。這最大化了兼容性,但在使每個 EVM 操作碼都可證明方面引入了工程複雜性。

Scroll 也以完全 EVM 等價為目標,並對其 zkEVM 實作採用社區驅動的方法,目標是成為最兼容以太坊的 ZK rollup。

這些方法之間的競爭最終是兼容性和性能之間的競爭。ZK rollup 與現有以太坊工具越兼容,開發者遷移就越容易。Rollup 越優化其指令集以實現可證明性,其證明就越快、越便宜。

用於隱私的 ZK 證明

隱私應用是 ZK 證明變得最重要且最具爭議的地方。

標準的以太坊交易會揭示發送者地址、接收者地址、轉賬金額以及調用的智能合約。這些信息永久公開。Chainalysis 和 Elliptic 等鏈分析公司已經建立了整個業務,用於追蹤透明賬本上的交易流,通過交易所 KYC 數據、已知實體標籤和行為模式將地址與現實世界身份關聯起來。

ZK 隱私協議打破了這種可見性鏈。在基於 ZK 的私人交易中,用戶生成一個證明,證明他們的交易是有效的(發送者有足夠的資金,沒有雙花,金額平衡),而不揭示誰發送了、誰接收了或轉賬了多少。證明發佈在鏈上並由網絡驗證,但底層交易細節保持加密。

Zcash 是這個概念的第一個主要實作,於 2016 年推出,使用 zk-SNARK 進行屏蔽交易。Zcash 使用者可以選擇透明交易(與比特幣的公開帳本相同)或屏蔽交易(其中發送者、接收者和金額隱藏在 ZK 證明之後)。實際上,Zcash 上屏蔽交易的採用率低於支持者的期望,大多數 Zcash 交易仍使用透明池。

更新的協議正在建構可程式化隱私,不僅是代幣轉移,還包括任意智慧合約邏輯可以私下執行。Aztec Network 正在以太坊上建構一個隱私優先的第二層,所有交易預設為私有。Aleo 正在建構一個具有原生 ZK 支援的私有智慧合約的第一層區塊鏈。兩者都使用 ZK 證明來驗證狀態轉換,而不揭露涉及的計算或資料。

隱私的潛力不僅限於個人交易。ZK 證明可以實現私人投票(證明你已投票而不揭露你的選擇)、私人身分驗證(證明你是特定國家的公民而不揭露你的護照號碼)以及私人 DeFi(提供流動性給資金池而不揭露你的地址或部位大小)。

監管衝突

加密貨幣中的隱私佔據了一個仍在定義中的有爭議的法律空間。

2022 年 8 月,美國財政部外國資產控制辦公室(OFAC)制裁了 Tornado Cash,這是一個基於以太坊的混合器,使用 ZK 證明來打破存款和提款地址之間的聯繫。制裁開源智慧合約程式碼,而不是個人或公司,是前所未有的,並在加密貨幣隱私社群中引起了震動。

2024 年 5 月,Tornado Cash 的開發者之一 Alexey Pertsev 被荷蘭法院判定協助洗錢罪。該判決確立了一個法律先例,即如果工具被用於非法目的,撰寫保護隱私的程式碼可能承擔刑事責任,無論開發者是否親自協助非法活動。

這些行動塑造了 ZK 隱私發展的方向。當前的隱私協議世代正在圍繞監管限制進行建構,而不是忽略它們。

選擇性揭露允許使用者證明關於其身分或交易歷史的特定事實,而不揭露一切。使用者可以證明他們通過了持牌交易所的 KYC,證明他們不在 OFAC 制裁名單上,或證明他們的資金並非來自受制裁的地址,所有這些都使用 ZK 證明,除了被驗證的特定聲明外,不揭露任何其他資訊。

隱私池,由 Vitalik Buterin 等人正式化的概念,允許使用者證明他們從隱私集合中的提款屬於乾淨的存款子集。該協議不是不加區別地混合所有存款,而是維護排除已知非法地址的關聯集合。使用者證明他們在乾淨集合中的成員資格,而不揭露他們正在提取哪個特定存款。

這些妥協是否能滿足監管機構仍有待觀察。隱私和監視在架構上不相容的根本緊張關係,不會僅靠技術解決。ZK 證明為政策制定者提供了一個他們從未有過的工具:在不要求揭露的情況下驗證合規性的能力。他們是否選擇使用它是一個政治問題,而不是密碼學問題。

證明成本對哪些應用首先採用 ZK 技術有具體影響。高價值金融交易,其中生成證明的成本相對於交易規模可以忽略不計,是最早的採用者。機構跨鏈轉移、大型 DeFi 部位和企業結算系統可以吸收每筆交易數美元的證明成本,而不影響其經濟效益。消費者應用,其中單筆交易可能僅值幾美元,需要證明成本再下降一個數量級,ZK 隱私才能在日常使用中變得實用。公司建構 ZK 特定 ASIC 的硬體加速努力正是針對這一成本障礙。

擴展和隱私應用的融合也許是 ZK 技術最被低估的方面。一個私下處理交易的 ZK rollup 將結合鏈下執行的吞吐量優勢和加密狀態轉換的機密性優勢。使用者將獲得快速、便宜且對鏈分析不可見的交易。包括 Aztec 和 Polygon Miden 在內的幾個項目正在建構這種組合,儘管將這兩種能力合併到生產系統中的工程複雜性仍然很大。

本文不涵蓋的內容

本文不涵蓋支撐 ZK 證明系統的多項式承諾、橢圓曲線配對或 Fiat-Shamir 轉換的數學原理。理解這些需要研究所層級的抽象代數,且對於作為使用者或投資者評估基於 ZK 的協議並非必要。

本文不涵蓋 ZK 機器學習(zkML),這是一個新興領域,使用 ZK 證明來驗證機器學習模型產生了特定輸出,而不揭露模型的權重或訓練資料。此應用仍處於實驗階段,其實際影響仍在研究中。

本文不討論 ZK 證明生成的硬體加速競賽。Cysic、Ingonyama 和 Fabric Cryptography 等公司正在建構專門用於 ZK 證明的客製化 ASIC 和 FPGA,這可能將證明成本降低數個數量級。硬體領域變化太快,無法進行靜態分析。

使用基於 ZK 的協議前的實用檢查

驗證證明系統的審計狀態。 ZK 證明系統在數學上相當複雜,實作錯誤可能造成災難性後果。電路(被證明計算的數學表示)中的錯誤可能讓攻擊者偽造證明並鑄造代幣或竊取資金。請檢查證明系統及其電路是否由專門從事 ZK 密碼學的公司審計,而不僅僅是一般的智慧合約審計公司。

了解實際隱私的範圍。 並非所有基於 ZK 的協議都提供相同程度的隱私。有些隱藏交易金額但揭露地址,有些隱藏地址但揭露金額,有些則隱藏一切。請閱讀協議的文件,以確切了解哪些資訊被隱藏,哪些仍然可見。諸如交易時間、Gas 模式和互動頻率等元資料,即使在核心交易資料被隱藏時,也常常能去匿名化使用者。

檢查可信設定狀態。 如果協議使用 zk-SNARK,請確定它是否需要可信設定以及該設定是如何進行的。有數百名參與者的多方計算儀式比只有少數已知實體的小型儀式更值得信賴。使用 STARK、具有通用設定的 PLONK 或 Halo 2 的協議則完全不需要可信設定。

評估監管風險。 隱私協議在法律不確定的環境中運作。請考慮協議是否具有合規機制(選擇性揭露、隱私池、選擇性合規證明),以及該機制是否已通過實際監管審查的考驗。使用後來被制裁的隱私協議,可能會使您移動或出售資產的能力變得複雜。

測試證明時間。生成 ZK 證明需要大量計算。在移動設備上,證明一筆簡單交易可能需要 30 秒到兩分鐘。在桌面電腦上,可能需要幾秒鐘。如果證明時間對您的用例來說太長,該協議可能不適合頻繁交易。有些協議將證明過程外包給專用伺服器,這樣更快,但引入了信任假設,即伺服器不會得知您的私人數據。

  1. 什麼是零知識證明(用簡單的話說)?

    零知識證明是一種證明某事為真而不揭示為何為真的方式。在區塊鏈中,這意味著您可以證明一筆交易有效、您擁有足夠的資金,或某項計算已正確完成,而無需揭示實際的交易細節、您的餘額或用於計算的數據。驗證者會確信該陳述為真,但不會學到其他任何信息。

  2. zk-SNARKs 和 zk-STARKs 之間有什麼區別?

    zk-SNARKs 產生非常小的證明(數百字節),驗證成本低,但歷史上需要可信設置儀式來生成初始系統參數。zk-STARKs 產生較大的證明(數十到數百千字節),但不需要可信設置,並且理論上能抵抗量子計算攻擊。在實踐中,現代證明系統正在趨同,大小、速度和信任假設之間的權衡變得不再那麼明顯。

  3. ZK 證明如何幫助區塊鏈擴容?

    ZK rollups 在鏈下執行數千筆交易,並生成一個證明,證明所有交易都已正確執行。該證明在以太坊上通過單一操作進行驗證,無論批次中有多少筆交易,其 gas 成本都是固定的。生成證明的成本(高昂但由 rollup 運營商承擔)與驗證成本(低廉且整個批次只需支付一次)之間的不對稱性,正是產生擴容效果的原因。

  4. 基於 ZK 的隱私幣是否非法?

    像 Zcash 這樣的基於 ZK 的隱私幣在大多數司法管轄區並非固有非法。然而,監管方法差異很大。一些交易所已將隱私幣下架,以遵守反洗錢法規。2022 年的 Tornado Cash 制裁表明,隱私保護協議可能面臨監管行動。合法性取決於您的司法管轄區以及您如何使用該技術,而不是技術本身。

  5. 什麼是可信設置,為什麼它很重要?

    可信設置是一些 zk-SNARK 系統生成加密參數所需的一次性儀式。在儀式期間,會創建隨機值,之後必須將其銷毀。如果任何參與者保留了隨機值,他們理論上可以偽造證明。多方儀式通過要求可能數百名參與者中至少有一位誠實地銷毀其隨機性來降低此風險。較新的證明系統如 PLONK 和 Halo 2 已消除或最小化了可信設置的要求。

  6. ZK 證明能否使所有區塊鏈交易都私有化?

    從技術上講,可以。像 Aztec Network 和 Aleo 這樣的協議正在構建系統,其中所有智能合約交互默認都是私有的,而不僅僅是代幣轉移。然而,所有交易的完全隱私會帶來監管挑戰,增加計算成本(ZK 證明生成成本高昂),並改變用戶體驗(證明需要時間)。鏈上完全隱私是否成為標準,既取決於技術能力,也取決於監管決策。

  7. 隱私池是如何運作的?

    隱私池允許用戶將資金存入共享池,並從不同地址提取,從而斷開兩個地址之間的鏈上關聯。與簡單的混合器不同,隱私池使用 ZK 證明結合關聯集合,讓用戶證明其提款屬於排除已知非法地址的存款子集。這在為用戶提供隱私的同時,也提供了合規機制。用戶證明自己屬於乾淨集合,而不揭示具體提取的是哪筆存款。

  8. 使用基於 ZK 的協議的主要風險是什麼?

    主要風險包括 ZK 電路中的實現錯誤(可能允許偽造證明)、舊 SNARK 系統中的可信設置漏洞、針對隱私功能的監管行動、消費級硬件上生成證明的較高計算要求,以及與標準智能合約開發相比,ZK 工具相對不成熟。此外,元數據洩漏(交易時間、gas 模式、交互頻率)有時即使在核心交易數據是私有的情況下,也能使用戶去匿名化。