- +1
Comunion 區(qū)塊鏈深度學(xué)習(xí)系列|零知識證明原理
Comunion 是一個基于區(qū)塊鏈的組織形式 (DAO) 與創(chuàng)業(yè)互助網(wǎng)絡(luò),為超級個體提供面向數(shù)字時代的全新商業(yè)基礎(chǔ)設(shè)施和價值轉(zhuǎn)化機制,致力于讓勞動價值 像 資本一樣自由流通、交易和積累。
本系列內(nèi)容包含:基本概念及原理、密碼學(xué)、共識算法、錢包及節(jié)點原理、挖礦原理及實現(xiàn)。
在引入零知識證明是什么的時候?我們通過一個例子一起來摸索一下。
使用紅、黃、藍(lán)(r,y,b)三種顏色對下圖中的點著色,使得任意兩個相連的點的顏色不一樣?

大家可以花大約30秒時間來思考一下如何著色
我們一起來看一下這個問題。
首先這個問題肯定是可解的,下圖是其中一種著色結(jié)果。

那么如何在不透露自己著色結(jié)果的情況下,說服其他人,使得其相信已經(jīng)正確著色了呢?
證明方式如下:
1.將已經(jīng)著色好的結(jié)果蓋住;
2.開始向其他人證明聲明者知道最終結(jié)果,但不會透露;
3.允許驗證人打開任意兩個相鄰的盒子;
4.任意兩個相互鏈接盒子里面的點顏色是不一樣的。
此時驗證人會提出一個問題:會不會是聲明人運氣好,而驗證人運氣不好,正好選中的相鄰盒子的顏色不相同?所以需要重新驗證一次。
當(dāng)驗證者提出此種請求時,聲明者必須要滿足。
此時聲明者需做的工作如下:
1.改變自己著色的結(jié)果。
為什么需要改變結(jié)果呢?因為在圖中點的位置是不動的,如果不改變結(jié)果的話,那么驗證者可以采用排除法,依次將盒子翻開,造成的結(jié)果是在翻5次盒子之后,驗證者會知道所有著色結(jié)果。
而作為證明者,是不想讓其他人知道最終結(jié)果的。在這里會用到零知識證明的知識,即證明的時候不透露最終結(jié)果。
比如:將紅色變成藍(lán)色,將藍(lán)色變成黃色,將黃色變成紅色。

第二種著色情況
2.將第二次著色情況蓋住。
3.讓驗證者進行第二次驗證。
需要注意的是,聲明人只打開驗證人要驗證的位置,例如紅色的圈圈起來的盒子,其它盒子是不打開的。
這樣驗證人在進行第二次驗證時,也會發(fā)現(xiàn)驗證結(jié)果是正確的,但不會知道所有結(jié)果。

可有可能驗證者會覺得兩次驗證不夠,想要繼續(xù)驗證,這也是可以的,此時再次重復(fù)之前的步驟:蓋住所有結(jié)果->改變做事方式->得出結(jié)果->進行驗證。
這樣做的意義是:保證驗證者每次的驗證結(jié)果均為真,但不知道事件最終結(jié)果。聲明人通過這種不泄漏自身成果的方式,說服驗證者其成果的正確性。
在這個過程當(dāng)中,與零知識證明的具體聯(lián)系是:
聲明人表述一個問題的時候,不僅知道問題的答案,并且要說服任何人其知道這個答案,卻不會透露這個答案的任何消息。
例如,剛剛的問題是著色,聲明人的答案是著色的結(jié)果,并且已經(jīng)正確的著色。聲明人向驗證者證明的時候,并沒有透露其著色的結(jié)果,但是卻可以證明其知道正確的做事結(jié)果。
這就是零知識證明的過程,了解這個過程主要是為了學(xué)習(xí)區(qū)塊鏈應(yīng)用到密碼學(xué)中的離散對數(shù)問題,我們將在下篇文章進行講解。
本文為澎湃號作者或機構(gòu)在澎湃新聞上傳并發(fā)布,僅代表該作者或機構(gòu)觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發(fā)布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。





- 報料熱線: 021-962866
- 報料郵箱: news@thepaper.cn
互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006
增值電信業(yè)務(wù)經(jīng)營許可證:滬B2-2017116
? 2014-2025 上海東方報業(yè)有限公司