fabric零知识证明

简介

官网:https://hyperledger-fabric.readthedocs.io/en/release-1.3/idemix.html
fabric1.3 发布idemix特性,该功能主要实现了零知识证明,即:匿名性不可关联性

fabric零知识证明_第1张图片

目前主要实现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也无法将证据链接到原始凭证。 发行人和验证者都不能判断两个证据是否来自同一凭证(或来自两个不同的凭证)。

来自概念详细描述论文:

fabric零知识证明_第2张图片
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、具体地数学原理及证明参考论文。

如何使用

参考官网。

你可能感兴趣的:(区块链,fabric)