初識零知識證明

2021-10-25 10:13:23 字數 2202 閱讀 3461

問題引入:假設你的手裡有紅綠兩個小球,假如你有乙個對顏色不敏感的朋友,你不能告訴他你兩個球分別是什麼顏色,但是卻要讓他相信那是兩個不同顏色的球?這時你該如何做呢?

解決辦法:先將紅綠兩個球分別放在他的兩隻手中,並記住初始狀態左右手中的顏色;讓他將手放背後,隨機決定是否在背後交換手中的球,然後將手中的球展示給你並讓你判斷他是否在背後交換了手中的球,這時,你通過對比他手中球的顏色來回答他的問題。

實驗結果:由於你能分辨出兩個球的顏色,自然根據顏色是否交換你就能判斷出他是否在背後交換了兩個球。而他知道自己是否交換了球的順序,因此可以證明你的判斷是正確的。經過多次的重複試驗,你每一次的判斷都是正確的,這種情況的偶然性幾乎不存在,因此可以說明這兩個球的顏色是不同的。

結果分析:在這個過程中,你是證明者,你向他證明兩個球的顏色是不同的;他是驗證者,通過試驗來驗證你的結論。但是在這個過程中,你並沒有向他透露任何的有關球的顏色的具體資訊,他也無法自行判斷球的顏色,因此在這個過程中並沒有傳遞任何關於被證明訊息的有用的資訊。

另乙個例子:有乙個環形走廊,出口與入口在乙個位置,中間被一道上了鎖的門隔斷, b聲稱他有鑰匙,那麼a如何在不拿到鑰匙的情況下知道b真的有鑰匙。這時,a只需要看到b從入口進入,並從出口走出,這樣a便可以相信b持有門的鑰匙這一事實。

兩個問題的相同點在於,證明者都沒有向驗證者傳遞關於被證明訊息的有效資訊,即你的朋友不知道這兩個球的顏色,a也沒有見過b手中的鑰匙,以及乙個經典的例子「阿里巴巴與洞穴」,用一句話來講就是乙個人可以在不洩漏任何秘密的情況下證明他知道這個秘密,這就是「零知識證明」。

定義:「零知識證明」-zero-knowledge proof,指的是證明者能夠在不向驗證者提供任何有用的資訊的情況下,使驗證者相信某個論斷是正確的。零知識證明實質上是一種涉及兩方或更多方的協議,即兩方或更多方完成一項任務所需採取的一系列步驟。證明者向驗證者證明並使其相信自己知道或擁有某一訊息,但證明過程不能向驗證者洩漏任何關於被證明訊息的資訊。

性質

完備性:在證明者與驗證者都是誠實的情況下,證明過程符合規則並且正確,那麼這個證明一定是成功的,驗證者就能夠接受證明者。

可靠性:沒有人能夠冒充證明者,即只有證明者能夠做出證明。

零知識性:證明過程執行完之後,驗證者只獲得了「證明者擁有這個知識」這條資訊,而沒有獲得關於這個知識本身的資訊。

功能:零知識證明技術作為現代密碼學的重要組成部分,它能夠在不洩漏任何秘密資訊的前提下完成對此秘密資訊的驗證。零知識證明技術對於解決當前資訊保安中的諸多問題,如資料安全、隱私安全、監管檢查等都能夠發揮重要的作用。零知識證明與區塊鏈的完美結合很好的解決了區塊鏈當前面臨的困局。一方面,零知識證明能夠保護資料的私隱性,在不洩漏資料的條件下對其進行證明,用以零知識證明為代表的密碼學方案去解決這類問題隱私問題具備極好的優勢;另一方面零知識證明僅需要生成很小資料量的證明就可以完成對大批量資料的證明,它在壓縮資料量提高效能方面可以發揮很大的作用。

互動式零知識證明過程

非互動式零知識證明過程

應用:從應用分類上,零知識證明技術在區塊鏈應用上可以大致分為隱私保護和擴容兩大類。

參考資料:

[1][2]how to explain zero-knowledge protocols to your children.

[3][4]

[5][6]

[7][8]零知識證明技術發展報告_陀螺研究院_2023年5月

零知識證明

零知識證明的幾個例子 原創 1 a要向b證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙開啟鎖,而其他任何方法都打不開。這時有2個方法 一 a把鑰匙出示給b,b用這把鑰匙開啟該房間的鎖,從而證明a擁有該房間的正確的鑰匙。二 b確定該房間內有某一物體,a用自己擁有的鑰匙開啟該房間的門,然後把物體拿出來...

零知識證明

定義 能夠在不向驗證者提供有效資訊的情況下,使得驗證者相信某種論斷的正確性。淺顯易懂的說明 zcash 零知識證明的三條性質 1.完備性 驗證方和證明方都是誠實的,並遵循證明的每乙個步驟 2.合理性 沒人能假冒證明方,阿里巴巴和強盜的故事,存在一種可能的情況 阿里巴巴不知道咒語,但和別人串通好,強盜...

零知識證明

零知識證明 zero knowledge proofs,簡寫為 zkps,最初由 s.goldwasser s.micali 及 c.rackoff 在 1985 年的 互動證明系統的知識複雜性 提出,指的是證明者能夠在不向驗證者提供任何有用資訊的情況下,使驗證者相信某個論斷是正確的。允許證明者 p...