知識普及 || 區(qū)塊鏈之零知識證明

今天想跟大家分享的是關(guān)于區(qū)塊鏈的一點(diǎn)基礎(chǔ)知識——零知識證明(Zero Knowledge Proof),說到零知識證明疲憋,不得不提一個數(shù)字貨幣zcash,這個數(shù)字貨幣的系統(tǒng)思想便是交易過程完全匿名,這使得它在提出以來便備受關(guān)注奶栖。

本文主要是講零知識證明的知識塞蹭,關(guān)于zcash數(shù)字貨幣如何根據(jù)零知識證明實現(xiàn)區(qū)塊鏈體系架構(gòu)孽江,可以自行搜索了解,也可等以后小編整理進(jìn)行分享番电。

什么是零知識證明

“零知識證明”(被稱為“zk-SNARK”)的定義是:證明者能夠在不向驗證者提供任何有用的信息的情況下岗屏,使驗證者相信某個論斷是正確的辆琅。舉個簡單的例子:

甲想向乙證明他擁有開啟某個寶箱的鑰匙,而這鑰匙只能開啟這個寶箱这刷,不能開啟其他寶箱婉烟,現(xiàn)在有兩種方式進(jìn)行證明:

A.甲把鑰匙給乙,乙拿過去打開寶箱的鎖暇屋,從而證明了甲是真的擁有開啟寶箱的鑰匙似袁。

B.乙知道寶箱中含有某樣?xùn)|西,然后甲開啟寶箱從里面把東西拿出來咐刨,就能證明甲的確有開啟寶箱的鑰匙叔营。

第二種方法就是零知識證明,在證明的過程中所宰,乙不知道開啟寶箱的鑰匙的模樣绒尊,從而避免了鑰匙的泄露。

零知識證明的性質(zhì)

(1)完備性仔粥。如果證明方和驗證方都是誠實的婴谱,并遵循證明過程的每一步,進(jìn)行正確的計算躯泰,那么這個證明一定是成功的谭羔,驗證方一定能夠接受證明方。

(2)合理性麦向。沒有人能夠假冒證明方瘟裸,使這個證明成功。即開寶箱的鑰匙是唯一的诵竭。

(3)零知識性话告。證明過程執(zhí)行完之后,驗證方只獲得了“證明方擁有這個知識”這條信息卵慰,而沒有獲得關(guān)于這個知識本身的任何一點(diǎn)信息沙郭。

零知識證明的過程

零知識證明過程中,有兩個參與者裳朋,一個是證明者病线,一個是驗證者。證明者擁有某個秘密鲤嫡,想讓驗證者相信他真的擁有著某個秘密送挑,卻不想讓他知道這個秘密是什么。

因此雙方需要通過一個協(xié)議進(jìn)行一系列的交互暖眼,最后驗證者會獲得一個結(jié)果惕耕,根據(jù)這個結(jié)果可以確定證明者是否擁有個秘密,而不需要確認(rèn)秘密的內(nèi)容是什么罢荡。

證明交互協(xié)議

一.零知識

放在比特幣中就是隱私交易赡突,在比特幣網(wǎng)絡(luò)中,用戶需要將交易明文廣播給所有礦工区赵,由他們來校驗交易的合法性惭缰。但是有些情況下,基于隱私的考慮笼才,又不想把交易的具體內(nèi)容公布出來漱受。這就形成了一對矛盾。

解決這個矛盾的核心就是骡送,證明這個事件本身正確與否昂羡,而不再需要驗證者重視整個事件摔踱。就像軟件測試中的黑盒測試虐先,需要的是把軟件中所有的功能的輸入輸出確認(rèn)一遍,而不是把軟件分解查看里面的功能實踐細(xì)節(jié)派敷。

對于比特幣交易的例子蛹批,只需要證明:

發(fā)送方的錢屬于發(fā)起交易的人

發(fā)送發(fā)的錢跟接收方收到的錢相等

發(fā)送方的錢在交易結(jié)束后確實被銷毀了

整個證明過程中,礦工其實并不關(guān)心具體花掉了多少錢篮愉,發(fā)送者具體是誰腐芍,接受者具體是誰。礦工只關(guān)心系統(tǒng)的錢是不是守恒的试躏。

二.測試方式

測試不能完全由證明方給出猪勇,就如寫代碼的時候不能讓自己進(jìn)行代碼驗收。

通常這種情況下會采用 cut and choose 的策略颠蕴。這個策略最簡單的例子就是兩人分粥泣刹。無論誰來分粥,都會給自己分的多犀被,解決方法就是一個人分项玛,另外一個人先挑。

