fabric零知識證明

簡介

官網:https://hyperledger-fabric.readthedocs.io/en/release-1.3/idemix.html
fabric1.3 發佈idemix特性,該功能主要實現了零知識證明,即:匿名性不可關聯性

fabric idemix組件

目前主要實現SDK端的零知識證明,也就是client可以採用idemix,peer、orderer驗證,目前只有Java-sdk實現了該功能,其他sdk還不支持。另外peer、orderer的零知識證明也沒實現,也就是說目前只有client端實現了匿名性與不可關聯性,peer、orderer節點的零知識證明說是後續版本會支持。

官網主要介紹了該功能的特點以及使用,關於怎麼實現,實現的數學原理證明沒有講。技術細節及數學原理官網給了幾篇論文,有興趣的可以閱讀一下。
idemix概念及特性詳細描述:
Concepts and Languages for Privacy-Preserving Attribute-Based Authentication
技術原理:
Camenisch and Lysyanskaya
Au et al.
零知識證明數學原理:
Camenisch et al.

總結

idemix與x.509比較(翻譯官網):

證書/憑證概念和頒發過程在Idemix和X.509證書中非常相似:一組屬性使用無法僞造的簽名進行數字簽名,並且存在以加密方式綁定憑證的密鑰。
標準X.509證書和Identity Mixer憑證之間的主要區別是用於驗證屬性的簽名方案。 身份混合器系統的基礎簽名允許擁有簽名和相應的屬性的有效證明,而不會泄露簽名和(選定的)屬性值本身。 我們使用零知識證明來確保在某些屬性上的簽名有效並且用戶擁有相應的憑證密鑰時不泄露這樣的“知識”或“信息”。

此類證明(如X.509證書)可以使用最初簽署憑證的權限的公鑰進行驗證,並且無法成功僞造。 只有知道憑證密鑰的用戶才能生成有關憑證及其屬性的證明。

關於不可鏈接性,當呈現X.509證書時,必須顯示所有屬性以驗證證書籤名。 這意味着簽署事務的所有證書用法都是可鏈接的。爲了避免這種可鏈接性,每次都需要使用新的X.509證書,這會導致複雜的密鑰管理以及通信和存儲開銷。 此外,有些情況下,即使頒發證書的CA也不能將所有事務鏈接到用戶,這點也很重要。

Idemix有助於避免CA和驗證者的可鏈接性,因爲即使CA也無法將證據鏈接到原始憑證。 發行人和驗證者都不能判斷兩個證據是否來自同一憑證(或來自兩個不同的憑證)。

來自概念詳細描述論文:

Privacy-ABCs體系加解密流程
1、可以產生你所需要數目的Public-keys,在Privacy-ABCs體系中叫做假名,實現了不可關聯性。
2、 防止一個人多次投票這種場景,驗證器會請求特殊的假名,叫做scope-exclusive pseudonym, which is unique for the user’s secret key and a given scope string。
3、證書內容可以與private-key綁定。
4、在生成相關材料及描述時,採用XML schema.
5、具體地數學原理及證明參考論文。

如何使用

參考官網。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章