一种基于代理重加密和有向无环图的跨链方法及系统与流程

文档序号:32483799发布日期:2022-12-10 00:12阅读:25来源:国知局
一种基于代理重加密和有向无环图的跨链方法及系统与流程

1.本发明涉及区块链技术领域,具体为一种基于代理重加密和有向无环图的跨链方法及系统。


背景技术:

2.在代理重加密中,数据拥有者将数据利用对称密钥加密,把得到的密文存储于服务端,并利用数据拥有者的公钥加密对称密钥把得到的密文也上传存储到服务端。
3.现有技术中,当数据拥有者alice想要对bob进行数据共享时,数据拥有者alice根据自己的解密密钥和bob的加密密钥生成一个重加密密钥,并发送给服务端。服务端利用自己强大的计算能力并结合重加密密钥,进行重加密操作,把得到的密文也存储在服务端。然后bob从服务端上下载密文,并利用自己的私钥解密得到对称密钥,然后利用对称密钥解密就得到了原始的明文。
4.但是,现存的五大跨链系统中:哈希锁定跨链只适用于价值跨链、应用场景受限;第三方公证跨链在安全性方面缺少保障;分布式密钥、侧链和中继技术都涉及在新建区块链上的操作,对跨链性能影响很大。可见仍缺乏一种高性能、高安全性、应用场景广泛的跨链系统。此外,数据保护法和个人隐私保护法的出台,也给跨链系统带来了保护交易数据隐私的新需求。


技术实现要素:

5.本发明的目的在于提供一种基于代理重加密和有向无环图的跨链方法及系统,以解决上述背景技术中提出的问题,旨在基于代理重加密和有向无环图,构造一个高效、高安全性的跨链系统。
6.为实现上述目的,本发明提供如下技术方案:一种基于代理重加密和有向无环图的跨链方法,所述基于代理重加密和有向无环图的跨链方法包括以下步骤:
7.对扩展区块链进行锁定;
8.为跨链系统的用户生成代理重加密的相应密钥,假设用户user1和用户user2需要进行跨链操作;
9.用户在记录节点上注册需链的地址和响应处理规范;
10.不同用户通过跨链系统确认跨链消息,假设user1需要在链a操作,user2需要在链b操作,以实现资产、信息或者合约的跨链;
11.跨链系统向区块链系统发送锁定和执行请求;
12.跨链系统按如下步骤生成跨链记录的有向无环图。
13.优选的,对扩展区块链进行锁定时,
14.为参与跨链系统的区块链扩展锁定功能,即限制用户一定时间内只能执行预定的操作;
15.为参与跨链系统的区块链扩展解密功能,即允许用户注册公钥后,发送加密信息
进行远程调用。
16.优选的,生成代理重加密的相应密钥时,
17.user1向记录节点注册身份,记录节点调用sk1,pk1=keygen()为user1生成私钥sk1和公钥pk1,将sk1安全分发给user1,公开pk1,user1向对应区块链注册sk1位置;
18.user2向跨链系统注册身份,跨链系统调用sk2,pk2=keygen()为user2生成私钥sk2和公钥pk2,将sk2安全分发给user2,公开pk2,user2向对应区块链注册sk2位置。
19.优选的,注册需链的地址和响应处理规范时,
20.若注册的链存在,记录节点在对应位置附加链地址和响应处理规范;否则,新建一个该链的链存储节点,在记录节点上记录前述地址和响应处理规范,并将该链存储节点地址广播至各工作节点;
21.通过跨链系统确认跨链消息时,user1生成跨链消息m
u1
,m
u1
包含:user1在链a上所做的操作,操作对应的user1签名,所需user2在链b上所做的操作;user2也生成类似的消息m
u2
,m
u2
包含:user2在链b上所做的操作,操作对应的user2签名,所需user1在链a上所做的操作;
22.user1调用keygen
sy
(m
u1
)算法生成对称密钥k
u1s
,调用enc
sy
(k
u1s
,m
u1
)生成密文c
u11
,调用enc(pk1,k
u1s
)生成密文c
u12
。user2调用keygen
sy
(m
u2
)算法生成对称密钥k
u2s
,调用enc
sy
(k
u2s
,m
u2
)生成密文c
u21
,调用enc(pk2,k
u2s
)生成密文c
u22

