來源:鏈登社區
什麼是zk-SNARKs 和zk-STARKs?它們都是零知識證明,但它們的特性是什麼,彼此之間如何比較。
零知識證明(ZKP)是加密協議,允許一方(證明者)在不透露任何超出聲明本身有效性的資訊的情況下,使另一方(驗證者)相信某個聲明是真實的。 ZKP 是區塊鏈生態系統的革命性技術,能夠透過二層解決方案實現區塊鏈的可擴展性,並建立隱私保護應用程式。兩種最突出的ZKP 類型是zk-SNARKs 和zk-STARKs,它們各自具有不同的特性和用例。
在本文中,我們將討論zk-SNARKs 和zk-STARKs,它們的關鍵特性,以及它們之間的比較。
前提條件
理解ZKPs: 你需要知道電路、約束、見證、驗證者和證明者是什麼。
什麼是zk-SNARK(簡潔非交互知識論證)
Zk-SNARKs 是一類廣泛的ZKP 系統,它們是非交互的,這意味著在初始證明生成後,證明者和驗證者之間沒有來回通訊。它們以高效著稱,提供短小的證明大小和快速的驗證時間,無論複雜性如何,這些都保持不變。
zk-SNARKs 的關鍵特性
-
可信任設定:SNARKs 需要一個可信任的設定階段,其中產生一組初始參數,通常稱為結構化參考字串(SRS)。這個設定階段使用一個秘密,如果暴露,將會破壞所有使用該設定建立的後續證明的安全性。這個設定數據通常被稱為「有毒廢物」。可信任設定通常被視為缺點,因為它們引入了潛在的信任問題:使用者必須相信設定是正確執行的,並且秘密在之後被銷毀。
-
橢圓曲線加密(ECC):許多SNARK 構造依賴橢圓曲線加密,這取決於離散對數問題(DLP)的難度。雖然這對經典電腦提供了強大的安全性,但它使SNARKs 可能容易受到未來量子電腦的攻擊,因為量子電腦可以高效地解決DLP。
流行的zk-SNARK 協議
-
Groth16:Groth16 是最廣泛使用的SNARK 協定之一。它需要特定電路的可信任設置,並且非常高效,產生非常小的證明和快速的驗證時間。由於其緊湊的證明大小,它通常用於區塊鏈項目,如Zcash。
-
PLONK(基於拉格朗日基的普世非交互知識論證的置換論證):PLONK 是一個更靈活的SNARK 協議,使用通用和可更新的SRS,這意味著它可以用於任何電路,並且可以修改以支援更大的電路。與Groth16 不同,PLONK 的設定不是特定於任何特定電路的,可以重複使用多個電路。這減少了重複可信任設定的需求,並且可以更輕鬆地添加新程式或電路而無需重新進行整個設定。
zk-SNARKs 的特性
-
證明大小:小,這使得SNARKs 適用於頻寬和儲存有限的應用。
-
後量子安全性:有限,由於依賴ECC。 SNARKs 不是量子抗性的,因為足夠強大的量子電腦可能會解決DLP。
-
可信設定:這是必需的( 在大多數SNARKs 中)。設定階段引入了一個信任假設,如果管理不當,可能會帶來潛在的安全風險。
-
可擴展性:對於需要緊湊證明和快速驗證的應用程式非常高效,儘管需要可信任設定在高度動態的環境中可能是一個限制。
什麼是zk-STARK(可擴展透明知識論證)
Zk-STARKs 是另一類ZKP,旨在解決zk-SNARKs 的缺點。它們被設計為可擴展和“透明”的,這意味著它們不需要可信的設置階段。相反,zk-STARKs 使用雜湊函數和公開已知的隨機性來建立證明,從而增強了它們的安全性和可擴展性。
zk-STARKs 的關鍵特性
-
透明設定:STARKs 不依賴秘密參數。相反,它們的證明是使用公開隨機性產生的,這意味著它們沒有可能破壞系統的“有毒廢物”,並且不需要可信設定。
-
基於雜湊的安全性:STARKs 依賴雜湊函數,如SHA-256,而不是橢圓曲線加密。這使得它們對量子攻擊具有抵抗力,因為在當前的加密假設下,雜湊函數被認為在量子電腦面前是安全的。
STARKs 的特性
-
證明大小:STARK 證明可能比SNARK 證明大幾倍,這增加了驗證時間,並且在頻寬或儲存有限的環境中是一個缺點。這是由於它們的透明度、使用多項式承諾以及實現可擴展性的方法。
-
後量子安全性:強。由於STARKs 使用雜湊函數而不是橢圓曲線加密,因此它們在目前的加密假設下不易受到量子攻擊。
-
可信任設定:不需要。 STARKs 使用透明設置,消除了設置階段的信任需求,增強了安全性。
-
可擴展性:高度可擴展,特別是對於大型計算,它們在複雜性增加時表現出更明顯的效能優勢。由於不需要可信任設置,它們更加靈活,因為設置不需要為每個新應用程式或用例重新進行。
zk-SNARKs 與zk-STARKs 的比較
總結
Zk-SNARKs 是零知識證明系統。它們提供高效的證明大小和快速的驗證時間,但需要可信任設置,並使用橢圓曲線加密,使其易受量子攻擊。
Zk-STARKs 則不需要可信任設定。相反,它們依賴雜湊函數進行安全性(使其具有量子抗性),並且對於大型計算更具可擴展性。然而,它們的證明大小較大,對於較小的計算驗證速度較慢。
這兩種主要的ZKP 對於在區塊鏈生態系統中建立ZK 協議至關重要,能夠透過二層解決方案實現區塊鏈的可擴展性,並建立隱私保護應用程式。