Idemix(Identity Mixer)介紹

一、Idemix是什麼

Idemix(Identity Mixer)的核心是零知識證明(Zero Knowledge Proof),用戶無需暴露私有數據以及任何有用的信息,也能證明自己擁有這些私有數據,對方能夠進行有效驗證,這就是零知識證明。
Idemix是一個密碼協議套件(X.509+加密算法),保留隱私實現匿名性,交易時不用透露交易者的身份,而且交易間是無關聯的,不可往前追溯。

Identity包含三個角色,包括用戶(User)、發行者(Issuer)、驗證者(Verifier),各自作用如下:

用戶:通過Idemix生成一個proof,證明自己知道某個祕密
發行者:(fabric CA 或 idemixgen工具)驗證用戶的隸屬屬性,然後頒發一個證書
驗證者:(fabric MSP)驗證proof

二、Idemix的實現

Fabric中Peer通過Fabric CA進行Enroll、Register、Revoke的操作,還可以通過Identity Mixer對交易進行簽名驗籤的操作;
Identity Mixer和Fabric CA都需要調用加密包進行具體的流程。

帶有Identity Mixer的MSP
除了X.509證書外,還可以通過發行idemix憑據來實現MSP。fabric CA初始化的時候,生成兩個發行者的key,包括:

IssuerPublicKey
IssuerRevocationPublicKey。
Fabric CA或idemixgen工具可以作爲發行者(Issuer),Idemix MSP作爲驗證者(Verifier),發行者爲用戶頒發數字證書,用戶生成Idemix憑據後向驗證者提供proof,用於驗證屬性是否正確。目前Idemix憑據只支持3個屬性,包括:

OU
IsAdmin
Enrollment ID

三、Idemix的特性

Idemix與X.509的相同點如下:

一組屬性被簽名,且簽名不可僞造
憑證通過密碼學的方式綁定到一個密鑰
Idemix與X.509的不同點如下:

Idemix通過零知識證明來確保不會泄露知識或信息,並且用戶擁有憑證密鑰;而X.509通過最初簽名的公鑰來驗證,知道私鑰的人才能生成證明;
Idemix是各個信息間是無關聯的,且不可往回追溯;而X.509顯示所有屬性,因此所有用於簽發交易的X.509證書使用都是關聯的。
Identity Mixer與X.509的對比如下圖所示:

Idemix與X.509是可以共存的,可以通過在configtx.yam裏面指定“msptype: idemix”來支持Idemix,如下所示:

Idemix仍然有一些侷限性:

只支持固定的屬性,例如OU、Role attribute、Enrollment ID、Revocation Handle attribute等;
不支持Idemix的撤銷
Peers還不能使用Idemix來進行背書,目前Peers的Idemix MSP只是用來驗證簽名,Idemix簽名只能通過客戶端SDK來進行;
建議每個channel或每個網絡只使用一個基於Idemix的MSP,因爲Idemix當前僅提供同一組織(MSP)中client的匿名性。
 

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