瞭解零知識證明:阿里巴巴與強盜的故事

買賣虛擬貨幣

引言

區塊鏈很難稱為一個“技術”。它更像是一個領域,包羅永珍。或者更形象的來說,區塊鏈更像一個有機體,融合了各種不同的理論技術。

零知識證明是構建信任的重要技術,也是區塊鏈這個有機體中不可缺少的一環。

在當我們小學或者初中時,在幾何證明題中,經常看到“求證”兩個字,不管是會做還是不會做這道題,總是會先自然而然的寫上“證明”倆個字,“零知識證明”就是沒有學過知識也可以做證明題?其實這樣描述並不嚴謹,那麼究竟零知識證明是什麼,又是如何“證明”的呢?

“證明”的古往今來

證明在人們的大腦中往往與邏輯或者推理聯絡在一起,而自從古希臘先賢們開始,人們也確實是這樣做的。

畢達哥拉斯證明勾股定理

就像勾股定理的證明,歷史上許多的證明都充滿了嚴密的思考,謹慎的邏輯,有時候甚至還需要某個天才的靈光一現。數學證明往往是繁雜、困難的,尤其是近代的許多論題,沒有接受系統高等數學教育的普通人很難看懂一個具體的證明過程。在撰寫證明和閱讀證明過程中,人們其實進行了大量的資訊交換,耗費了很大的精力。

其實,自古代開始,人們就夢想可以有一種方式能夠自動有效的進行證明,並且不需要大量的資訊投入。

“互動式“證明的出現

一個簡單的小例子

阿里巴巴知道開啟藏著財寶的山洞的咒語。強盜抓住他,

強盜:說出咒語,否則殺死你。

阿里巴巴:如果我說出咒語,就會因為沒有利用價值而被殺死。

強盜:如果你不向我證明你知道咒語,我也會殺你。

阿里巴巴想了一個好辦法

他對強盜說:“你們離我一箭之地,用弓箭指著我,你們舉起右手我就唸咒語開啟石門,舉起左手我就唸咒語關上石門,如果我做不到或逃跑,你們就用弓箭射死我。這樣我既不會因為透露了密碼而喪生,也向你們證明了我知道咒語。

在這個例子中,阿里巴巴叫證明者,強盜叫驗證者。證明者掌握著某個秘密,他想讓驗證者相信他掌握著秘密,但是又不想洩漏這個秘密給驗證者。雙方按照一個協議,透過一系列互動,最終驗證者會得出一個明確的結論,證明者掌握或不掌握這個秘密。

現在我們在看零知識證明這個詞語:

在這個例子中“知識“指咒語的內容,“證明”代表了阿里巴巴使強盜相信了自己知道咒語,而這個“不想洩露咒語給強盜“的想法,又被稱為”零知識“性,在密碼學和區塊鏈的發展中大放異彩。

零知識證明是什麼

相信透過上面的內容你已經有所感覺,對於傳統的證明,我們可以把它寫在紙上讓所有人知道我們證明了這個命題;而零知識證明更像是驗證,在兩方對話中,只強調有限的時間有限的驗證者能進行驗證而不會被惡意的證明所欺騙,通常並不關心一個證明是怎麼找到的。透過兩方對話得到的零知識證明,通常被稱為互動式零知識證明。

非互動式的零知識證明則不需要這種互動。但是會額外需要一些機器或者程式,並且需要一串試驗序列,這個試驗序列不能被任何人知道。有了這麼一個程式和試驗序列,證明機就能自動算出一個證明,並且能防止任何一方作假。非互動式的零知識證明整體流程沒有任何互動,也就是說證明方可以扔出一大串亂碼往你桌上一拍然後就走人,你之後再去驗證這串亂碼就可以驗證他的證明。顯然,在實際應用中,非互動式的零知識證明更有用。

零知識證明的革命性本質上體現在允許你安全地向他人進行證明,而驗證者不會得到除命題外關於你的其他隱私資訊。由此零知識證明得以在區塊鏈乃至人類社會中扮演重要角色。

零知識證明有什麼用處?

在解釋了這麼多零知識的內容後,零知識證明究竟可以有什麼用呢?

零知識證明解決了資訊交換中的信任問題

在身份驗證中,零知識協議是一種在不交換密碼的情況下進行身份驗證的方法,這意味著它們無法被竊取。它使您的通訊變得安全和受保護,以至於沒有其他人可以找到您正在通訊的內容或彼此共享的檔案。

資料的隱私保護:在大資料表格中,多多少少都有一些資訊不想被暴露,但是又需要證明我們的資訊有效,零知識證明可以幫助我們做到:

我需要向學校證明我的英語成績及格了,但是我不想讓別人知道我到底考了多少分。

我沒有心臟病,但是保險公司需要了解這一點,但是我不想讓保險公司知道我的隱私資訊。那我可以證明給保險公司看,我沒有心臟病,但是病歷的全部並不需要暴露。

我是一家企業,我想向銀行貸款,我只想向銀行證明我具備健康的業務與還款能力,但是我不想讓銀行知道我們的一些商業秘密。

計算壓縮與區塊鏈擴容:在眾多的區塊鏈擴容技術中,vitalik 採用 zksnark 技術能夠給現有的以太坊框架帶來幾十倍的效能提升。因為有了計算的證明,同樣一個計算就沒必要重複多次了,在傳統的區塊鏈架構中,同樣的計算被重複多次,比如簽名的校驗,交易合法性校驗,智慧合約的執行等等。這些計算過程都可以被零知識證明技術進行壓縮。

信用記錄:信用記錄是另一個可以充分發揮零知識證明優勢的領域,使用者可以有選擇性的向另一方出示自己的信用記錄,一方面可以有選擇的出示滿足對方要求的記錄分數,同時證明信用記錄的真實性。比如在銀行貸款中,可以在不給出自己的具體資產資訊的同時,說服銀行相信我具有償還能力。

零知識證明構造技術發展日新月異,並且在區塊鏈技術領域得到了越來越多的應用。最新的零知識證明技術,有的技術可以高速驗證證明(在移動裝置上幾毫秒驗證完成);有的技術支援非常小的證明大小(小到幾十個位元組)。這無疑讓區塊鏈這個去中心化的網路更加高效安全。


免責聲明:

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

推荐阅读

;