一种基于秘密分享的区块链受控可追溯身份隐私方法技术

技术编号:34431796 阅读:18 留言:0更新日期:2022-08-06 16:10
本发明专利技术公开了一种基于秘密分享的区块链受控可追溯身份隐私方法。本发明专利技术包括注册阶段和追溯阶段;其中,注册阶段中,用户向身份认证机构发送身份信息和包含用户公钥M、随机数的值,认证机构在核验身份信息和账户公钥信息后,对进行盲签名;用户对签名脱盲得到证书;身份认证机构将加入映射表,并将作为叶子节点添加到默克尔树中;用户将可验证地分享给监管委员会以及向监管委员会做零知识证明;监管委员会对零知识证明验证通过后,将公钥和证书发布在区块链上;追溯阶段中,当收到公钥对应的账户出现违规行为的举报时,监管委员恢复出值并签名后发送给身份认证机构,查找到对应用户的。。。

【技术实现步骤摘要】
一种基于秘密分享的区块链受控可追溯身份隐私方法


[0001]本专利技术属于安全密码应用
,具体涉及一种基于秘密分享的区块链受控可追溯身份隐私方法。

技术介绍

[0002]默克尔树(Merkle Tree)是一种树形数据结构,通常为二叉树,如图1所示。对于一组数据,默克尔树的叶子节点存放数据值的哈希值,非叶子结点的值由该节点所有子结点的值排列起来并做哈希运算得到。默克尔树通常用于数据完整性验证,即证明一份特定的数据存在于一组已经由默克尔树组织起来的数据中。同时,默克尔树还具有较强的防篡改性,因为任何对数据的修改都会导致从该数据到树根节点路径上的所有节点哈希值发生改变,最终使根节点的哈希值改变。当两个默克尔树对应的数据集出现单个数据不一致时,可以利用这个性质进行快速比对和定位。
[0003]盲签名是一种特殊的数字签名技术,它允许消息拥有者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签名除去盲因子,得到签名者关于原消息的签名。
[0004]盲签名除了满足数字签名条件外,还必须满足以下性质:签名者不知道他所签署消息的具体内容;签名消息不可追溯,即当签名消息被公布后,签名者无法知道该消息是他在何时签署的。
[0005]一种常用的盲签名方案是Schnorr方案(参考Fuchsbauer G, Plouviez A, Seurin Y. Blind Schnorr signatures and signed ElGamal encryption in the algebraic group model[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Cham, 2020: 63

95.),步骤如下:1.选定素域上的椭圆曲线 ,其生成元为,点群的阶为素数;选定哈希函数;2.消息拥有者A拥有消息,签名者B拥有私钥和公钥;3.B随机选取,并将发送给A;4.A随机选取,计算,并将发送给B;5.B计算,并将发送给A;
6.A验证,不成立则拒绝,成立则计算,签名为。
[0006]秘密分享是指将一个秘密分为若干个互不相同的片段,只要利用超过一定数量的片段就可以恢复出秘密。秘密分享常用于密钥的保存,将密钥分为多个部分并交由不同的人管理,即使少数部分丢失,其余持有者仍然可以恢复正确的密钥,同时密钥不会因少数部分的泄露而泄露。
[0007]可验证秘密分享在秘密分享的基础上增加了对秘密片段正确性的证明:秘密分享者分发秘密片段后,向片段持有者提供一份证明,该证明使持有者确信自己获得的片段确实属于原秘密的一部分,同时该证明不会泄露有关秘密的任何信息。
[0008]一种常用的可验证秘密分享方案是Shamir方案(Feldman P. A practical scheme for non

interactive verifiable secret sharing[C]//28th Annual Symposium on Foundations of Computer Science (sfcs 1987). IEEE, 1987: 427

438.):设要分享的秘密为,接收秘密片段的人数为,且不少于个人()的秘密片段就可以恢复出,则秘密分享步骤为:1.选定一条素域上的椭圆曲线 ,其生成元为,点群的阶为素数;2.秘密持有方构造上的随机多项式,并向第个接收方发送;3.秘密持有方公开用于验证;4.第个接收方可以计算是否成立,如果成立则证明自己持有的秘密片段正确。
[0009]零知识证明通常是指一种方法,其中的一个参与方(证明者)可以向另一方(验证者)证明某一论断为真(例如:拥有某一数学问题的一组解),而不泄露关于“此论断为真”以外的任何信息。注意到在此例子中,一个朴素的证明方法就是直接公开拥有的解,因此难点是在不泄露任何关于解的信息的同时实现证明。
[0010]目前已有的零知识证明协议大多具有如下形式:对于某个问题和值,证明者拥有使得。证明者利用计算出一组数据(证明)并交给验证者验证,如果验证者证实这些数据确实满足协议中给出的特定关系(通常是一组等式),则验证者相信证明者确实拥有使得。
[0011]零知识证明协议必须满足以下性质:
完整性:如果,则证明者使用生成的证明总应该被接受;可靠性:对于任何不满足的,证明者使用生成的证明最多以一个小概率被接受(这使得验证者可以通过多次要求证明的方式鉴别虚假的证明者);零知识:验证者不能从证明中获得关于的任何信息。
[0012]目前常用的零知识证明协议包括Groth16、Sonic、Plonk等,这些协议均能够实现对常规计算问题的证明(参考Groth J. On the size of pairing

based non

interactive arguments[C]//Annual international conference on the theory and applications of cryptographic techniques. Springer, Berlin, Heidelberg, 2016: 305

326;Maller M, Bowe S, Kohlweiss M, et al. Sonic: Zero

knowledge SNARKs from linear

size universal and updatable structured reference strings[C]//Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 2019: 2111

2128;或Gabizon A, Williamson Z J, Ciobotaru O. Plonk: Permutations over lagrange

bases for oecumenical noninteractive arguments of knowledge[J]. Cryptology ePrint Archive, 2019.)。
[0013]现有的技术不能在区块链保护身份隐私的环境下为监管者提供追踪恶意行为的手段:用户注册账户后,其账户地址等信息与真实身份没有任何关联,同时一个用户实体可以持有多个账户,其他人难以在账户间建立关联。因此,用户在区块链系统中实施如洗钱等恶意行为时,将很难被追查到真实身份。

技术实现思路

[0014]针对现有技术中存在的问题,本专利技术的目的在于提供一种基于秘密分享的区块链受控可追溯身份隐私方法。在区块链身份隐本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于秘密分享的区块链受控可追溯身份隐私方法,其步骤包括:1)注册阶段:11)身份认证机构随机选取,并将发送给用户;其中,椭圆曲线所在的域为素数,生成元为,点群的阶=;身份认证机构的签名私钥为公钥为;12)用户随机选取,计算,并将ID和发送给身份认证机构;ID为用户的身份信息,M为用户的公钥,H()为哈希函数;13)身份认证机构计算,并将发送给用户;14)用户验证是否成立,如果不成立则终止注册,如果成立则计算,得到签名;15)用户计算,得到证书;16)身份认证机构将加入映射表,并将作为叶子节点添加到默克尔树中,公布更新后的默克尔树并将其根哈希值发布至区块链上;17)用户将可验证地分享给监管委员会;18)用户向监管委员会做零知识证明;监管委员会对所述零知识证明验证通过后,将用户的公钥和证书发布在区块链上;2)追溯阶段:当所述监管委员会收到区块链上的任意用户关于公钥对应的账户出现违规行为的举报,所述监管委员成员通过注册阶段各自收到的秘密分享片段联合恢复出的值;然后通过计算恢复出的值,然后根据恢复出的生成身份恢复请求并对其进行多方签名后发送给身份认证机构;身份认证机构验证所述身份恢复请求由所述监管委员会发起后,通过从所述身份恢复请求中获...

【专利技术属性】
技术研发人员:关志陈钟王珂何逸飞李青山
申请(专利权)人:博雅正链北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1