在本文中,您將了解什麽是零知識證明。所有的開發人員都在努力保護加密區塊鏈的安全,並增加創新功能。其中,零知識證明可以在加密貨幣交易中為用戶提供更高級別的隱私。
什麽是零知識證明?
零知識證明是一種在不透露陳述本身的情況下證明陳述有效性的方法。"證明者"是試圖證明陳述的一方,而"驗證者"負責驗證陳述。
零知識證明首次出現在1985年的一篇論文中,題為《交互證明系統的知識複雜性》,該論文提供了今天廣泛使用的零知識證明的定義:
零知識協議是一種方法,通過這種方法,一方(證明者)可以向另一方(驗證者)證明某事是真實的,而不會透露任何除了這一特定陳述是真實的之外的信息。
多年來,零知識證明已經得到了改進,並且它們現在被用于幾個現實世界的應用中。
為什麽需要零知識證明?
零知識證明代表了應用密碼學的一個突破,因為它們承諾提高個人信息的安全性。
與第三方服務共享的個人可識別信息(PII)存儲在中央數據庫中,這些數據庫容易受到黑客攻擊。隨著身份盜竊成為一個嚴重的問題,人們呼籲使用更多保護隱私的手段來共享敏感信息。
零知識證明通過消除證明有效性所需的信息披露來解決這個問題。零知識協議將陳述作為輸入,以生成其有效性的簡明證明。這個證明提供了強有力的保證,即陳述是真實的,而不會暴露用于創建它的信息。
零知識證明的類型
1. ZK-SNARKs
ZK-SNARK是零知識簡潔非交互式知識論證的縮寫。ZK-SNARK協議具有以下特點:
- 零知識:驗證者可以驗證陳述的完整性,而無需了解陳述的任何其他信息。驗證者對陳述的唯一了解是它是真實的還是虛假的。
- 簡潔:零知識證明比證人小,並且可以快速驗證。
- 非交互式:證明是"非交互式"的,因為證明者和驗證者只互動一次,而不像交互式證明需要多輪通信。
- 論證:證明滿足"有效性"要求,因此欺詐的可能性極小。
- 知識:零知識證明在沒有訪問秘密信息的情況下不能被構造。對于沒有見證的證明者來說,幾乎不可能計算有效的零知識證明。
前面提到的"共享密鑰"指的是證明者和驗證者同意在生成和驗證證明時使用的公共參數。生成公共參數是一個敏感的操作,因為它對協議的安全性非常重要。如果用于生成CRS的熵(隨機性)掌握在不誠實的證明者手中,他們可以計算虛假證明。
多方計算(MPC)是一種降低生成公共參數風險的方法。多方參與一個受信任的設置儀式,每個人都為生成CRS貢獻一些隨機值。只要有一個誠實的參與方銷毀他們的熵,ZK-SNARK協議就保持了計算有效性。
值得信任的設置要求用戶相信參數生成的參與者。然而,ZK-STARKs的發展已經實現了可以在無需受信任的設置的情況下工作的證明協議。
2. ZK-STARKs
ZK-STARK是零知識可擴展透明知識論證的縮寫。ZK-STARK與ZK-SNARK相似,不同之處在于它們具有以下特點:
- 可擴展:在見證大小較大時,ZK-STARK比ZK-SNARK生成和驗證證明更快。使用STARK證明時,隨著見證的增長,證明者和驗證者的時間僅略微增加(SNARK證明者和驗證者的時間隨著見證大小的增長而線性增加)。
- 透明:ZK-STARK依賴于公開可驗證的隨機性,以生成用于證明和驗證的公共參數,而不是依賴于受信任的設置。因此,與ZK-SNARK相比,它們更加透明。
ZK-STARK生成的證明比ZK-SNARK生成的證明更大,這意味著它們通常具有更高的驗證開銷。然而,在某些情況下(如證明大型數據集)ZK-STARK可能比ZK-SNARK更具成本效益。
底線
零知識證明可以用于匿名支付、身份保護、認證和可驗證計算等多種方式。但也存在一些缺點。您可以在本文中了解什麽是零知識證明。
希望閱讀這篇文章《什麽是零知識證明?零知識證明的類型》可以幫助您更好地理解。


















