
來源:Chainalysis;編譯:五銖,比特鏈視界
1985 年,零知識證明 (ZKP) 的原始概念出現在一篇同行評審的學術論文中,題為「交互式證明系統的知識複雜性」,標誌著密碼學的突破。研究人員 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 探索了是否有可能在不透露數據本身以外的任何信息的情況下證明數據有效。近 40 年後,ZKP 已成為許多區塊鏈的基本組成部分,通過增強隱私和安全性為用戶提供支持。
什麼是零知識證明?(ZKP)
零知識證明 (ZKP) 是一種加密方法,允許多方驗證語句的真實性,而不會洩露語句本身以外的信息。許多區塊鏈利用 ZKP 來提高涉及敏感數據的交互的安全性。因此,具有 ZKP 的區塊鏈的參與者可以更放心地進行交互,因為私人信息不太可能被惡意行為者洩露或利用。
零知識證明的組成部分
ZKP 要求每次交互至少有兩方參與:證明者和驗證者。證明者負責提供實際的數學證明,以說服驗證者相信陳述的有效性。驗證者必須檢查此證據並接受或拒絕它。
證明者和驗證者之間通常會進行多輪溝通,以降低任何一方猜測或提供非法信息的可能性。
零知識證明如何發揮作用?
ZKP 使用高級加密算法和數學概念的基本構建塊進行操作。例如,ZKP 使用加密哈希函數為驗證者生成隨機挑戰,以努力與證明者建立相互信任。
由 ZKP 支持的交互必須滿足以下條件:
-
完整性: 如果陳述為真,誠實的證明者應該能夠輕鬆說服驗證者。
-
健全性: 如果陳述為假,不誠實的證明者應該無法欺騙驗證者。
-
零知識: 任何一方都無法提取有關彼此的其他私人信息;他們只知道所提供陳述的內容。
讓我們看一個兩個用戶如何使用 ZKP 進行交易的示例:
-
A(證明者)希望使用隱私幣 ZCash 執行交易,以便隱藏區塊鏈的任何觀察者都無法提取交易的任何詳細信息(即轉帳金額、轉帳地址等)。
-
B(驗證者)希望從 A 那裡收到 ZCash,但不知道他們的私人詳細信息,例如 A 錢包中持有的資產總額。
-
A 加密交易並將其提交到區塊鏈。
-
A 提交帶有加密交易的 ZKP 來證明交易有效。
-
區塊鏈上的節點檢查 ZKP 以確保 A 的加密交易確實有效。
-
如果 ZKP 有效,B 將接受。
-
ZCash 從 A 的帳戶轉移到 B 的帳戶。
-
交易永久記錄在區塊鏈上。
零知識證明的類型
ZKP 主要有兩種形式:交互式和非交互式。交互式 ZKP 涉及證明者和驗證者之間的多輪來回通信。非交互式 ZKP 僅涉及一輪通信——證明者僅向驗證者發送一條消息,並且他們不必同時在線即可發生這種情況。
交互式證明在基於區塊鏈的系統中並不常見,因為它們效率低下,而且通常不希望要求兩方同時在線。因此,在非交互式設置中使用以下類型的 ZKP:
零知識簡潔非交互式知識論證 (zk-SNARK) 使參與者能夠證明擁有某些信息而無需透露該信息的詳細信息。 Zk-SNARK 在以太坊區塊鏈上很常見,對於保護隱私的智能合約特別有用。 ZCash 還利用 Zk-SNARK 來證明受保護交易的有效性,例如那些不透露任何信息的交易——包括發送者、接收者和轉帳金額。
零知識可擴展透明知識論證 (zk-STARK) 的功能與 zk-SNARK 類似,但旨在擴展大型計算。 由於 zk-STARK 具有透明度和可擴展性等額外優勢,因此可與各種區塊鏈應用兼容。
防彈證明可證明某個值位於特定範圍內,而不會透露該值本身。 通過使用高級數學概念,防彈證明能夠使證明更小,從而減少交易規模和驗證時間。Monero 使用防彈證明。
零知識證明的應用和用例
零知識證明在區塊鏈生態系統中提供了廣泛的應用,從增強隱私的去中心化協議到可擴展的交易解決方案。儘管其中一些用例已被區塊鏈採用,但其他用例仍處於推測階段或處於開發初期。
身份驗證和安全身份驗證: DeFi 參與者可以使用 ZKP 來證明他們擁有某些屬性,例如參與治理活動或成為特定代幣持有者群體的成員,而無需透露這些屬性的實際值。同樣,用戶可以與 ZKP 交互以有選擇地披露與其身份相關的信息。
安全投票系統: ZKP 可以讓 DeFi 參與者證明他們的投票資格和投票數,而無需透露他們的歷史或投票偏好。
Zk-rollups 是Layer 2擴展解決方案,它將交易數據在鏈下捆綁或「Rollup」為加密證明,然後使用 ZKP 以 calldata 的形式在以太坊主網上發布交易有效性。由於交易是成捆發布到主網的,因此它們通常佔用更少的空間,從而減輕了以太坊的計算負擔。流行的 zk-rollup 包括 ZkSync 和 Loopring。
Zk-Plasma 是 Plasma 網絡的一個變體,它利用 ZKP 在以太坊上創建隱私保護側鏈。用戶無需在主網上驗證所有數據,而是可以在側鏈上驗證交易,然後使用 ZKP 在以太坊上發布其有效性。
去中心化交易所 (DEX): ZKP 可以促進各種資產的交易,而無需透露用戶的交易歷史、策略或帳戶餘額。
供應鏈透明度和完整性驗證: ZKP 可以通過驗證供應商的憑證和產品的真實性來增強供應鏈的安全性,而無需向未經授權的各方披露交易信息或有關生產過程的專有信息。此外,ZKP 可能有助於驗證認證和對供應鏈監管標準的遵守情況。
下圖說明了零知識技術在某些用例中的應用規模。我們看到了發送到幾個最受歡迎的 ZKP 應用程式的資金量,包括 ZCash(保護隱私的加密貨幣)、Tornado Cash(去中心化、非託管智能合約)、Railgun(以太坊 L2 隱私協議)和 Aztec(以太坊 L2 隱私協議)。2022 年 1 月至 2024 年 4 月期間,發送到 Tornado Cash 的資金比其他三個支持 ZKP 的應用程式多,接近 50 億美元。
零知識證明採用的挑戰
儘管 ZKP 有望使區塊鏈更加安全、高效,但其廣泛採用仍面臨諸多挑戰:
-
實施和部署 ZKP 需要深入了解加密原理和高級數學 —— 大多數開發人員並不具備這種專業知識。
-
生成 ZKP 通常需要大量計算資源,從而導致交易處理時間變慢和費用增加。
-
如果參與者遇到不兼容的協議或驗證方法,區塊鏈的互操作性可能會變得困難。
-
ZKP 和相應數據存儲的複雜性可能會帶來監管合規和審計方面的挑戰。
區塊鏈中零知識證明的未來
隨著人們對區塊鏈平臺隱私和安全重要性的認識不斷提高,零知識證明很可能會得到更廣泛的採用。此外,以太坊上的許多Layer 2協議都在不斷尋求提高可擴展性和效率的方法,而零知識證明可能有助於解決這些問題。這些持續的努力將在保護用戶敏感信息和標準化區塊鏈交易以促進區塊鏈互操作性方面發揮關鍵作用。