您可以證明自己已滿18歲,而無需透露您的生日。您可以證明自己有足夠的資金進行交易,而無需透露您的餘額。您可以證明計算是正確的,而無需透露輸入。零知識證明使這一切成為可能,並且它們正在安靜地成為區塊鏈中最重要的密碼學原語,自哈希函數以來。
摘要
區塊鏈中兩個主導的零知識證明系統是zk-SNARKs和zk-STARKs。它們以不同的權衡解決相同的問題。
zk-SNARKs(零知識簡潔非互動知識論證)產生小型證明,驗證速度快。典型的 zk-SNARK 證明約為 200 到 300 字節,並且在以太坊上驗證所需的 gas 約為 200,000 到 300,000。無論被證明的計算有多複雜,驗證時間都是恆定的。驗證單一交易的證明所需的時間與驗證一萬筆交易的證明所需的時間相同。
這種簡潔性的代價是需要信任的設置。大多數 zk-SNARK 系統需要一次性儀式來生成隨機參數,並在之後銷毀這些隨機性。如果這次儀式中的隨機性沒有被正確銷毀,攻擊者可能會偽造證明。Zcash 進行了加密歷史上最複雜的信任設置儀式之一(“Powers of Tau”儀式),涉及全球數百名參與者,安全假設是至少有一名參與者誠實地銷毀了他們的隨機性。
更新的 SNARK 系統如 PLONK 和 Halo 2 減少或消除了信任設置的需求,但這種看法仍然存在。一些項目特別避免使用 SNARK,儘管他們將使用的實現不需要信任設置。
zk-STARKs(零知識可擴展透明知識論證)完全消除了信任設置。它們的安全性源於哈希函數,而不是橢圓曲線假設,這使得它們透明(沒有秘密參數)並且理論上對量子計算機具有抗性(基於哈希的加密被認為對量子計算機是安全的,而橢圓曲線加密則不是)。
這種權衡是大小。STARK 證明的大小顯著大於 SNARK 證明,通常是幾十到幾百千字節,而 SNARK 證明則是幾百字節。在一個數據存儲成本以 gas 計算的區塊鏈上,較大的證明意味著更高的驗證成本。STARK 技術的主要開發者 StarkWare 通過使用遞歸證明組合來解決這個問題:證明一個證明是有效的,然後證明該證明的證明是有效的,從而壓縮最終的鏈上佔用空間。
在實踐中,這種區別的重要性不如五年前那麼大。現代證明系統越來越多地融合了兩個家族的技術,工程重點已經從使用哪種證明系統轉向了證明者生成證明的速度以及驗證者檢查證明的成本。
ZK 證明的擴展應用概念上是直接的。滾動合約在鏈外執行一批交易,生成一個證明,證明該批交易正確執行,然後將證明發佈到以太坊。以太坊驗證合約在單次操作中檢查該證明並接受新狀態。
這種強大的地方在於證明和驗證之間的不對稱性。生成一批 10,000 筆交易的證明可能需要一台強大的機器幾分鐘的時間。驗證該證明則只需幾分之一秒,並且無論批次中有多少交易,所需的 gas 數量都是固定的。這種不對稱性使得 ZK 滾動合約能夠將數千筆交易壓縮成單一的以太坊驗證。
主要的 ZK 滾動合約各自採取不同的方法來實現這一架構。
zkSync Era 使用一種自定義虛擬機(zkEVM),在語言層面上與 Solidity 兼容,但編譯為針對 ZK 證明生成優化的不同指令集。現有的以太坊合約可以在最小變更的情況下重新編譯為 zkSync。
StarkNet 使用 Cairo 編程語言和 STARK 證明。Cairo 是一種專門為可證計算設計的語言,這使得它在性能上具有優勢,但需要開發者學習一種新的語言和範式。
Polygon zkEVM 旨在實現 EVM 等價性,這意味著它可以執行與以太坊相同的字節碼,而無需重新編譯。這最大化了兼容性,但在使每個 EVM 操作碼可證明方面引入了工程複雜性。
Scroll 也以實現完整的 EVM 等價性為目標,並採用社區驅動的方法來實現其 zkEVM,目標是成為最兼容以太坊的 ZK rollup。
這些方法之間的競爭最終是兼容性與性能之間的競爭。ZK rollup 與現有以太坊工具的兼容性越高,開發者遷移的難度就越小。ZK rollup 為可證明性優化其指令集的程度越高,其證明的速度和成本就越低。
你可能還會喜歡:什麼是代幣化及其運作方式
隱私應用是 ZK 證明變得最重要且最具爭議的地方。
標準的以太坊交易會揭示發送者地址、接收者地址、轉移金額和調用的智能合約。這些信息是永久公開的。鏈分析公司如 Chainalysis 和 Elliptic 已經建立了整個業務,專門追蹤透明賬本上的交易流,通過交易所 KYC 數據、已知實體標籤和行為模式將地址與現實世界身份聯繫起來。
ZK 隱私協議打破了這種可見性鏈。在基於 ZK 的私人交易中,用戶生成一個證明,證明其交易是有效的(發送者有足夠的資金,沒有雙重支付,金額平衡),而不透露誰發送了它、誰收到了它或轉移了多少金額。該證明會在鏈上發布並由網絡驗證,但底層交易細節仍然保持加密。
Zcash 是這一概念的首個重大實現,於 2016 年推出,使用 zk-SNARKs 進行保護交易。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在內的幾個項目正在構建這一組合,儘管將這兩種能力合併到生產系統中的工程複雜性仍然相當可觀。
這篇文章不涵蓋多項式承諾、橢圓曲線配對或Fiat-Shamir變換的數學,這些是ZK證明系統的基礎。理解這些需要研究生級別的抽象代數,對於用戶或投資者評估基於ZK的協議並不必要。
這篇文章不涵蓋ZK機器學習(zkML),這是一個新興領域,利用ZK證明來驗證機器學習模型產生特定輸出,而不透露模型的權重或訓練數據。這一應用仍在實驗階段,其實際影響仍在研究中。
這篇文章不涉及ZK證明生成的硬體加速競賽。像Cysic、Ingonyama和Fabric Cryptography等公司正在專門為ZK證明構建定制的ASIC和FPGA,這可能會將證明成本降低數量級。硬體環境變化太快,無法進行靜態分析。
驗證零知識證明系統的審計狀態。 ZK 證明系統數學上非常複雜,實施錯誤可能會造成災難性後果。電路中的錯誤(被證明的計算的數學表示)可能允許攻擊者偽造證明並鑄造代幣或竊取資金。檢查該證明系統及其電路是否已由專門從事 ZK 密碼學的公司進行審計,而不僅僅是一般的智能合約審計員。
了解實際上什麼是私密的。 並非所有基於 ZK 的協議提供相同程度的隱私。有些隱藏交易金額但揭示地址。有些隱藏地址但揭示金額。有些則隱藏所有內容。閱讀協議的文檔以確切了解哪些信息被隱藏,哪些信息仍然可見。元數據如交易時間、燃料模式和互動頻率即使在核心交易數據被隱藏的情況下,通常也能揭示用戶身份。
檢查可信設置狀態。 如果協議使用 zk-SNARKs,請確定它是否需要可信設置以及該設置是如何進行的。參與者數量達數百的多方計算儀式比只有少數已知實體的小型儀式更值得信賴。使用 STARKs、PLONK 具有通用設置或 Halo 2 的協議根本不需要可信設置。
評估監管風險。 隱私協議在法律上處於不確定的環境中。考慮該協議是否具有合規機制(選擇性披露、隱私池、選擇性合規證明),以及該機制是否已經過實際監管審查的測試。使用一個後來被制裁的隱私協議可能會使您轉移或出售資產的能力變得複雜。
測試證明時間。 生成 ZK 證明計算密集型。在移動設備上,證明一個簡單的交易可能需要 30 秒到兩分鐘。在桌面上,可能只需幾秒鐘。如果證明時間對您的使用案例來說過長,則該協議可能不適合頻繁交易。一些協議將證明工作卸載到專用伺服器,這樣更快,但引入了一個信任假設,即伺服器不會獲取您的私密數據。
閱讀更多:區塊鏈滾動技術是什麼,如何擴展以太坊
1.
零知識證明是一種證明某事為真的方法,而不揭示為什麼它是真的。在區塊鏈中,這意味著您可以證明一筆交易是有效的,您擁有足夠的資金,或者計算是正確的,所有這些都不需要揭示實際的交易細節、您的餘額或計算中使用的數據。驗證者會相信該陳述是真的,但不會學到其他任何信息。 {#faq-0} 2.
zk-SNARKs 產生非常小的證明(數百字節),驗證成本低,但歷史上需要可信設置儀式來生成初始系統參數。zk-STARKs 產生較大的證明(數十到數百千字節),但不需要可信設置,並且理論上能抵抗量子計算攻擊。在實踐中,現代證明系統正在趨同,大小、速度和信任假設之間的權衡變得不那麼明顯。 {#faq-1} 3.
ZK 滾動技術在鏈外執行數千筆交易,並生成一個證明,證明所有交易都正確執行。該證明在以太坊上以單一操作進行驗證,無論批次中有多少交易,成本都是固定的。生成證明的成本(高,但由滾動操作員承擔)和驗證的成本(低,且一次性支付整個批次)之間的不對稱性就是創造擴展效果的原因。 {#faq-2} 4.
ZK技術的隱私幣如Zcash在大多數法域中並不本質上是非法的。然而,監管方式差異顯著。一些交易所已經將隱私幣下架,以遵守反洗錢法規。2022年的Tornado Cash制裁顯示,保護隱私的協議可能會面臨監管行動。其合法性取決於您的法域以及您如何使用該技術,而不是技術本身。
可信設置是某些zk-SNARK系統所需的一次性儀式,用於生成加密參數。在儀式期間,會創建隨機值,並必須在之後銷毀。如果任何參與者保留了這些隨機值,他們理論上可以偽造證明。多方儀式通過要求潛在數百名參與者中只有一名誠實銷毀其隨機數來降低這一風險。像PLONK和Halo 2這樣的新型證明系統已經消除了或最小化了可信設置的需求。
技術上來說,是的。像Aztec Network和Aleo這樣的協議正在構建系統,使所有智能合約互動默認為私密,而不僅僅是代幣轉移。然而,對所有交易的完全私密性會引入監管挑戰,增加計算成本(ZK證明生成成本高),並改變用戶體驗(證明需要時間)。是否完全的鏈上私密性成為標準,取決於監管決策與技術能力的同等程度。
隱私池允許用戶將資金存入共享池,並從不同的地址提取,打破兩個地址之間的鏈上連結。與簡單的混合器不同,隱私池使用ZK證明結合關聯集,讓用戶證明他們的提取屬於排除已知非法地址的存款子集。這使得用戶在提供合規機制的同時保持隱私。用戶證明他們在乾淨集內,而不透露他們具體提取的存款。
主要風險包括ZK電路中的實施錯誤(可能允許偽造證明)、舊SNARK系統中的可信設置漏洞、針對隱私功能的監管行動、消費者硬體上證明生成的高計算需求,以及與標準智能合約開發相比,ZK工具的相對不成熟。此外,元數據洩漏(交易時間、燃料模式、互動頻率)有時會在核心交易數據私密的情況下使用戶去匿名化。
免責聲明:本文僅供資訊和教育用途,不構成財務、投資或法律建議。加密貨幣市場波動性大,風險顯著。在做出投資決策之前,請務必進行自己的研究。
本內容僅供參考,不構成任何金融、投資、法律或稅務建議。文中提及的任何活動、獎勵、線上活動或相關資訊,不應被視為對購買、出售或交易任何加密資產的推薦、招攬或邀請。加密資產具有高波動性,存在價值損失風險。WEEX服務、產品及相關活動的可用性可能因地區而異。用戶在參與前有責任確保符合當地適用法律法規。

















