零知識證明能在證明者不向驗證者提供任何有用信息的情況下因悲,使驗證者相信某個論斷是正確的剿配。
也就是說恃逻,我們可以在不暴露任何隱私的情況下達成我們的目的枪狂。比如說桂躏,我要向警察叔叔證明我有能力開車碳想,我不用拿出我的駕照烧董,因為駕照上有我的隱私信息,我的照片胧奔、年齡逊移、身份證號、駕照辦理日期龙填、有效期胳泉,這些信息其實與我有沒有能力開車沒有關(guān)系。在區(qū)塊鏈中岩遗,通過全網(wǎng)驗證扇商,只需輸出一個令人信服的結(jié)果,即“我有能力開車”宿礁,而無需泄露任何隱私信息案铺。
那么,如果我需要授權(quán)某人獲取我的某些信息呢梆靖?該如何處理控汉?如何在既保護我的隱私不被其他未授權(quán)的人獲取的前提下,點對點地提供給授權(quán)的人呢返吻?而且授權(quán)的人只能看到我允許他看到的信息范圍暇番。
這里就要提到兩種加密算法:對稱加密算法和非對稱加密算法。
對稱加密算法是在加密和解密時使用的是同一個密鑰思喊。
非對稱加密算法需要兩個密鑰來進行加密和解密壁酬,這兩個秘鑰是公開密鑰(簡稱公鑰)和私有密鑰(簡稱私鑰)。
同一組公鑰與私鑰是天生一對,若用公鑰對數(shù)據(jù)進行加密舆乔,只有用對應的私鑰才能解密岳服。反之,若用私鑰對數(shù)據(jù)進行加密希俩,那只有用對應的公鑰才能解密吊宋。
就如同字面意思一樣,由于加密與解密使用的是兩個不同的密鑰颜武,所以這種算法叫作非對稱加密算法璃搜。
舉個例子,B要向A傳遞一條秘密信息鳞上。
A的手里有一把私鑰一把公鑰这吻。
于是:
A把公鑰給了B。
得到A的公鑰的B使用這個公鑰對機密信息進行了加密篙议,然后再發(fā)送給A唾糯。
A再用他自己手中保存的另一把私鑰對加密以后的信息進行解密。這其中鬼贱,A只能用他的私鑰進行解密(由對應公鑰加密的信息)移怯。
這樣一來,在信息的傳輸過程中这难,即使信息被人攔截舟误,并且他得到了A的公鑰,也無法將其姻乓,因為公鑰和私鑰是一對的嵌溢,由A的公鑰加密的信息,只有用A的私鑰才能解密糖权。
反過來堵腹,如果A要回復機密信息給B炸站,那么需要B先公布B的公鑰給A用于加密星澳,A用B的公鑰對機密信息進行加密,而B用自己保存的私鑰解密旱易。
顯然禁偎,我們可以看出,非對稱加密與對稱加密相比阀坏,安全性更好如暖。
非對稱加密的缺點是加密和解密花費時間長、速度略慢忌堂。
在數(shù)字貨幣的交易中盒至,可以通過私鑰來對文本進行簽名。同時向全網(wǎng)廣播你的公鑰。而別人拿到了你的公鑰就可以對文本的簽名進行解密枷遂,若可以解密樱衷,即認證你擁有私鑰。這樣就能證明你擁有存款酒唉。這也是比特幣的加密算法之一矩桂。
喜歡作者,歡迎來撩痪伦,我們是一群癡迷于區(qū)塊鏈的怪大叔侄榴。
文| 怪大叔(個人微信:xuemei_prince)
微信公眾號:怪大叔尬聊區(qū)塊鏈