1.淺析零知識證明
零知識證明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世紀80年代初提出的;它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。
顧名思義,零知識證明就是既能充分證明自己是某種權(quán)益的合法擁有者,又不把有關(guān)的信息泄露出去——即給外界的“知識”為“零”。

目前以匿名性聞名的數(shù)字資產(chǎn)Zcash的匿名交易就是依靠“零知識證明”實現(xiàn)的。
2.舉例說明
舉個例子:假如A 要向 B 證明自己擁有某個房間的鑰匙,假設(shè)該房間只能用鑰匙打開鎖,而其他任何方法都打不開。有兩個方法:
方法一
A 把鑰匙出示給 B,B 用這把鑰匙打開該房間的鎖,從而證明 A 擁有該房間的正確的鑰匙。
方法二
B 確定該房間內(nèi)有某一物體,A 用自己擁有的鑰匙打開該房間的門,然后把物體拿出來出示給 B,從而證明自己確實擁有該房間的鑰匙。
方法二的原理就是零知識證明。

零知識證明可以在不泄露內(nèi)容本身的情況下,證明我知道這個秘密,可以有效解決許多驗證問題。

3.零知識證明的特性
完備性 completeness:如果證明方和驗證方都是誠實的,并遵循證明過程的每一步,進行正確的計算,那么這個證明一定是成功的,驗證方一定能夠接受證明方。
合理性 soundness:沒有人能夠假冒證明方,使這個證明成功。
零知識性 zero-knowledge:證明過程執(zhí)行完之后,驗證方只獲得了「證明方擁有這個知識」的信息,而沒有獲得關(guān)于這個知識本身的任何信息。
4.零知識證明的優(yōu)點
隨著零知識證明的使用,安全性不會降級,因為該證明具有零知識性質(zhì)。
高效性,該過程計算量小,雙方交換的信息量少。
安全性依賴于未解決的數(shù)學難題,如離散對數(shù)、大整數(shù)因子分解、平方根等。
許多零知識證明相關(guān)的技術(shù)避免了直接使用有政府限制的加密算法,為相關(guān)產(chǎn)品的出口帶去優(yōu)勢。