什麼是零知識證明 Zero-Knowledge Proof

在密碼學中,零知識證明(zero-knowledge proof)是一種證明方法,指一方(證明者)向另一方(驗證者)證明一個陳述是真實的,且除了該陳述是真實的之外,不透露任何資訊。

日常生活中的證明並不是零知識的。例如,當購買者必須證明自己超過 21 歲才能購買酒精時,他們會出示帶有出生日期的身分證明。但這種證明方法存在缺陷,因為在證明符合年齡要求的同時,這種方法同時會披露其他不相關但敏感的資訊,例如姓名和地址。

相較而言,零知識證明更優越,因為它不需要證明者透露關於陳述本身或他/她是如何發現真相的細節。假設 Alice 是色盲,分不清藍球和紅球。Alice 認為兩個球是相同的,但 Bob 想用零知識的方式向 Alice 證明這兩個球是不同的。Bob 可以依賴以下機制。

Bob 讓 Alice 雙手各拿一個球並將雙手放在背後,左手是藍色,右手是紅色。Alice 可以決定是否將左右手上的球交換。之後,Alice 再次向 Bob 展示兩個球,Bob 則告訴 Alice 她有沒有將球互換。

Alice:我把球換了嗎?(左手由藍色變為紅色)

Bob:是的。

Alice:我把球換了嗎?(左手依然是紅色)

Bob:不,上次沒有。

Alice 和 Bob 不斷重複這個過程,直到 Alice 確信這兩個球確實是不同的,否則 Bob 將無法始終準確地判斷 Alice 在背後做了什麼。注意,在這個過程中,Bob 不需要告訴 Alice 哪個球是藍色的,也不需要闡述他是如何知道的。

上面的零知識證明例子是交互式的。雖然它很容易理解,但作為一個實際的解決方案來講不太現實,因為它需要雙方在建立證明之前多次相互通信。

研究人員發明了非交互式的零知識證明來解決這些問題。非交互式證明只需要證明者和驗證者進行一輪通信。證明者將資訊輸入到一個特殊的演算法來計算零知識證明。然後驗證者可以檢查證明以確保秘密資訊的有效性。非交互式證明的另一個好處是,一旦證明生成,任何人都可以驗證它。

在區塊鏈領域,零知識證明主要應用於 rollup 場景裡。它使得底層區塊鏈能夠將計算外包,同時保證計算結果的可驗證性。鏈下的計算機執行交易,然後提交結果以及正確執行交易的證明。這減少了鏈上網路擁塞並提高了交易速度。

零知識證明允許底層區塊鏈在不重新執行的情況下驗證鏈下交易。雖然零知識證明在技術上是優越的,但圍繞該主題的研究仍處於早期階段。在零知識證明技術被實際採用之前,至少還需要幾年的時間。 $ZENT **$ZEREBRO **

ZENT1.58%
ZEREBRO16.25%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • بالعربية
  • Português (Brasil)
  • 简体中文
  • English
  • Español
  • Français (Afrique)
  • Bahasa Indonesia
  • 日本語
  • Português (Portugal)
  • Русский
  • 繁體中文
  • Українська
  • Tiếng Việt