?零知識證明 zero-knowledge proofs,簡稱ZKPs,我們都知道區塊鏈本身的一個關鍵優勢就是透明性,但是在很多情況下,智能合約應用卻出于各種商業或法律原因需要保障資料隱私,比如傳入真實有效的資料來觸發智能合約執行,但這涉及到資訊會有泄露的風險,如何避免這種情況的發生呢?零知識證明的出現很好地解決了這個問題,
零知識證明(Zero Knowledge Proof)的研究最早始于1985年,由MIT教授Shafi Goldwasser, Silvio Micali 和 密碼學大師Charles在《The Knowledge Complexity of Interactive Proof-Systems》論文中提出,正是這篇文章提出了 零知識證明 這個偉大概念,并逐步成為了現代密碼學理論的根基之一,而Shafi Goldwasser和Silvio Micali也于2012 年獲得了有“計算機界諾貝爾獎”之稱的圖靈獎,零知識證明系統所要完成的任務是「證明某一個事實并且不泄露知識」,這個程序就是零知識證明,
聽起來還是有些晦澀難懂?講個簡單的例子:

(圖源網路,侵刪)
阿里巴巴的故事想必大家都聽過,有一天,劫匪抓住了阿里巴巴,拷問他想要得到進入山洞的咒語,但是聰明的阿里巴巴知道,如果把咒語告訴了劫匪,那么他也就徹底沒有了價值,肯定會將他殺掉,死活不說,那么也會殺掉他,于是他想到一個好辦法,即能不泄露咒語,又能讓劫匪相信他知道咒語,
阿里巴巴說:“你們離我一箭遠,然后用弓箭指著我,當你們舉右手我會念咒語打開石門,當你們舉左手我會念咒語關上石門,如果我逃跑或沒有做到,證明我不知道咒語,你們可以一箭殺掉我,”劫匪同意了這個提議,多次嘗試后阿里巴巴都成功按照指示讓石門打開或關上了,但是由于有一定距離,他們聽不清楚咒語到底是什么,就這樣,阿里巴巴沒有透露任何訊息就向劫匪證明了他的真實性,
這個例子非常簡單,雖然只是零知識證明機制簡單的概念演示,真正的零知識證明運用的是密碼學,在不透露資料的情況下證明資料的存在,總而言之,要創建零知識證明,驗證者(劫匪)需要讓證明者(阿里巴巴)執行一系列操作,而證明者只有在得知底層資訊的情況下才能正確執行,如果證明者亂蒙一個結果,那么驗證者極有可能在驗證中發現并證明他的錯誤,那么零知識證明應用在區塊鏈中有哪些價值呢?

自從這個概念被提出來后,人們就將其應用到了各個領域,比如身份認證系統、存證系統、資料共享、水印檢測,密鑰交換等等,在隱私資料越來越受到大家關注的今天,零知識證明在隱私資料保護的應用中大放異彩:
保護隱私資料:日常生活中,比如只想證明考生及格了,但不想透露具體考了多少分;買保險的時候,只想證明自己沒有心臟病,卻不想暴露病例的所有資訊,不管是哪種資訊,都可以把不想暴露的部分換成一個很像亂數字的零知識證明,能夠證明資料真實可信,
身份認證:在使用網站時,用戶可以向網站證明他擁有私鑰,或者知道某個只有自己才知道的答案,網站不用知道密鑰,但可以通過零知識證明確認用戶身份,通過去中心化存盤,服務器可以向用戶證明資料被妥善保存下來且不被泄露,
計算壓縮與區塊鏈擴容:在傳統的區塊架構中,同樣的計算被重復多次,比如簽名校驗,交易的合法性校驗,智能合約執行等一些其他的地方,因為有了計算的證明,同一個計算就不需要多次重復了,計算程序可以被零知識技術證明壓縮,
由此,零知識證明真正解決了「資料的信任」,實作了「隱私資料的保護」,也讓區塊鏈真正實作了「信任機器」這一構想,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/312185.html
標籤:區塊鏈
上一篇:365資訊簡報 每日精選12條新聞簡報 每天一分鐘 知曉天下事10月12日
下一篇:股票基礎知識
