Zcash核心:零知識證明(一)
首發於微信號『喪心病狂的社會攻城獅』
微信&知乎『喪心病狂的社會攻城獅』,金色財經專欄&微博@Warrior比特幣玩家。
在Zcash:黑夜中潛行一文中曾提到Zcash的突破之處在於使用了零知識證明(zero knowledge proof)實現了私密交易與去中心化共存,那麼,零知識證明究竟是什麼?
它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。比如證明者向驗證者證明並使其相信自己知道或擁有某一消息,但證明過程不能向驗證者泄漏任何關於被證明消息的信息。 其中又分為互動式零知識證明和非互動式零知識證明。
互動式證明
舉個例子,如何向色盲證明兩個球顏色不同。

假設A有一個紅球和黃球,她的一個色盲朋友B不相信A的球顏色不同,A如何才能讓B相信這是真的呢?一個簡單的辦法如下:
- A把兩個球給B,B每隻手拿一個球
- A轉過身背對B
- B拋一枚硬幣,如果正面朝上,則保持不動,否則交換左右手的球
- A轉過身,B問A是否交換過球
- 如果A回答錯誤,則B不相信;否則,重複100次實驗,如果A都回答正確,則B相信這兩個球是不同顏色的
為什麼?如果兩個球顏色不一樣,那麼A每次都應該能分辨;如果兩個球顏色一樣,則不管B有沒有交換過,A都無法分辨,只能亂猜。這樣每次猜對的概率只有1/2,重複100次,都猜對的概率將小到可以忽略,所以A將必然猜錯。
這就是互動式零知識證明的一個例子,上述證明有三個特點:1)交互過程,整個證明需要A和B進行交互才能完成;2)具有隨機性,即B需要拋一枚硬幣,來決定是否交換球;3)零知識,雖然B最終相信了這兩個球是不同顏色的,但B還是不知道這兩個球是什麼顏色的。
(未完待續)
本文由幣乎社區(bihu.com)內容支持計劃贊助
微博上總有讀者私信詢問關於區塊鏈出海的問題,所以建了個芥末圈子(非知識星球)『區塊之殤』,方便大家交流,內容也會優先在裡面發布。原創不易,因為知乎和微信的限制,目前只能在微信中掃碼進入,歡迎點擊加入。
推薦閱讀:
※什麼是ZEC(Zcash大零幣)?如何買ZEC(Zcash大零幣)?
※Zcash是什麼?
※使用顯卡挖ZCash教程
TAG:ZCash | 比特币Bitcoin | 零知识证明 |
