一种面向web3.0的基于安全多方计算的区块链身份信息隐私保护方法
技术领域
1.本发明属于web3.0技术领域,具体涉及一种面向web3.0的基于安全多方计算的区块链身份信息隐私保护方法。
背景技术:
2.随着互联网的发展,人们越来越多地在网络上进行各种活动,如社交、购物、娱乐、学习等。这些活动往往需要用户提供自己的身份信息,如姓名、性别、年龄、国籍、住址等,以便于平台或服务提供者进行身份验证或个性化推荐等。然而,这些身份信息往往被平台或服务提供者收集、存储、分析或出售,导致用户的隐私权利受到侵犯。
3.为了保护用户的身份信息隐私,一些技术方案被提出,如基于密码学的加密、匿名化、零知识证明等。然而,这些方案仍然存在一些问题,如加密后的数据仍然可能被暴力破解或泄露;匿名化后的数据仍然可能被关联或推断;零知识证明需要复杂的数学证明和高昂的计算成本。因此,需要设计一种有效的技术方案能够实现在网络上对用户身份信息进行隐私保护和有效验证。
技术实现要素:
4.为解决上述技术问题,本发明提供一种面向web3.0的基于安全多方计算的区块链身份信息隐私保护方法,包括:
5.s1:用户通过安全多方计算网络(smpc)生成聚合公钥,并使用聚合公钥对自身的身份信息进行加密,得到身份信息的密文;
6.s2:由用户将身份信息的密文存储至分布式存储网络,并接收分布式存储网络返回的哈希地址,同时,用户将身份信息的密文的元数据和哈希地址发布至web3.0平台;
7.s3:由用户在需要验证身份时,发起安全多方计算任务至smpc网络中的mpc节点,并利用mpc节点所在smpc网络中的枢纽节点根据验证需求选择至少一个验证方;
8.s4:由用户的mpc节点和至少一个验证方的mpc节点,根据枢纽节点传输的验证逻辑与根据身份信息的密文的元数据和哈希地址从分布式存储网络查询所需信息,针对验证任务进行协同计算,得到验证结果;
9.s5:利用用户的mpc节点和各验证方的mpc节点中的指定mpc节点获取验证结果,以及由指定mpc节点的验证方获取聚合公钥对应的聚合私钥,并利用聚合私钥解密验证结果。
10.本发明的有益效果:
11.本发明通过利用安全多方计算中的聚合公钥对身份信息进行加密,可以有效地保护用户身份信息的隐私,避免身份信息被暴力破解或泄露;
12.本发明通过利用分布式存储网络和web3.0平台存储和发布身份信息的密文,可以有效地保护用户身份信息的完整性和可追溯性,避免身份信息被篡改或丢失;
13.本发明通过利用安全多方计算协议和枢纽节点进行身份验证,可以有效地保护用
户身份信息的最小化和最需要化,避免身份信息被关联或推断;
14.本发明通过利用安全多方计算协议和聚合私钥进行验证结果的解密,可以有效地保护用户身份信息的授权和共享,避免身份信息被滥用或泄露。
附图说明
15.图1为本发明的一种面向web3.0的基于安全多方计算的区块链身份信息隐私保护方法流程图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.一种面向web3.0的基于安全多方计算的区块链身份信息隐私保护方法,包括:
18.s1:用户通过安全多方计算网络(smpc)生成聚合公钥,并使用聚合公钥对自身的身份信息进行加密,得到身份信息的密文;
19.s2:由用户将身份信息的密文存储至分布式存储网络,并接收分布式存储网络返回的哈希地址,同时,用户将身份信息的密文的元数据和哈希地址发布至web3.0平台;
20.s3:由用户在需要验证身份时,发起安全多方计算任务至smpc网络中的mpc节点,并利用mpc节点所在smpc网络中的枢纽节点根据验证需求选择至少一个验证方;
21.s4:由用户的mpc节点和至少一个验证方的mpc节点,根据枢纽节点传输的验证逻辑与根据身份信息的密文的元数据和哈希地址从分布式存储网络查询所需信息,针对验证任务进行协同计算,得到验证结果;
22.s5:利用用户的mpc节点和各验证方的mpc节点中的指定mpc节点获取验证结果,以及由指定mpc节点的验证方获取聚合公钥对应的聚合私钥,并利用聚合私钥解密验证结果。
23.用户通过安全多方计算网络生成聚合公匙,包括:
24.s11:每个用户选择一个私钥pk_i计算相应的公钥p_i=pk_i*g,其中g是曲线生成点;
25.s12:每个用户将自己的公钥p_i相互发送给其他用户,并收集所有用户的公钥;
26.s13:每个用户使用一个哈希函数计算一个系数a_i=hash(p_i,{p_1,p_2,
…
,p_n}),其中{p_1,p_2,
…
,p_n}是所有用户的公钥集合;
27.s14:每个用户将自己的系数a_i乘以自己的公钥p_i,并将所有用户的结果相加得到聚合公钥p=a_1*p_1 a_2*p_2
…
a_n*p_n;
28.s15:每个用户选择一个公匙,重复s11-s14的聚合公匙生成方法生成聚合私匙。
29.这样,每个用户都可以得到相同的聚合密钥,并用聚合公钥来加密自己的身份信息,聚合公钥的优点是可以减少存储空间和验证时间,同时提高安全性和隐私性;用聚合私匙来进行验证结果的解密,可以有效地保护用户身份信息的授权和共享,避免身份信息被滥用或泄露。
30.利用mpc节点所在smpc网络中的枢纽节点根据验证需求选择至少一个验证方,包
括:
31.s31:枢纽节点根据区块链网络中所有可用节点的性能指标、负载情况和可信度属性构建一个属性矩阵;
32.在本发明示例中,枢纽节点根据区块链网络中所有可用节点的性能指标、负载情况和可信度属性,构建一个属性矩阵a;该矩阵的行数对应可用节点的数量,列数对应不同的属性,每个元素a(i,j)表示第i个节点在第j个属性上的值;
33.s32:枢纽节点根据不同属性的重要程度分配一个权重向量;
34.在本发明实施例中,枢纽节点根据不同属性的重要程度,为每个属性分配一个权重值;设共有n个属性,权重向量为w=[w1,w2,...,wn],其中wi表示第i个属性的权重;
[0035]
s33:枢纽节点使用模糊逻辑将属性矩阵和权重向量转换为模糊矩阵和模糊权重向量;
[0036]
在本发明实施中,对属性矩阵a的每个元素a(i,j),将其转换为对应的模糊值,表示节点i在属性j上的隶属度,得到模糊属性矩阵fa;对权重向量w中的每个权重值wi,将其转换为对应的模糊值,表示属性i的权重,得到模糊权重向量fw;
[0037]
s34:枢纽节点将模糊矩阵和模糊权重向量进行模糊加权运算,得到每个节点的模糊评价向量,并对模糊评价向量进行模糊排序,得到每个节点的排序值;
[0038]
在本发明实施例中,将模糊矩阵和模糊权重向量进行模糊加权运算,得到每个节点的模糊评价向量;模糊加权运算的公式是:
[0039][0040]
其中,μ
ij
表示第i个节点在第j个模糊集合中的隶属度,μ
ik
表示第i个节点在第k个属性上的隶属度,w
kj
表示第k个属性在第j个模糊集合中的权重,∨表示最大值运算,∧表示最小值运算,n表示属性的数量;
[0041]
然后,将每个节点的模糊评价向量进行模糊排序,得到每个节点的排序值;模糊排序的公式是:
[0042][0043]
其中,si表示第i个节点的排序值,λj表示第j个模糊集合的排序权重,μ
ij
表示第i个节点在第j个模糊集合中的隶属度;其中,λj按照以下规则确定:
[0044][0045]
其中,m表示模糊集合的数量。
[0046]
s35:枢纽节点根据排序结果,选择出前k(k≥1)个排序值最高的节点作为验证方,并将其分配给相应的任务。
[0047]
所述枢纽节点是指在smpc网络中负责协调、传输和监督各个mpc节点工作的特殊节点。
[0048]
所述枢纽节点传输的验证逻辑,包括:
[0049]
第一步、确定验证目标:验证目标是指需要对身份信息进行验证的属性或条件,其中,验证目标可以由用户自己指定,也可以由系统根据不同的场景或需求自动推荐;
[0050]
第二步、确定验证方案:验证方案是指用于实现验证目标的具体方案,其中,验证方案可以由用户自己选择,也可以由系统根据不同的验证目标或难度自动匹配;
[0051]
第三步、生成验证逻辑:根据验证目标和验证方案生成的一段可执行的程序代码或公式,用于对身份信息进行计算和判断;验证逻辑可以由用户自己编写,也可以由系统根据不同的验证方案或模板自动生成;
[0052]
第四步、测试和优化验证逻辑:在生成验证逻辑后,对其进行测试和评估,检查其正确性、有效性、安全性、高效性,并根据测试结果进行调整和改进;测试和优化验证逻辑可以由用户自己完成,也可以由系统提供相应的工具和建议。
[0053]
从分布式存储网络查询的所需信息,包括:
[0054]
身份信息的密文数据:通过使用密文哈希地址,验证方需要从分布式存储网络中获取存储的身份信息的密文数据;
[0055]
密文元数据:密文元数据包含对身份信息进行加密时所用的算法、加密密钥或公钥、加密的时间戳信息;
[0056]
聚合公钥相关信息:聚合公钥是在步骤s1中使用安全多方计算的聚合公钥对身份信息进行加密时生成的。验证方需要查询分布式存储网络以获取聚合公钥的相关信息,如聚合公钥的生成算法、聚合公钥的哈希地址。
[0057]
针对验证任务进行协同计算,得到验证结果,包括:
[0058]
s41:预处理阶段:用户和验证方通过枢纽节点建立安全通信通道,并通过安全通信信道使用秘密分享的方式交换必要的参数信息;其中,所述必要的参数信息包括公钥、随机数;
[0059]
所述秘密分享的方式,包括:用户和验证方将自己的输入数据分割成多个碎片,并将这些碎片发送给枢纽节点;
[0060]
s42:输入加密阶段:用户和验证方将自己的输入数据进行加密,并将加密后的元数据发送给枢纽节点,枢纽节点根据验证逻辑从分布式存储网络中查询所需的身份信息密文,并将其与用户和验证方的输入数据一起发送给所有参与方;
[0061]
s43:计算执行阶段:用户和验证方根据验证逻辑对收到的加密数据进行安全多方计算,并得到加密后的中间结果;
[0062]
步骤1:参与方输入数据解密:所有参与方(用户和验证方)根据自己的角色和权限对收到的加密数据进行解密;
[0063]
假设加密数据为c,解密后的结果为m,其中m为明文,c为密文,所述加密操作,包括:
[0064]
m_i=decryption(c_i,sk_i)
[0065]
其中,m_i为参与方i的解密结果,decryption是解密算法,c_i为参与方i收到的加密数据,sk_i为参与方i的私钥;
[0066]
步骤2:安全多方计算:参与方使用安全多方计算协议对解密后的数据进行计算,以获得中间结果;
[0067]
假设参与方i和j进行安全多方计算,m_i和m_j是它们的解密结果,计算得到的中间结果为c',安全多方计算,包括:
[0068]
c'=securecomputation(m_i,m_j,param)
[0069]
其中,c'为安全多方计算后的中间结果,securecomputation为安全多方计算协议,param为验证逻辑中的计算规则参数,m_i为参与方i的解密结果,m_j为参与方j的解密结果;
[0070]
步骤3:中间结果加密:参与方将得到的安全多方计算后的中间结果c'进行加密,得到加密后的中间结果;
[0071]
所述对c'进行加密,包括:
[0072]
c”=encryption(c',pk)
[0073]
其中,c”表示加密后的中间结果,encryption为加密算法,c'为安全多方计算后的中间结果,pk为枢纽节点的公钥。
[0074]
s44:输出解密阶段:用户和验证方根据自己的角色和权限,对加密后的中间结果进行解密,得到自己应该获得的输出结果,并使用私匙对输出结果进行签名;
[0075]
s45:结果写入阶段:用户和验证方将自己得到的输出结果以及签名发送给枢纽节点,枢纽节点根据收到的结果和签名,判断验证任务是否成功完成,并将最终验证结果写入区块链。
[0076]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。