一种基于可信执行环境的跨链系统及方法与流程

文档序号:28446292发布日期:2022-01-12 03:28阅读:99来源:国知局
一种基于可信执行环境的跨链系统及方法与流程

1.本发明涉及区块链技术领域,尤其涉及一种基于可信执行环境的跨链系统及方法。


背景技术:

2.随着区块链技术的快速发展,各种面向不同组织机构、不同应用场景的区块链层出不穷,这就出现了一个新的应用需求:跨不同区块链交互操作。然而由于区块链之间共识算法、区块生成与验证规则、交易广播、安全机制等逻辑存在较大差异,区块链间的交互面临着诸多困难。此外,跨链交互的数据隐私问题也会带来一些业务上的安全隐患。目前虽然已经提出了一些可行的跨链方法,但这些方法往往没有考虑到数据隐私的问题,或者考虑不全面。


技术实现要素:

3.本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于可信执行环境的跨链系统及方法,以实现有跨链需求的客户端通过所属区块链向目标区块链发起一个跨链交易,并通过加密技术和可信执行环境来保障跨链数据的隐私安全,同时为跨链系统提供细粒度的访问控制机制来防止跨链数据被滥用,其访问控制机制可以随时更新。
4.为解决上述技术问题,本发明所采取的技术方案是:
5.一方面,本发明提供一种基于可信执行环境的跨链系统,包括多个客户端、多个平行链、多个跨链路由、中继链;
6.所述多个客户端为跨链交易的实际发起者;当某一客户端需要进行跨链交互时,该客户端通过所属平行链的跨链合约发布一个跨链事件;
7.所述多个平行链为多个独立运行的区块链,每个区块链负责具体的业务,通过中继链来进行跨链互操作;只有在中继链上注册过的平行链才能进行跨链交互;
8.所述多个跨链路由:为平行链上的全节点,监听平行链上的跨链事件;当跨链路由监听到跨链事件,将根据跨链消息传输协议构造跨链交易并发送给中继链;当跨链路由收到中继链转发的跨链交易,将验证并执行该跨链交易,待该交易被确认之后,将根据跨链消息传输协议构造带有交易执行结果和证明的跨链交易并发送给中继链;每条平行链对应一个跨链路由;
9.所述中继链是由多个中继链节点共同维护的一个分布式账本,用于进行平行链管理、跨链交易的可信验证与访问权限控制,同时记录各平行链交易状态以及转发跨链交易,中继链上执行跨链消息传输协议;当中继链节点收到一个来自跨链路由的跨链交易时,将根据跨链消息传输协议和平行链注册的细粒度访问权限控制策略来验证其合法性和访问权限,在跨链交易经过中继链共识算法确认并上链后,根据跨链消息传输协议转发给相应目的链的跨链路由;中继链节点与跨链路由之间通过执行一个可信密钥分发方案来建立安全的加密通信通道;
10.所述跨链消息传输协议为一个通用的跨链消息传输协议,用于在异构的平行链之间统一跨链消息传输格式,并用于验证跨链交易的四种信息,一是跨链信息的真实性证明,即该跨链信息是否确实存在于来源链上,是否确实是来源链发送给目的链的;二是跨链交易的有效性证明,即来自来源链的交易到达目的链时的状态仍然是有效的;三是授权证明,必须验证该交易请求的资源是对来源链开放的;四是跨链交易未经过篡改;
11.所述可信密钥分发方案是一种在中继链节点和跨链路由之间建立点对点加密通道的方案;该方案在中继链节点和跨链路由之间生成一个共同密钥,并利用此密钥来传输跨链交易数据;
12.所述细粒度访问权限控制策略是指中继链将执行来自平行链注册的访问权限管理条例来对跨链交易进行验证,确保跨链业务的数据安全。
13.优选的,所述中继链节点的平台设备配置有可信执行环境,中继链节点之间通过远程认证互相确认身份;中继链节点将在可信执行环境中解密跨链交易并进行访问权限确认以保护跨链数据的隐私;如果验证通过则将跨链交易重新加密并根据交易的目的链字段通过点对点加密通道转发给相应的跨链路由。
14.优选的,所述跨链路由为可信节点;当平行链加入跨链平台时,由跨链路由向中继链注册相应的验证交易合法性规则、访问权限控制规则以及跨链路由证书;跨链路由启动时,将与中继链节点沟通一个通信密钥,用于后续的跨链交易加密传输;跨链路由监听到所属平行链的客户端发布的跨链事件后,将根据跨链事件中提供的信息,和跨链消息传输协议,生成交易证明,构造跨链交易,并通过加密通道传输给中继链节点。
15.优选的,所述中继链节点的可信执行环境为intelsgx,采用intelsgx的远程证实来证明代码在平台上正确加载,并防止机密数据被恶意攻击者获取。
16.优选的,所述可信密钥分发方案利用椭圆曲线加密算法和dh密钥交换算法实现。
17.优选的,所述跨链路由和中继链节点之间利用数字签名和对称加密算法,对跨链消息进行签名和加密保护。
18.优选的,所述中继链节点在收到一个跨链交易时,需要验证跨链路由的签名以防消息被篡改,然后在可信执行环境中用相应的通信密钥解密,并验证跨链交易访问的资源是否具有权限。
19.优选的,所述跨链消息传输协议包括以下字段:来源链id、目的链id、交易类型、交易序列号、跨链交易发起用户id、跨链交易时间戳、跨链交易有效期、跨链路由签名、跨链交易证明、负载数据信息,其中各字段含义和作用为:
20.1)来源链id:来源链为跨链交易发起方的平行链,每个平行链有一个唯一的标识;
21.2)目的链id:目的链为跨链交易接收方的平行链;
22.3)交易类型:指明该跨链交易的性质;
23.4)交易序列号:交易序列号为跨链交易的索引;
24.5)跨链交易发起用户id:即在平行链上发布跨链事件的客户端的id,用于权限验证;
25.6)跨链交易时间戳:指明跨链交易发生的时间;
26.7)跨链交易有效期:表明跨链交易的有效时长;
27.8)跨链交易证明:跨链交易的合法性证明,用于中继链的验证;
28.9)负载数据:跨链交易的具体内容;
29.10)跨链路由签名:用于验证该跨链交易的来源可靠和完整性。
30.优选的,所述细粒度访问权限控制策略将由客户端向平行链的跨链访问权限管理智能合约注册,跨链路由监听此合约,并通过跨链路由的注册和更新机制将访问控制策略发布到中继链;访问权限控制策略包括以下信息:授权访问链、资源路径、授权操作、授权用户;其中:
31.a)授权访问链:申请资源访问的区块链,即跨链交易的来源链;
32.b)资源路径:指向访问资源;
33.c)授权操作:开放的资源访问的权限;
34.d)授权用户:为一个机构,或某个具体用户,同时支持通配符。
35.另一方面,本发明还提供一种基于可信执行环境的跨链方法,包括平行链向中继链注册,平行链的客户端更新细粒度访问权限控制策略,平行链的客户端发起跨链交易访问另一个平行链的资源三部分;
36.所述平行链向中继链注册的具体方法为:
37.步骤1:跨链路由向中继链发起注册请求;
38.步骤2:中继链节点收到跨链请求后,生成远程证明并发送给跨链路由;
39.步骤3:中继链节点开始执行dh密钥交换算法并将算法生成的公钥发送给跨链路由;
40.步骤4:跨链路由收到中继链节点的远程证明和dh密钥交换的信息,首先验证远程证明的正确性,若正确则执行dh密钥交换算法并将生成的公钥发送给中继链节点,若错误则中断注册;
41.步骤5:跨链路由和中继链节点根据步骤3和步骤4交换的信息,用dh密钥交换算法生成一个相同的通信密钥,并且其它恶意实体无法从公开的信息中获取此通信密钥;
42.步骤6:跨链路由作为平行链的全节点同步区块链数据;
43.步骤7:跨链路由从区块链数据中获取用户注册的跨链访问控制权限表;
44.步骤8:跨链路由用通信密钥加密跨链访问控制权限表,并将平行链信息、跨链路由信息以及加密的跨链访问控制权限表发送给中继链节点进行注册;
45.步骤9:中继链节点注册跨链路由发送的信息并生成一个远程证明返回给跨链路由,跨链路由验证远程证明的正确性,如果验证通过则完成平行链的注册,若验证失败则注册失败;
46.所述平行链的客户端更新权限控制策略的具体方法为:
47.步骤s1:客户端首先调用平行链上部署的跨链访问权限管理智能合约注册自己的访问控制策略;
48.步骤s2:平行链发布一个跨链访问权限管理注册事件,该事件被跨链路由监听;
49.步骤s3:跨链路由监听到跨链访问权限管理注册事件后,用通信密钥加密访问策略;
50.步骤s4:跨链路由发起一个更新访问控制权限表的请求,并将加密的访问策略发送给中继链节点;
51.步骤s5:中继链节点更新相应的访问控制权限表,并生成一个远程证明;
52.步骤s6:中继链节点发送远程证明给跨链路由;
53.步骤s7:跨链路由验证远程证明的正确性,如果验证通过则访问权限控制策略更新完成,否则访问权限控制策略更新失败;
54.所述平行链的客户端发起跨链交易访问另一个平行链的资源的具体方法为:
55.步骤c1:客户端调用平行链上部署的跨链智能合约;
56.步骤c2:平行链发布一个跨链事件,该事件被跨链路由监听;
57.步骤c3:跨链路由根据跨链事件中给出的信息,用跨链消息传输协议打包成跨链交易并用通信密钥加密传输给中继链节点;
58.步骤c4:中继链节点在可信执行环境中解密该跨链交易,并验证跨链路由的签名以确保数据来源可信以及未被篡改;如果数据来源正确且未被篡改,则验证其访问权限,否则丢弃该跨链交易;
59.步骤c5:访问权限验证通过则根据跨链交易中目的链字段找到相应的目的跨链路由,并用相应的通信密钥加密然后转发给目的跨链路由,否则丢弃该跨链交易;
60.步骤c6:目的跨链路由执行该跨链交易;
61.步骤c7:跨链交易在目的链上经过共识算法确认后,目的跨链路由获取执行结果和交易执行证明;
62.步骤c8:目的跨链路由将执行结果和交易执行证明用跨链消息传输协议打包成跨链交易并用通信密钥加密发送给中继链;
63.步骤c9:中继链节点在可信执行环境中解密该跨链交易,并验证目的跨链路由的签名以确保数据来源可信以及未被篡改;如果数据来源正确且未被篡改,则验证其访问权限,否则丢弃该跨链交易;
64.步骤c10:访问权限验证通过则根据跨链交易中目的链字段找到相应的跨链路由,并用相应的通信密钥加密然后转发给该跨链路由,否则丢弃该跨链交易;
65.步骤c11:跨链路由执行该跨链交易,待交易经过平行链共识算法确认并上链后即完成交易;
66.步骤c12:客户端监听平行链相应合约,观察到变量状态的改变得到执行结果。
67.采用上述技术方案所产生的有益效果在于:本发明提供的一种基于可信执行环境的跨链系统及方法,可以灵活注册平行链和跨链路由信息,满足特定区块链的跨链交互需求,同时细粒度访问控制策略可撤销、可更新,具有较强的灵活性与可扩展性;此外利用可信执行环境和加密算法来保障跨链数据的隐私,提高了区块链跨链系统的数据隐私安全。
附图说明
68.图1为本发明实施例提供的一种基于可信执行环境的跨链系统的架构示意图;
69.图2为本发明实施例提供的平行链注册的流程图;
70.图3为本发明实施例提供的更新细粒度访问权限控制策略的流程图;
71.图4为本发明实施例提供的是区块链跨链数据交互的流程图。
具体实施方式
72.下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施
例用于说明本发明,但不用来限制本发明的范围。
73.本实施例中,一种基于可信执行环境的跨链系统,如图1所示,包括多个客户端、多个平行链、多个跨链路由、中继链;
74.所述多个客户端为跨链交易的实际发起者;当某一客户端需要进行跨链交互时,该客户端通过所属平行链的跨链合约发布一个跨链事件;
75.所述多个平行链为多个独立运行的区块链,每个区块链负责具体的业务,通过中继链来进行跨链互操作;只有在中继链上注册过的平行链才能进行跨链交互;
76.所述多个跨链路由:为平行链上的全节点,监听平行链上的跨链事件;当跨链路由监听到跨链事件,将根据跨链消息传输协议构造跨链交易并发送给中继链;当跨链路由收到中继链转发的跨链交易,将验证并执行该跨链交易,待该交易被确认之后,将根据跨链消息传输协议构造带有交易执行结果和证明的跨链交易并发送给中继链;每条平行链对应一个跨链路由;
77.所述跨链路由为可信节点;当平行链加入跨链平台时,由跨链路由向中继链注册相应的验证交易合法性规则、访问权限控制规则以及跨链路由证书;跨链路由启动时,将与中继链节点沟通一个通信密钥,用于后续的跨链交易加密传输;跨链路由监听到所属平行链的客户端发布的跨链事件后,将根据跨链事件中提供的信息,和跨链消息传输协议,生成交易证明,构造跨链交易,并通过加密通道传输给中继链节点。
78.所述中继链是由多个中继链节点共同维护的一个分布式账本,用于进行平行链管理、跨链交易的可信验证与访问权限控制,同时记录各平行链交易状态以及转发跨链交易,中继链上执行跨链消息传输协议;当中继链节点收到一个来自跨链路由的跨链交易时,将根据跨链消息传输协议和平行链注册的细粒度访问权限控制策略来验证其合法性和访问权限,在跨链交易经过中继链共识算法确认并上链后,根据跨链消息传输协议转发给相应目的链的跨链路由;中继链节点与跨链路由之间通过执行一个可信密钥分发方案来建立安全的加密通信通道;
79.所述中继链节点的平台设备配置有可信执行环境,中继链节点之间通过远程认证互相确认身份;中继链节点将在可信执行环境中解密跨链交易并进行访问权限确认以保护跨链数据的隐私;如果验证通过则将跨链交易重新加密并根据交易的目的链字段通过点对点加密通道转发给相应的跨链路由。中继链节点在收到一个跨链交易时,需要验证跨链路由的签名以防消息被篡改,然后在可信执行环境中用相应的通信密钥解密,并验证跨链交易访问的资源是否具有权限。本实施例中,中继链节点的可信执行环境为intelsgx,采用intelsgx的远程证实来证明代码在平台上正确加载,并防止机密数据被恶意攻击者获取。
80.所述跨链消息传输协议为一个通用的跨链消息传输协议,用于在异构的平行链之间统一跨链消息传输格式,并用于验证跨链交易的四种信息,一是跨链信息的真实性证明,即该跨链信息是否确实存在于来源链上,是否确实是来源链发送给目的链的;二是跨链交易的有效性证明,即来自来源链的交易到达目的链时的状态仍然是有效的;三是授权证明,必须验证该交易请求的资源是对来源链开放的;四是跨链交易未经过篡改;
81.所述跨链消息传输协议包括以下字段:来源链id、目的链id、交易类型、交易序列号、跨链交易发起用户id、跨链交易时间戳、跨链交易有效期、跨链路由签名、跨链交易证明、负载数据信息,其中各字段含义和作用为:
82.来源链id:来源链为跨链交易发起方的平行链,每个平行链有一个唯一的标识;
83.目的链id:目的链为跨链交易接收方的平行链;
84.交易类型:指明该跨链交易的性质,例如为平行链注册交易、数据请求交易或数据响应交易;
85.交易序列号:交易序列号为跨链交易的索引;
86.跨链交易发起用户id:即在平行链上发布跨链事件的客户端的id,用于权限验证;
87.跨链交易时间戳:指明跨链交易发生的时间;
88.跨链交易有效期:表明跨链交易的有效时长;
89.跨链交易证明:跨链交易的合法性证明,用于中继链的验证;
90.负载数据:跨链交易的具体内容,例如注册信息、请求数据信息、数据相应信息等;
91.跨链路由签名:用于验证该跨链交易的来源可靠和完整性。
92.所述可信密钥分发方案是一种在中继链节点和跨链路由之间利用椭圆曲线加密算法和dh密钥交换算法建立点对点加密通道的方案;该方案在中继链节点和跨链路由之间利用数字签名和对称加密算法,生成一个共同密钥,并利用此密钥来传输跨链交易数据,实现对跨链消息进行签名和加密保护;所述细粒度访问权限控制策略是指中继链将执行来自平行链注册的访问权限管理条例来对跨链交易进行验证,确保跨链业务的数据安全。
93.细粒度访问权限控制策略将由客户端向平行链的跨链访问权限管理智能合约注册,跨链路由监听此合约,并通过跨链路由的注册和更新机制将访问控制策略发布到中继链;访问权限控制策略包括以下信息:授权访问链、资源路径、授权操作、授权用户;进而将资源开放权限细分到合约、函数,将资源权限授予对象细分到每个平行链的用户;其中:
94.授权访问链:申请资源访问的区块链,即跨链交易的来源链;
95.资源路径:指向访问资源,例如为一个合约的函数;
96.授权操作:开放的资源访问的权限,例如读、写、执行等;
97.授权用户:为一个机构,或某个具体用户,同时支持通配符。
98.本实施例中,一种基于可信执行环境的跨链方法,以平行链a向中继链注册,平行链a的客户端a更新细粒度访问权限控制策略,平行链a的客户端a发起跨链交易访问另一个平行链b的资源三部分为例说明基于可信执行环境的跨链方法;
99.一、平行链向中继链注册如图2所示,具体方法为:
100.步骤1:跨链路由a向中继链发起注册请求;
101.步骤2:中继链节点收到跨链请求后,生成远程证明并发送给跨链路由;
102.步骤3:中继链节点开始执行dh密钥交换算法并将算法生成的公钥发送给跨链路由a;
103.步骤4:跨链路由a收到中继链节点的远程证明和dh密钥交换的信息,首先验证远程证明的正确性,若正确则执行dh密钥交换算法并将生成的公钥发送给中继链节点,若错误则中断注册;
104.步骤5:跨链路由a和中继链节点根据步骤3和步骤4交换的信息,用dh密钥交换算法生成一个相同的通信密钥,并且其它恶意实体无法从公开的信息中获取此通信密钥;
105.步骤6:跨链路由a作为平行链a的全节点同步区块链数据;
106.步骤7:跨链路由a从区块链数据中获取用户注册的跨链访问控制权限表;
107.步骤8:跨链路由a用通信密钥加密跨链访问控制权限表,并将平行链信息(链id)、跨链路由a信息(证书、ip等)以及加密的跨链访问控制权限表发送给中继链节点进行注册;
108.步骤9:中继链节点注册跨链路由a发送的信息并生成一个远程证明返回给跨链路由a,跨链路由验证远程证明的正确性,如果验证通过则完成平行链的注册,若验证失败则注册失败;
109.二、平行链的客户端更新权限控制策略如图3所示,具体方法为:
110.步骤s1:客户端a首先调用平行链a上部署的跨链访问权限管理智能合约注册自己的访问控制策略;
111.步骤s2:平行链a发布一个跨链访问权限管理注册事件,该事件被跨链路由a监听;
112.步骤s3:跨链路由a监听到跨链访问权限管理注册事件后,用通信密钥加密访问策略;
113.步骤s4:跨链路由a发起一个更新访问控制权限表的请求,并将加密的访问策略发送给中继链节点;
114.步骤s5:中继链节点更新相应的访问控制权限表,并生成一个远程证明;
115.步骤s6:中继链节点发送远程证明给跨链路由a;
116.步骤s7:跨链路由a验证远程证明的正确性,如果验证通过则访问权限控制策略更新完成,否则访问权限控制策略更新失败;
117.三、平行链的客户端发起跨链交易访问另一个平行链的资源(即区块链跨链数据交互)如图4所示,的具体方法为:
118.步骤c1:客户端a调用平行链a上部署的跨链智能合约;
119.步骤c2:平行链a发布一个跨链事件,该事件被跨链路由a监听;
120.步骤c3:跨链路由a根据跨链事件中给出的信息,用跨链消息传输协议打包成跨链交易并用通信密钥加密传输给中继链节点;
121.步骤c4:中继链节点在可信执行环境中解密该跨链交易,并验证跨链路由a的签名以确保数据来源可信以及未被篡改;如果数据来源正确且未被篡改,则验证其访问权限,否则丢弃该跨链交易;
122.步骤c5:访问权限验证通过则根据跨链交易中目的链(即平行链b)字段找到相应的目的跨链路由b,并用相应的通信密钥加密然后转发给目的跨链路由,否则丢弃该跨链交易;
123.步骤c6:目的跨链路由b执行该跨链交易;
124.步骤c7:跨链交易在目的链上经过共识算法确认后,目的跨链路由b获取执行结果和交易执行证明;
125.步骤c8:目的跨链路由b将执行结果和交易执行证明用跨链消息传输协议打包成跨链交易并用通信密钥加密发送给中继链;
126.步骤c9:中继链节点在可信执行环境中解密该跨链交易,并验证目的跨链路由b的签名以确保数据来源可信以及未被篡改;如果数据来源正确且未被篡改,则验证其访问权限,否则丢弃该跨链交易;
127.步骤c10:访问权限验证通过则根据跨链交易中目的链(平行链a)字段找到相应的跨链路由a,并用相应的通信密钥加密然后转发给该跨链路由a,否则丢弃该跨链交易;
128.步骤c11:跨链路由a执行该跨链交易,待交易经过平行链a共识算法确认并上链后即完成交易;
129.步骤c12:客户端监听平行链a相应合约,观察到变量状态的改变得到执行结果。
130.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1