23.user1调用kengen
re
(sk1,pk2)生成重加密密钥k1→2,user2调用kengen
re
(sk2,pk1)生成重加密密钥k2→1;
24.user1将c
u11
,c
u12
,k1→2发送至工作节点;user2将c
u21
,c
u22
,k2→1发送至工作节点;
25.工作节点调用reenc(k1→2,c
u12
)生成重加密密文c
u13
;调用reenc(k2→1,c
u21
)生成重加密密文c
u23

26.工作节点将c
u13
,c
u11
发送给user2,将c
u23
,c
u21
发送给user1;
27.用户接收到工作节点的消息后,user1调用dec(sk1,c
u23
)获得对称密钥k
u2s
,调用dec
sy
(k
u2s
,c
u21
)获得消息m
u2
,验证消息m
u2
中内容无误后,向工作节点发送确认消息;user2调用dec(sk2,c
u13
)获得对称密钥k
u1s
,调用dec
sy
(k
u1s
,c
u11
)获得消息m
u1
,验证消息m
u1
中内容无误后,向工作节点发送确认消息。
28.优选的,跨链系统向区块链系统发送锁定和执行请求时,
29.工作节点接收到user1和user2的确认消息后,将对应的密文c
u11
,c
u12
组装为锁定请求发送至链a;将对应的密文c
u21
,c
u22
组装为锁定请求发送至链b;
30.链a调用dec
sy
(k
u1s
,dec(sk1,c
u12
))获得消息m
u1
,验证m
u1
无错误后对user1进行锁定,在锁定成功后返回锁定成功消息;链b调用dec
sy
(k
u2s
,dec(sk2,c
u22
))获得消息m
u2
,验证m
u2
无错误后对user2进行锁定,在锁定成功后返回锁定成功消息;
31.工作节点收到链a和链b的锁定成功消息后,接着向链a和链b发送对应锁定消息的执行请求;
32.生成跨链记录的有向无环图时,
33.区块链a和b在接收到相应锁定消息的执行请求后,响应工作节点,并执行对应用户的相应合约、生成区块;
34.工作节点获得响应工作节点的响应后,从链存储节点a、b处均获取上次的交易密
文哈希,和本次交易共同作为输入构成新的哈希,存储在存储节点a和b上。
35.一种基于代理重加密和有向无环图的跨链系统,该系统由锁定模块、密钥初始模块、注册模块、确认模块、执行模块以及生成模块构成;
36.锁定模块,用于对扩展区块链进行锁定;
37.密钥初始模块,用于为跨链系统的用户生成代理重加密的相应密钥,假设用户user1和用户user2需要进行跨链操作;
38.注册模块,用于用户在记录节点上注册需链的地址和响应处理规范;
39.确认模块,用于不同用户通过跨链系统确认跨链消息,假设user1需要在链a操作,user2需要在链b操作,以实现资产、信息或者合约的跨链;
40.执行模块,用于跨链系统向区块链系统发送锁定和执行请求;
41.生成模块,用于跨链系统按如下步骤生成跨链记录的有向无环图。
42.优选的,所述锁定模块,为参与跨链系统的区块链扩展锁定功能,即限制用户一定时间内只能执行预定的操作;
43.为参与跨链系统的区块链扩展解密功能,即允许用户注册公钥后,发送加密信息进行远程调用。
44.优选的,所述密钥初始模块的user1向记录节点注册身份,记录节点调用sk1,pk1=keygen()为user1生成私钥sk1和公钥pk1,将sk1安全分发给user1,公开pk1,user1向对应区块链注册sk1位置;
45.user2向跨链系统注册身份,跨链系统调用sk2,pk2=keygen()为user2生成私钥sk2和公钥pk2,将sk2安全分发给user2,公开pk2,user2向对应区块链注册sk2位置。
46.优选的,所述注册模块用于若注册的链存在,记录节点在对应位置附加链地址和响应处理规范;否则,新建一个该链的链存储节点,在记录节点上记录前述地址和响应处理规范,并将该链存储节点地址广播至各工作节点;
47.通过跨链系统确认跨链消息时,user1生成跨链消息m
u1
,m
u1
包含:user1在链a上所做的操作,操作对应的user1签名,所需user2在链b上所做的操作;user2也生成类似的消息m
u2
,m
u2
包含:user2在链b上所做的操作,操作对应的user2签名,所需user1在链a上所做的操作;
48.user1调用keygen
sy
(m
u1
)算法生成对称密钥k
u1s
,调用enc
sy
(k
u1s
,m
u1
)生成密文c
u11
,调用enc(pk1,k
u1s
)生成密文c
u12
。user2调用keygen
sy
(m
u2
)算法生成对称密钥k
u2s
,调用enc
sy
(k
u2s
,m
u2
)生成密文c
u21
,调用enc(pk2,k
u2s
)生成密文c
u22

