- 區(qū)塊鏈應(yīng)用開發(fā)指南:業(yè)務(wù)場景剖析與實(shí)戰(zhàn)
- 熊麗兵 董一凡等
- 12字
- 2022-07-28 20:18:06
3.2 零知識證明使用場景案例
3.2.1 場景一:萬圣節(jié)糖果
故事是這樣的:一年一度的萬圣節(jié)到來,小麗和小明分別領(lǐng)取到了一定數(shù)量的糖果。他們想知道他們是否收到了相同數(shù)量的糖果,卻不想透露糖果的數(shù)量,因?yàn)樗麄儾幌氡舜朔窒怼?/p>
現(xiàn)在我們假設(shè),他們袋子里可能裝有10、20、30個或40個糖果,如圖3-1所示。

圖3-1 萬圣節(jié)糖果
這時小明想了個辦法,為了比較他們擁有的糖果數(shù)量,小明拿到4把鑰匙和盒子,盒子上分別寫上10、20、30、40,分別對應(yīng)糖果的數(shù)量。小明最后只保留了自己糖果數(shù)量跟盒子數(shù)字一樣的鑰匙,其他3把鑰匙就丟棄了(假設(shè)小明只保留了寫著20的盒子的鑰匙)。
然后,小麗在4張紙條上,其中一張寫上“+”,另外三張寫上“-”。然后,把寫有“+”的紙條放到跟自己糖果數(shù)量是相同數(shù)字的盒子里,其余紙條放到其他盒子(假設(shè)小麗把“+”放到寫著30的盒子)。
這時,小明回來后打開他有鑰匙的那個盒子(寫著20),然后看它是否包含“+”或“-”的紙條。
(1)如果紙條上寫著“+”,說明兩個人的糖果數(shù)量一致。
(2)如果紙條上寫著“-”,說明兩個人糖果數(shù)量不一致,但是并不知道對方糖果的具體數(shù)量。
(3)這里小明看到紙條上寫著“-”,意味著兩人的糖果數(shù)量不一樣,但是小明無法知道小麗的糖果數(shù)量。這時候,小麗看到小明手上拿著一張寫“-”的紙條,那她也知道兩人的糖果數(shù)量不一樣,但是也無法知道對方擁有糖果的確切數(shù)量。
上面這個過程,就是一個零知識證明。
ZKP(“零知識證明”的英文縮寫)允許我們證明自己在通信的另一“端”知道某個人的某個秘密(或許多秘密),而沒有實(shí)際透露出秘密。術(shù)語“零知識”源于以下事實(shí):第一方?jīng)]有透露有關(guān)機(jī)密的信息(“零”),但是第二方(被稱為“驗(yàn)證者”)確信第一方(被稱為“證明者”)知道有關(guān)機(jī)密。
- Building Computer Vision Projects with OpenCV 4 and C++
- Hands-On Data Structures and Algorithms with Rust
- 數(shù)據(jù)產(chǎn)品經(jīng)理高效學(xué)習(xí)手冊:產(chǎn)品設(shè)計、技術(shù)常識與機(jī)器學(xué)習(xí)
- Spark大數(shù)據(jù)分析實(shí)戰(zhàn)
- Power BI商業(yè)數(shù)據(jù)分析完全自學(xué)教程
- Proxmox VE超融合集群實(shí)踐真?zhèn)?/a>
- 從Lucene到Elasticsearch:全文檢索實(shí)戰(zhàn)
- AndEngine for Android Game Development Cookbook
- 云原生架構(gòu):從技術(shù)演進(jìn)到最佳實(shí)踐
- 基于數(shù)據(jù)發(fā)布的隱私保護(hù)模型研究
- 大數(shù)據(jù)計算系統(tǒng)原理、技術(shù)與應(yīng)用
- 數(shù)據(jù)會說話:活用數(shù)據(jù)表達(dá)、說服與決策
- MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎(第2版)
- 商業(yè)銀行數(shù)據(jù)庫管理實(shí)踐
- 機(jī)器視覺原理與案例詳解