最接地氣的零知識證明解釋(下):神奇的機器

買賣虛擬貨幣

本文翻譯自Aviv Zohar的博文《The Incredible Machine》。這是小編看過的最接地氣、最好理解的“零知識證明”解釋。推薦大家一定要看!文章分為兩部分,下文是第二部分,第一部分請檢視最接地氣的零知識證明解釋(上),一定要看!

原文連結:

https://medium.com/qed-it/the-incredible-machine-4d1270d7363a

上一回最接地氣的零知識證明解釋(上)說到,小C知道小A和小B造假,很生氣......

神奇的機器和非互動證明

小C越想越氣,他很喜歡解出數獨謎題的那種爽感,也喜歡之前和小A、小B一起玩零知識證明的挑戰,但小A、小B卻打破了他的信任,他想找出一個檢驗零知識證明的方法。小C拼命想啊想,甚至失眠了數晚,終於讓他想出了一個方法。然後他去找小A和小B,給他們展示自己的新發明“zk-SNIPM(零知識數獨非互動式證明機)”。

這臺機器本質上是小A和小B的測試的自動化版本。小A只需要把卡片放在傳送帶上,然後把數獨的解放到機器上。機器會自動選擇按行、或列、或九宮格來收集卡片,然後放到袋子裡打亂順序,袋子會透過傳送帶從另一邊再送出來。然後小A就可以當著鏡頭的面拆開袋子展示裡面的卡片。

這臺機器有一個控制面板,上面有一長串的旋轉鈕,用來指示每次測試選擇行還是列或者九宮格。

小C設定好了測試順序選擇,並且把機器的控制面板焊死了,以保證小A和小B不知道他選擇了怎樣的測試順序。這下小C很放心了,他完全信任自己的這臺機器,並把它交給小A和小B,讓他倆在下次直播中用這臺機器來證明。他很確定有了這臺機器,小A和小B再也無法作弊了。

儀式

小A和小B很嫉妒小C的這臺機器,並且也想用這臺機器來驗證數獨的解(包括小C自己出的謎題)。問題是隻有小C知道這臺機器設定的測試順序,他們沒辦法用它來驗證小C的解,因為小C知道自己設定了怎樣的測試順序,有可能小C沒有解出的題也能透過測試。小A建議小C把控制面板開啟,把之前的設定清除,大家一起重新設定控制面板上的測試順序,他把這個過程叫做“可信任的設定儀式”。

小A建議把這臺機器放在一個黑屋子裡,並把旋鈕上的標籤撕掉。他們三人分別進入這個屋子(小B還建議大家矇住眼睛進入屋子以保證選擇的隨機性),並將機器上的旋鈕旋轉到一個隨機的位置,順時針旋轉三分之一圈,或者順指標旋轉三分之二圈,或者保持原樣,隨便怎樣都行。這樣,沒有人知道每個旋鈕的最終設定(即測試順序),即使其中兩個參與者串通一氣,沒有另外一個人的幫助,他們也不會知道旋鈕的最終狀態。這個儀式結束後,他們一起把控制面板焊死了。

破解機器

一天下午,小B和小C因為有事要出遠門,只有小A守著機器,他就想試試這臺機器是不是真的像小C吹的那樣安全。想了一會兒後,他決定給機器輸入一些錯誤的題解,以此來測試機器的驗證順序。首先,他選擇了一個他能解開的謎題,輸入機器,觀察機器是否接受這個解。然後,他不斷重複這個過程,但他改變了輸入的解,只在每行裡包含1-9的數字,但每列和每個九宮格區域沒有嚴格遵循包含數字1-9,且每個數字不重複的規則。機器沒有報錯,檢驗透過了,這意味著可以用這個方式來測試出機器裡預先設定的檢驗順序。

小A挺沮喪的,這個驗證方式看來並不完美啊。

數獨與零知識證明

上面數獨遊戲的證明就是零知識證明,證明者能夠在不向驗證者提供任何有用的資訊的情況下,使驗證者相信某個論斷是正確的。零知識證明就是既能充分證明自己是某種權益的合法擁有者,又不把有關的資訊洩露出去——即給外界的“知識”為“零”。

遊戲中用來自動化驗證數獨題解的機器zk-SNIPM(零知識證明非互動式證明機)就像是“實體化的”zk-SNARKs(零知識非互動式證明)演算法。zk-SNIPM存在一定漏洞,但可以透過設計進行改進,比如,用影印機把卡片的組合影印下來,然後同時驗證這些卡片的行、列、九宮格區域。這樣就很難透過試錯的方式來破解機器。

小A和小B在直播中使用的驗證方式,就像是“互動式零知識證明”。小B在小A提交答案後,不斷地進行隨機試驗(即選擇行、列或任意一個九宮格區域進行驗證,證明每次選擇的區域都包含數字1-9,並且數字不重複)。在這種情況下,如果兩個人事先串通,那麼在小A沒有真正解出題的情況下,小B能夠造假證明小A知道答案了。

非互動式證明則不需要小A和小B有任何互動,解決了驗證者和證明者之間的造假問題,它透過預先將“密碼”和“程式”隱藏在“機器”中,自動算出一個證明。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;