官术网_书友最值得收藏!

2.3.5 零知識證明和Zcash

“零知識證明”(參見本書第3章)簡單來說就是:證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。

舉個簡單的例子,A要向B證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙打開鎖,而其他任何方法都打不開。這時有兩個方法可以解決:

(1)A把鑰匙出示給B,B用這把鑰匙打開該房間的鎖,從而證明A擁有該房間的正確的鑰匙。

(2)B確定該房間內有某一物體,A用自己擁有的鑰匙打開該房間的門,然后把物體拿出來出示給B,從而證明自己確實擁有該房間的鑰匙。

第二種方法就屬于零知識證明的范疇。該方法的好處在于,在整個證明的過程中,B始終不能看到鑰匙的樣子,從而避免了鑰匙的泄露。

零知識證明過程有兩個參與方:一方叫證明者,一方叫驗證者。證明者掌握著某個秘密,他想讓驗證者相信他掌握著秘密,但是又不想泄露這個秘密給驗證者。雙方按照一個協議,通過一系列交互,最終驗證者會得出一個明確的結論,即證明者有沒有掌握這個秘密。零知識證明是一種更加安全的信息驗證或者身份驗證機制。安全性和隱私性就是零知識證明的價值所在。

零知識證明的三個基本特性

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

(2)合理性。沒有人能夠假冒證明方,使這個證明成功。

(3)零知識性。證明過程執行完之后,驗證方只獲得了“證明方擁有這個知識”這條信息,而沒有獲得關于這個知識本身的任何一點信息。

零知識證明的典范——Zcash

在比特幣網絡中,用戶需要將交易明文廣播給所有礦工,由他們來校驗交易的合法性。但是有些情況下,基于隱私的考慮,交易的具體內容希望不對外公開。解決這個問題的關鍵思路是:校驗一個事件是否正確,是否需要對驗證者重現整個事件呢?

我們拿比特幣舉個例子,一筆轉賬交易是否具備合法性,其實只要證明三件事:

(1)錢是否屬于發送交易的一方。

(2)接收者收到的總額等于發送者發送的金額之和(可能轉賬有多個來源)。

(3)發送者的所有參與轉賬賬戶上多個對應的轉賬金額(金額總和等于接受者收到的總額)確實被正確銷毀 數字貨幣轉賬允許一筆轉賬交易可以由不同的數字貨幣從多個賬戶上共同完成。 。

整個證明過程中,礦工其實并不關心具體的交易金額、發送者具體地址、接受者具體地址,礦工只關心系統賬本上的錢是不是絕對守恒的。

Zcash項目就是利用了零知識證明實現了用戶的交易內容隱私化。由于零知識證明在近兩年的迅速發展,掌握和理解它的概念變得愈發重要,所以本書第3章將會對其進行更全面的分析講解,這里只要有個初步認識就可以。

主站蜘蛛池模板: 稻城县| 长武县| 全州县| 新建县| 田阳县| 九江县| 彩票| 安多县| 江山市| 阆中市| 大宁县| 海阳市| 伊通| 柘城县| 内江市| 大连市| 淮北市| 永城市| 武汉市| 醴陵市| 花垣县| 双江| 涡阳县| 壤塘县| 华亭县| 哈巴河县| 镇平县| 上思县| 通城县| 汉沽区| 河东区| 黔东| 榆社县| 巴马| 汽车| 香格里拉县| 凤台县| 伊吾县| 大埔区| 自贡市| 新干县|