原文作者:Hill.bit
零知識證明的概念大家耳熟能詳,但具體到技術細節可能很多人都一頭霧水。
零知識和證明實際上是 2 個名詞,證明方案是零知識協議安全假設的基本組成部分。在本文中Hill.bit 將通過解釋多種不同的證明方案以及它們的優缺點,來幫助更多人理解ZK 證明系統。
在零知識證明系統中,有三個實體參與:設置者、證明者和驗證者。不同的證明方案會以各種方式影響它們的行為,從而影響效率、安全性和整個系統的性能。
設置者階段生成ZK 系統所需的必要參數和公鑰。證明方案會影響設置者階段的複雜度、計算、通信以及它是受信任的還是無需信任的。證明者生成一個證明,證明其掌握了一個秘密輸入的信息,而無需透露該信息。證明方案影響證明者的計算時間、內存需求和證明大小,從而影響通信和存儲需求。驗證者檢查證明的有效性。證明方案會影響驗證時間、內存需求以及向證明請求的數量和復雜度。這裡有三種不同類型的證明方案。
線性PCPs + 僅線性編碼:
利用線性概率可檢驗證明(PCPs)和線性運算;
提供強零知識屬性;
生成最短的證明;
需要受信任的設置;
以前的改進主要集中在減少證明者時間上。
線性PCPs 是一種證明系統,其中驗證者通過查詢少量證明來檢查語句的有效性。術語“線性”指驗證者的查詢是證明的線性函數。
僅線性編碼是一種加密技術,用於隱藏信息,僅允許對隱藏數據進行線性操作。這可以確保數據隱私同時使某些計算得以執行。
多項式IOPs + 多項式承諾方案:
利用代數結構;
通常比基於線性PCP 的系統更高效;
支持通用/不受信任的設置;
允許定制電路;
以前的改進主要集中在提高驗證者效率上。
多項式交互式預言機證明(IOPs)是一種證明系統,其中證明者和驗證者在多個回合中交換消息。證明者生成預言(對多項式的承諾)並將其提供給驗證者。
驗證者在特定點查詢預言機,而證明者以相應的多項式評估響應。多項式方案承諾多項式而不透露有關多項式本身的信息。
與線性PCPs + 僅線性編碼相比的效率提高來自於:
更好地利用代數結構;
更高效的證明生成/驗證;
壓縮多項式表示;
批處理驗證技術
然而,多項式IOPs + 多項式承諾方案存在以下缺點:
更複雜的設計和實現;
特定目的的加密假設;
不同的性能權衡,例如可並行性。
折迭方案:
允許遞歸證明組合;
實現嵌套證明以提高效率和可擴展性;
快速且易於並行化的證明者;
之前的改進主要集中在構建遞歸SNARKs 上。
遞歸證明組合可以降低驗證者的計算和內存需求,這在像區塊鏈這樣的應用中特別有用。證明聚合可以減小最終證明的大小和驗證時間,但生成這樣的證明可能對證明者的計算要求更高。與多項式IOPs + 多項式承諾方案相比,折迭方案的效率提高來自於:
遞歸證明組合;
證明聚合;
改進的可擴展性;
更快的驗證時間。
折迭方案的潛在缺點包括:
更複雜的設計和實現;
定制化的加密假設;
增加證明者的計算時間和內存開銷;
適用性可能因用例而異。
總之,線性PCPs + 僅線性編碼提供強大的零知識屬性和最短的證明長度,但它們需要受信任的設置,並且與其他類別相比在效率上具有局限性。
多項式IOPs + 多項式承諾方案通過更高效的證明生成和驗證過程,在效率上比線性PCPs + 僅線性編碼有顯著改進,但設計和實現可能更為複雜。
折迭方案在效率和可伸縮性方面表現出色,得益於遞歸證明組合,這在區塊鏈應用中尤其有用。但是,證明者的計算時間和內存開銷可能會增加,並且其適用性可能因使用情況而異。