零知識證明是指,在不揭露特定知識的情況下,證明者(prover)可以說服驗證者(verifier)他們知道該知識。換句話說,零知識的輸入是秘密的,證明者不會向驗證者揭露任何知識。零知識證明可以被用在隱私保護方案里。例子包括:
例子1:質詢/響應比賽
在計算機安全里,質詢-響應認證(challenge-response authentication)是一個協議族。在協議里,一方進行提問(“質詢“),另一方給出正確的答案(”響應”)以獲得授權。在
區塊鏈里,這個“比賽”能被用于驗證交易。如果某一交易是非法的,其他節點會注意到其非法性。這就需要提供可驗證的證明(verifiable proof),來證實交易是非法的。如果驗證失敗,則會產生一個“質詢”,要求交易的發起人生成一個“響應”,來證明交易是合法的。
這里有一個例子:假設只有 Bob 可以訪問某些資源(如他的車)。Alice 現在也想訪問它們(如開這輛車去雜貨店)。Bob 發起一個質詢,假設為“52w72y“。Alice 必須用一個字符串來響應 Bob 發起的質詢。使用一個只有 Bob 和 Alice 知道的算法,這是找到答案的唯一方式。此外,Bob 每次發起的質詢都會不一樣。知道先前正確的響應,并不能給 Alice 帶來任何的優勢。
質詢/響應比賽已經被使用在區塊鏈,如
以太坊里了。然而,我們需要相應的函數庫和工具,來使這一類的認證方案更容易被使用。
例子2:zkSNARKs
zkSNARKs 到底是什么?讓我們來逐步分解其定義:
zk=zero-knowledge(零知識)。不需要信息本身的條件下,可以證明該信息存在。
SNARK:SuccinctNon-interactiveAdaptiveARgument ofKnowledge
簡潔(Succinct)表示證明簡潔,可以被快速驗證。
非交互(Non-interactive)表示驗證者不需要和證明者進行交互。取而代之,證明者會預先公開它的證明,而驗證者可以檢查它的正確性。
適應性知識論證(Adaptive argument of knowledge)表示某些計算的證明。
盡管我希望有一天可以寫一篇文章介紹 zkSNARKs,但這里我會跳過技術細節。zkSNARKs是一個的構建隱私保護的組件,它令人振奮且具有遠大前景,但有幾點需要注意
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。