一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于联盟链的跨链数据安全共享方法

2022-11-23 16:04:14 来源:中国专利 TAG:


1.本发明属于区块链的跨链领域,具体涉及一种基于联盟链的跨链数据安全共享方法。


背景技术:

2.随着区块链技术的逐渐成熟,区块链领域中出现了联盟链,联盟链是介于公有链和私有链之间,具备部分去中心化的特性。联盟链是由若干机构联合发起,由盟友共同来维护,它只针对特定某个群体的成员和有限的第三方开放。联盟链的参与者是被提前筛选出来的,或者直接指定的,联盟链内部指定一些节点记账节点,每个区块的生成由指定的排序节点共同决定,用户可以参与交易,但不直接参与记账过程。联盟链之间的交互数据也变得越来越重要。保证跨链数据交互全过程可追溯、不可篡改及可靠性等,实现基于联盟链之间的互联互通,打破区块链数据孤岛。
3.现有的跨链数据共享方案没有考虑到数据共享方存在恶意节点在共享数据的过程中对其进行篡改情况,无法做到安全的跨链数据共享。同时现有的区块链间的数据交互方案一般是通过中继链或者中继通道的方式,这种跨链模型需要引入中继链并让跨链双方注册,资源需求大,效率低,并随着对数据交互流程去中心化要求的增高资源的需要也会激增。


技术实现要素:

4.为解决以上现有技术存在的问题,本发明提出了一种基于联盟链的跨链数据安全共享方法,该方法包括:构建联盟链网络结构,该结构包括联盟链a和联盟链b;分别对联盟链a和联盟链b进行系统初始化,即联盟链a和联盟链b通过密钥生成服务器生成秘密份额与公钥,并把秘密份额分发给联盟链内各个用户;其中联盟链b将自身公钥和相关公共参数发送给联盟链a,并部署密文存证合约和解密验证上链合约;联盟链a将自身公钥和相关公共参数发送给联盟链b,并部署门限签名存证合约和跨链响应数据合约;
5.跨链数据安全共享的过程包括:
6.s1:联盟链b向联盟链a发送跨链请求r;
7.s2:联盟链a内的用户根据跨链请求r从账本中获取相应的请求数据d;根据请求数据d生成明文m;采用的秘密份额对明文m进行计算,生成中间参数根据中间参数对联盟链a的账本进行更新;
8.s3:联盟链a根据跨链请求r、公钥以及相关参数采用跨链响应数据合约对请求数据d进行加密,将加密后的密文(c1||c2)上链,并发送给联盟链b;
9.s4:接收方联盟链b的用户ui接收跨链响应数据后,调用密文存证合约将收到的密文(c1||c2)进行上链存证;
10.s5:联盟链b的各个用户从账本上获取密文,并调用解密验证上链合约获取秘密份额的中间参数,通过获取的中间参数对跨链数据密文进行解密,根据解密后的明文在账本
上进行putstate()更新操作。
11.本发明的有益效果:
12.本发明在设计智能合约上使用了基于shamir的elgamal门限密码以及基于shamir的bls门限签名方案,相比于传统中继链等方式更简单,节省了引入中继链所需的大量性能开销,同时保证了数据交互过程中的保密性和不可篡改性,以及跨链数据交互全流程的可审计性,实现了去中心化地构建跨链响应消息和接收方在去中心化下对跨链响应数据进行解密验证并明文上链。
附图说明
13.图1是本发明实施例提供是一种基于联盟链的跨链数据安全共享方法的总流程图;
14.图2是本发明实施例提供的一种基于联盟链的跨链数据安全共享方法的整体架构;
15.图3是本发明实施例提供的一种基于联盟链的跨链数据安全共享方法的接收方明文数据上链流程图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.一种基于联盟链的跨链数据安全共享方法,该方法包括:构建联盟链网络结构,该结构包括联盟链a和联盟链b;分别对联盟链a和联盟链b进行系统初始化,即联盟链a和联盟链b通过密钥生成服务器生成秘密份额与公钥,并把秘密份额分发给联盟链内各个用户;其中联盟链b将自身公钥和相关公共参数发送给联盟链a,并部署密文存证合约和解密验证上链合约;联盟链a将自身公钥和相关公共参数发送给联盟链b,并部署门限签名存证合约和跨链响应数据合约;
18.跨链数据安全共享的过程包括:
19.s1:联盟链b向联盟链a发送跨链请求r;
20.s2:联盟链a内的用户根据跨链请求r从账本中获取相应的请求数据d;根据请求数据d生成明文m;采用的秘密份额对明文m进行计算,生成中间参数根据中间参数对联盟链a的账本进行更新;
21.s3:联盟链a根据跨链请求r、公钥以及相关参数采用跨链响应数据合约对请求数据d进行加密,将加密后的密文(c1||c2)上链,并发送给联盟链b;
22.s4:接收方联盟链b的用户ui接收跨链响应数据后,调用密文存证合约将收到的密文(c1||c2)进行上链存证;
23.s5:联盟链b的各个用户从账本上获取密文,并调用解密验证上链合约获取秘密份额的中间参数,通过获取的中间参数对跨链数据密文进行解密,根据解密后的明文在账本上进行putstate()更新操作。
24.本实施例提供了一种基于门限解密的联盟链跨链数据交互方法,本实施例涉及区块链跨链技术、shamir算法和elgamal算法以及bls签名算法,其中区块链是一种按照时间顺序将数据区块链以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证数据的不可篡改和不可伪造的分布式账本。区块链本质上是一个分布式存储账本,而跨链数据交互是让一方联盟链账本上的数据记录到另一个联盟链的账本上,为了实现这种需求,区块链系统需要一种跨链的模型来使跨链数据交互过程中保证数据防篡改,全流程可审计以及避免中心化风险。
25.一种基于联盟链的跨链数据安全共享方法的具体实施方式,如图1所示,该方法包括:
26.s1、联盟链b中数据接收方组织密钥生成服务器,为基于门限解密方案创造秘密份额与公钥,并把秘密份额分发给联盟链内各个用户,公钥以及相关公共参数和跨链请求交给数据发送方联盟链a,用于跨链数据交互中数据加密。
27.s2、联盟链a中数据发送方组织密钥生成服务器,为基于门限签名方案创造秘密份额与公钥,把秘密份额分发给联盟链内各个用户,公钥和相关公共参数交给数据发送方联盟链b,用于接收方智能合约验证签名,最后部署门限签名存证合约收集用于生成门限签名的中间参数并计算出门限签名,通过putstate()将门限签名更新至账本。
28.s3、联盟链a内各用户根据跨链请求r从账本上获取相应数据d,对m=(r||d)通过秘密份额生成中间参数并putstate()更新账本,联盟链a再根据跨链请求与公钥以及相关参数部署跨链响应数据合约用于对(跨链数据m,门限签名)进行加密,以及密文上链,并返回跨链数据密文给调用者,由调用者发送给对方用户。
29.s4、接收方联盟链b的用户ui接收跨链消息后,在账本上进行putstate()更新操作。
30.s5、联盟链b各个用户从账本上获取密文,计算并提交包括秘密份额的中间参数到联盟链账本,用户调用密文存证合约收集包括秘密份额的中间参数以解密跨链数据密文,并在账本上进行putstate()更新操作。
31.如图2所示,在步骤s1中,联盟链b中数据接收方组织密钥生成服务器平台为门限解密方案创造秘密份额与公钥,并把秘密份额分发给联盟链内各用户,公钥和跨链请求消息交给数据发送方联盟链a,用于跨链数据交互中数据加密,具体包括:
32.s11:联盟链b组织密钥生成服务器运行elgamal算法生成私钥xu公钥yu,具体如下:选取大素数p,g∈zp*是一个本原元素。p,g为公共参数,服务器随机挑选一个整数xu,1≤xu≤p-1,并计算其中yu是公钥,xu为私钥。
33.s12:组织密钥生成服务器运行shamir算法,并结合elgamal算法生成的私钥xu生成秘密份额:随机选择一个t-1次多项式:f(x)=∑
i=0t-1ai
xi=a0 a1x a2x2 ... a
t-1
x
t-1
其中,ai∈zp*,i=0,1,......,t-1,且令a0=xu。
34.随后,组织密钥生成服务器在gf(p)中选择n个非零且互不相同的元素x1,x2,......,xn,并计算:yi=f(i),i=1,2,......,n。
35.s13:组织密钥生成服务器将第i个点(xi,yi)分发给组织内的第i名用户pi,其中,yi是pi的秘密份额值,并将公钥yu和公开参数以及跨链数据请求发送给数据发送方即联盟
链a。
36.在步骤s2中,联盟链a中数据发送方组织密钥生成服务器,为基于门限签名方案创造秘密份额与公钥,把秘密份额分发给联盟链内各用户,公钥和相关公共参数交给数据发送方联盟链b,用于接收方智能合约验证门限签名,最后部署门限签名存证合约收集内部各用户用于生成门限签名的中间参数并计算出门限签名,并将门限签名在账本上进行putstate()更新操作,详细过程如下:
37.s21:联盟链b组织密钥生成服务器运行bls签名算法生成私钥x公钥y,具体如下:随机选取x∈[0,p-1]作为私钥,sk=x,计算公钥pk=y=g
x
(mod p),g是群g的生成元。
[0038]
s22:组织密钥生成服务器运行shamir算法,并结合bls算法生成的私钥x生成秘密份额:随机选择一个t-1次多项式:f(x)=∑
i=0t-1ai
xi=a0 a1x a2x2 ... a
t-1
x
t-1
其中,ai∈zp*,i=0,1,...,t-1,且令a0=x。
[0039]
随后,组织密钥生成服务器在gf(p)中选择n个非零且互不相同的元素x1,x2,...,xn,并计算:yi=f(i),i=1,2,...,n。
[0040]
s23:组织密钥生成服务器将第i个点(xi,yi)分发给组织内的第i名用户pi,其中,yi是pi的秘密份额值,并将公钥y和公开参数,以及所选择的哈希函数发送给数据接收方即联盟链a。
[0041]
s24、部署门限签名存证合约,用于收集内部各用户用于生成门限签名的中间参数并计算出门限签名且将门限签名在账本上进行putstate()更新操作。
[0042]
在步骤s3中,联盟链a内各用户根据跨链请求r从账本上获取相应数据d,对m=(r||d)通过秘密份额生成中间参数并putstate()更新账本,联盟链a再根据跨链请求与公钥以及相关参数部署跨链响应数据合约用于对(跨链数据m,门限签名)进行加密,以及密文上链,并返回跨链数据密文给调用者,由调用者发送给对方用户,详细过程如下:
[0043]
s31:联盟链a内各用户根据跨链请求r从账本上获取相应数据d,对m=(r||d)通过秘密份额生成中间参数并执行putstate()更新账本。
[0044]
s32:联盟链a的发送方用户a_user调用跨链响应数据合约并输入跨链请求消息,具体细节如下:跨链响应数据合约接收用户输入的跨链请求消息r,跨链响应数据合约获取跨链请求消息内容包含的数据索引k通过从联盟链账本中读取对应值d,接着调用门限签名存证合约获得门限签名s,令m1=(m,s)作为跨链数据并运行elgamal加密算法即:
[0045]
使用伪随机生成器生成一个伪随机数r∈[2,p-2]并计算c1≡gr(mod p),c2≡m1
·yur
(mod p),(c1,c2)即是密文。接着将(c1,c2)进行putstate()更新操作,最后将(c1,c2)返回给调用者。
[0046]
s33:联盟链a的发送方用户调用跨链响应数据合约并输入跨链请求数据。
[0047]
s34:跨链响应数据合约执行完操作生成交易,联盟链a把交易打包成区块记录上链。
[0048]
在s4中,接收方联盟链b的用户ui接收跨链消息后进行将密文数据在账本上进行putstate()更新操作,具体细节如下:
[0049]
s41:联盟链b上部署密文存证合约用于提交数据到链上账本。
[0050]
s42:用户ui调用密文存证合约并把接收到的密文作为输入。
[0051]
s43:联盟链b对密文存证合约生成的交易进行区块打包并存储到链上。
[0052]
联盟链b各个用户从账本上获取密文,计算并提交包括秘密份额的中间参数到联盟链账本,用户调用密文存证合约收集包括秘密份额的中间参数以解密跨链数据密文,并将明文在账本上进行putstate()更新操作,具体包括:根据跨链请求消息r的数据索引k从联盟链账本中读取经密文存证合约上链的密文(c1||c2)和进行门限解密所需的中间参数g
r(f(i))
;联盟链b根据中间参数对密文进行解密;联盟链b根据联盟链a公布的公钥对解密后的门限签名进行验证,若验证失败,则数据共享请求失败,若验证成功,则对账本进行写操作,完成交易;其中写操作的内容包括生成的明文;相关节点将交易打包并存储至联盟链,实现数据的安全共享。具体步骤为:
[0053]
s51:联盟链b内各用户从账本上获取密文,并对密文通过秘密份额生成用于门限解密的中间参数,具体如下:由拉格朗日差值公式便可重构出多项式f(x),多项式的表达式为:
[0054][0055]
其中,i=1,2,......t,表示;yi表示秘密份额,mod p表示对p进行模运算,其中xi=i,各用户根据获得的(xi,yi)计算f(i),其表达式为:
[0056][0057]
计算g
r(f(i))
作为所需的参数,将g
r(f(i))
签名在账本上进行putstate()更新操作。
[0058]
s52:联盟链b部署解密验证上链合约,其中包括:获取解密所需的中间参数,使用shamir算法和elgamal算法解密。对明文中的门限签名进行验证,若是通过,则进行putstate()账本更新操作,否则终止。
[0059]
s53:如图3所示,用户并调用解密验证上链合约,解密验证上链合约运行流程如下:从联盟链b的账本获取解密所需的来自各用户users={u1,u2,......un}中t名用户的中间参数g
r(f(i))
以及密文(c1,c2),计算得到并计算m1即为明文,其中包含d。用公钥对发送方联盟链a的门限签名进行验证,如果失败就终止,成功就在交易的读写集中记录对账本进行写操作。
[0060]
s54:联盟链b对解密验证上链合约生成的交易进行区块打包并存储到链上。
[0061]
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献