在交易驗證的時候弱判,證明者會根據(jù)系統(tǒng)要求的一些必要的驗證內(nèi)容襟沮,作為問題的范圍,而驗證者則像一個挑戰(zhàn)者昌腰,對證明者進(jìn)行多輪交互开伏,等待證明者的回應(yīng)。

樣的證明是一種交互的證明方式遭商。雙方需要實時交互固灵,交流信息。對于比特幣隱私轉(zhuǎn)帳來說劫流,這種證明方式就不太好了巫玻。還有就是丛忆,證明者需要向所有礦工進(jìn)行廣播交易,交互在一對一的情況下仍秤,效率可想而知熄诡。

另外一個問題是,既然需要交互诗力,就要求證明過程中雙方都在線凰浮,這個也會給用戶代碼很大的不便。最好是有一種非交互式的證明方式苇本,只要證明者給出了證明袜茧,后續(xù)就不再需要交互,任何人都可以驗證這個證明是否正確瓣窄。但是這明顯跟我們一開始說的不能完全由證明者給出矛盾笛厦。

一個解決方案就是用公共參考串 Common Reference String。

證明者給出的證明里面雖然不像 cut and choose 策略一樣俺夕,由驗證者挑選問題來決定递递。但是也不是完全由證明者自己來決定,而是根據(jù)事先定好的一個種子產(chǎn)生的隨機(jī)序列決定的啥么。這樣就相當(dāng)于有一個中立的第三方來出題目登舞,同樣也能達(dá)到效果。當(dāng)然前提是這個第三方確實是中立的悬荣。

就像分粥的例子菠秒,一個人先分,但不是另外一個人先挑氯迂,而是中立第三方產(chǎn)生一個隨機(jī)數(shù)來決定誰拿哪碗粥践叠。同樣可以保證結(jié)果盡量公平。

三.測試內(nèi)容

證明者天然具有信息優(yōu)勢嚼蚀,驗證者必須要主動出擊禁灼,才能防止被證明者欺騙。但其實還有一點(diǎn)是驗證者自己需要注意的轿曙。

那就是測試題目的難度要有區(qū)分度弄捕。

就像一個軟件項目的驗收測試一樣,不能說只是編譯通過导帝,跑起來不會沖突就算驗收通過了守谓。一定要讓真正掌握秘密的證明者通過的難度不大,而假的證明者無論有多強(qiáng)大的算力也無法蒙混過關(guān)您单。

在計算機(jī)領(lǐng)域斋荞,一般做法是把原始問題映射到NP問題。驗證者只要驗證證明者給出的NP問題的解即可虐秦,這個計算量需求不大平酿。

如果某人掌握秘密凤优,能解原始問題,那么轉(zhuǎn)換一下就可以解對應(yīng)的NP問題蜈彼。如果不掌握秘密筑辨,繞過原始問題,直接暴力求解NP問題柳刮,一般可以認(rèn)為是不可能的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痒钝,一起剝皮案震驚了整個濱河市秉颗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌送矩,老刑警劉巖蚕甥,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異栋荸,居然都是意外死亡菇怀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進(jìn)店門晌块,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爱沟,“玉大人,你說我怎么就攤上這事匆背『羯欤” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵钝尸,是天一觀的道長括享。 經(jīng)常有香客問我,道長珍促,這世上最難降的妖魔是什么铃辖? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮猪叙,結(jié)果婚禮上娇斩,老公的妹妹穿的比我還像新娘。我一直安慰自己穴翩,他們只是感情好成洗,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著藏否,像睡著了一般瓶殃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上副签,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天遥椿,我揣著相機(jī)與錄音基矮,去河邊找鬼。 笑死冠场,一個胖子當(dāng)著我的面吹牛家浇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碴裙,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼钢悲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舔株?” 一聲冷哼從身側(cè)響起莺琳,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎载慈,沒想到半個月后惭等,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡办铡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年辞做,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寡具。...
    茶點(diǎn)故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡秤茅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出童叠,到底是詐尸還是另有隱情嫂伞,我是刑警寧澤,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布拯钻,位于F島的核電站帖努,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粪般。R本人自食惡果不足惜拼余,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望亩歹。 院中可真熱鬧匙监,春花似錦、人聲如沸小作。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽顾稀。三九已至达罗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粮揉。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工巡李, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扶认。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓侨拦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辐宾。 傳聞我的和親對象是個殘疾皇子狱从,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容