49.user1调用kengen
re
(sk1,pk2)生成重加密密钥k1→2,user2调用kengen
re
(sk2,pk1)生成重加密密钥k2→1;
50.user1将c
u11
,c
u12
,k1→2发送至工作节点;user2将c
u21
,c
u22
,k2→1发送至工作节点;
51.工作节点调用reenc(k1→2,c
u12
)生成重加密密文c
u13
;调用reenc(k2→1,c
u21
)生成重加密密文c
u23

52.工作节点将c
u13
,c
u11
发送给user2,将c
u23
,c
u21
发送给user1;
53.用户接收到工作节点的消息后,user1调用dec(sk1,c
u23
)获得对称密钥k
u2s
,调用dec
sy
(k
u2s
,c
u21
)获得消息m
u2
,验证消息m
u2
中内容无误后,向工作节点发送确认消息;user2调用dec(sk2,c
u13
)获得对称密钥k
u1s
,调用dec
sy
(k
u1s
,c
u11
)获得消息m
u1
,验证消息m
u1
中内容
无误后,向工作节点发送确认消息。
54.优选的,所述执行模块的工作节点接收到user1和user2的确认消息后,将对应的密文c
u11
,c
u12
组装为锁定请求发送至链a;将对应的密文c
u21
,c
u22
组装为锁定请求发送至链b;
55.链a调用dec
sy
(k
u1s
,dec(sk1,c
u12
))获得消息m
u1
,验证m
u1
无错误后对user1进行锁定,在锁定成功后返回锁定成功消息;链b调用dec
sy
(k
u2s
,dec(sk2,c
u22
))获得消息m
u2
,验证m
u2
无错误后对user2进行锁定,在锁定成功后返回锁定成功消息;
56.工作节点收到链a和链b的锁定成功消息后,接着向链a和链b发送对应锁定消息的执行请求;
57.生成模块的区块链a和b在接收到相应锁定消息的执行请求后,响应工作节点,并执行对应用户的相应合约、生成区块;
58.工作节点获得响应工作节点的响应后,从链存储节点a、b处均获取上次的交易密文哈希,和本次交易共同作为输入构成新的哈希,存储在存储节点a和b上。
59.与现有技术相比,本发明的有益效果是:
60.本发明提出的基于代理重加密和有向无环图的跨链方法及系统利用代理重加密技术来实现交易密文的传递,确保了只有参与跨链的用户以及区块链系统可以获得对应的交易明文,记录在跨链系统对应节点的内容都是加密过的交易密文,有效保护了用户交易内容的隐私;并且在存储节点上,交易以有向无环图的格式被记录,在保证了跨链系统基本安全的前提下,还提升了跨链系统的并发性。与传统的中继链和侧链技术相比具有较高的性能;与传递的第三方跨链相比,具有较高的安全性。
附图说明
61.图1为本发明方法流程图。
具体实施方式
62.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
63.在本发明的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“侧”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一”、“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性。
64.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是
两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
65.出于简明和说明的目的,实施例的原理主要通过参考例子来描述。在以下描述中,很多具体细节被提出用以提供对实施例的彻底理解。然而明显的是,对于本领域普通技术人员,这些实施例在实践中可以不限于这些具体细节。在一些实例中,没有详细地描述公知方法和结构,以避免无必要地使这些实施例变得难以理解。另外,所有实施例可以互相结合使用。
66.实施例一
67.请参阅图1,本发明提供一种技术方案:一种基于代理重加密和有向无环图的跨链方法,其特征在于:所述基于代理重加密和有向无环图的跨链方法包括以下步骤:
68.对扩展区块链进行锁定;为参与跨链系统的区块链扩展锁定功能,即限制用户一定时间内只能执行预定的操作;为参与跨链系统的区块链扩展解密功能,即允许用户注册公钥后,发送加密信息进行远程调用;
69.为跨链系统的用户生成代理重加密的相应密钥,假设用户user1和用户user2需要进行跨链操作;user1向记录节点注册身份,记录节点调用sk1,pk1=keygen()为user1生成私钥sk1和公钥pk1,将sk1安全分发给user1,公开pk1,user1向对应区块链注册sk1位置;user2向跨链系统注册身份,跨链系统调用sk2,pk2=keygen()为user2生成私钥sk2和公钥pk2,将sk2安全分发给user2,公开pk2,user2向对应区块链注册sk2位置;
70.用户在记录节点上注册需链的地址和响应处理规范;若注册的链存在,记录节点在对应位置附加链地址和响应处理规范;否则,新建一个该链的链存储节点,在记录节点上记录前述地址和响应处理规范,并将该链存储节点地址广播至各工作节点;
71.通过跨链系统确认跨链消息时,user1生成跨链消息m
u1
,m
u1
包含:user1在链a上所做的操作,操作对应的user1签名,所需user2在链b上所做的操作;user2也生成类似的消息m
u2
,m
u2
包含:user2在链b上所做的操作,操作对应的user2签名,所需user1在链a上所做的操作;user1调用keygen
sy
(m
u1
)算法生成对称密钥k
u1s
,调用enc
sy
(k
u1s
,m
u1
)生成密文c
u11
,调用enc(pk1,k
u1s
)生成密文c
u12
。user2调用keygen
sy
(m
u2
)算法生成对称密钥k
u2s
,调用enc
sy
(k
u2s
,m
u2
)生成密文c
u21
,调用enc(pk2,k
u2s
)生成密文c
u22
;user1调用kengen
re
(sk1,pk2)生成重加密密钥k1→2,user2调用kengen
re
(sk2,pk1)生成重加密密钥k2→1;user1将c
u11
,c
u12
,k1→2发送至工作节点;user2将c
u21
,c
u22
,k2→1发送至工作节点;工作节点调用reenc(k1→2,c
u12
)生成重加密密文c
u13
;调用reenc(k2→1,c
u21
)生成重加密密文c
u23
;工作节点将c
u13
,c
u11
发送给user2,将c
u23
,c
u21
发送给user1;用户接收到工作节点的消息后,user1调用dec(sk1,c
u23
)获得对称密钥k
u2s
,调用dec
sy
(k
u2s
,c
u21
)获得消息m
u2
,验证消息m
u2
中内容无误后,向工作节点发送确认消息;user2调用dec(sk2,c
u13
)获得对称密钥k
u1s
,调用dec
sy
(k
u1s
,c
u11
)获得消息m
u1
,验证消息m
u1
中内容无误后,向工作节点发送确认消息;
72.不同用户通过跨链系统确认跨链消息,假设user1需要在链a操作,user2需要在链b操作,以实现资产、信息或者合约的跨链;
73.跨链系统向区块链系统发送锁定和执行请求;工作节点接收到user1和user2的确认消息后,将对应的密文c
u11
,c
u12
组装为锁定请求发送至链a;将对应的密文c
u21
,c
u22
组装为锁定请求发送至链b;链a调用dec
sy
(k
u1s
,dec(sk1,c
u12
))获得消息m
u1
,验证m
u1
无错误后对
user1进行锁定,在锁定成功后返回锁定成功消息;链b调用dec
sy
(k
u2s
,dec(sk2,c
u22
))获得消息m
u2
,验证m
u2
无错误后对user2进行锁定,在锁定成功后返回锁定成功消息;工作节点收到链a和链b的锁定成功消息后,接着向链a和链b发送对应锁定消息的执行请求;
74.跨链系统按如下步骤生成跨链记录的有向无环图;区块链a和b在接收到相应锁定消息的执行请求后,响应工作节点,并执行对应用户的相应合约、生成区块;工作节点获得响应工作节点的响应后,从链存储节点a、b处均获取上次的交易密文哈希,和本次交易共同作为输入构成新的哈希,存储在存储节点a和b上。
75.实施例二
76.一种基于代理重加密和有向无环图的跨链系统,该系统由锁定模块、密钥初始模块、注册模块、确认模块、执行模块以及生成模块构成;
77.锁定模块,用于对扩展区块链进行锁定;为参与跨链系统的区块链扩展锁定功能,即限制用户一定时间内只能执行预定的操作;为参与跨链系统的区块链扩展解密功能,即允许用户注册公钥后,发送加密信息进行远程调用;
78.密钥初始模块,用于为跨链系统的用户生成代理重加密的相应密钥,假设用户user1和用户user2需要进行跨链操作;user1向记录节点注册身份,记录节点调用sk1,pk1=keygen()为user1生成私钥sk1和公钥pk1,将sk1安全分发给user1,公开pk1,user1向对应区块链注册sk1位置;user2向跨链系统注册身份,跨链系统调用sk2,pk2=keygen()为user2生成私钥sk2和公钥pk2,将sk2安全分发给user2,公开pk2,user2向对应区块链注册sk2位置;
79.注册模块,用于用户在记录节点上注册需链的地址和响应处理规范;若注册的链存在,记录节点在对应位置附加链地址和响应处理规范;否则,新建一个该链的链存储节点,在记录节点上记录前述地址和响应处理规范,并将该链存储节点地址广播至各工作节点;通过跨链系统确认跨链消息时,user1生成跨链消息m
u1
,m
u1
包含:user1在链a上所做的操作,操作对应的user1签名,所需user2在链b上所做的操作;user2也生成类似的消息m
u2
,m
u2
包含:user2在链b上所做的操作,操作对应的user2签名,所需user1在链a上所做的操作;user1调用keygen
sy
(m
u1
)算法生成对称密钥k
u1s
,调用enc
sy
(k
u1s
,m
u1
)生成密文c
u11
,调用enc(pk1,k
u1s
)生成密文c
u12
。user2调用keygen
sy
(m
u2
)算法生成对称密钥k
u2s
,调用enc
sy
(k
u2s
,m
u2
)生成密文c
u21
,调用enc(pk2,k
u2s
)生成密文c
u22
;user1调用kengen
re
(sk1,pk2)生成重加密密钥k1→2,user2调用kengen
re
(sk2,pk1)生成重加密密钥k2→1;user1将c
u11
,c
u12
,k1→2发送至工作节点;user2将c
u21
,c
u22
,k2→1发送至工作节点;工作节点调用reenc(k1→2,c
u12
)生成重加密密文c
u13
;调用reenc(k2→1,c
u21
)生成重加密密文c
u23
;工作节点将c
u13
,c
u11
发送给user2,将c
u23
,c
u21
发送给user1;用户接收到工作节点的消息后,user1调用dec(sk1,c
u23
)获得对称密钥k
u2s
,调用dec
sy
(k
u2s
,c
u21
)获得消息m
u2
,验证消息m
u2
中内容无误后,向工作节点发送确认消息;user2调用dec(sk2,c
u13
)获得对称密钥k
u1s
,调用dec
sy
(k
u1s
,c
u11
)获得消息m
u1
,验证消息m
u1
中内容无误后,向工作节点发送确认消息;
80.确认模块,用于不同用户通过跨链系统确认跨链消息,假设user1需要在链a操作,user2需要在链b操作,以实现资产、信息或者合约的跨链;
81.执行模块,用于跨链系统向区块链系统发送锁定和执行请求;执行模块的工作节点接收到user1和user2的确认消息后,将对应的密文c
u11
,c
u12
组装为锁定请求发送至链a;将对应的密文c
u21
,c
u22
组装为锁定请求发送至链b;链a调用dec
sy
(k
u1s
,dec(sk1,c
u12
))获得
消息m
u1
,验证m
u1
无错误后对user1进行锁定,在锁定成功后返回锁定成功消息;链b调用dec
sy
(k
u2s
,dec(sk2,c
u22
))获得消息m
u2
,验证m
u2
无错误后对user2进行锁定,在锁定成功后返回锁定成功消息;工作节点收到链a和链b的锁定成功消息后,接着向链a和链b发送对应锁定消息的执行请求;
82.生成模块,用于跨链系统按如下步骤生成跨链记录的有向无环图;区块链a和b在接收到相应锁定消息的执行请求后,响应工作节点,并执行对应用户的相应合约、生成区块;工作节点获得响应工作节点的响应后,从链存储节点a、b处均获取上次的交易密文哈希,和本次交易共同作为输入构成新的哈希,存储在存储节点a和b上。
83.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1