一种实现联盟链跨链通信的方法、装置及系统与流程

文档序号:24033067发布日期:2021-02-23 13:55阅读:209来源:国知局
一种实现联盟链跨链通信的方法、装置及系统与流程

[0001]
本申请涉及区块链技术领域,具体涉及一种实现联盟链跨链通信的方法、装置及系统。


背景技术:

[0002]
基于区块链技术具有的去中心化、数据安全不可篡改以及可追溯的特性,区块链技术在各种领域,比如,数字货币、支付结算、产品溯源以及身份认证,得到较为广泛的应用。
[0003]
为了适应多种应用场景的需要,区块链之间需要进行信息交互。然而,在各个领域中建立的区块链均是独立封闭的,区块链之间难以直接进行信息交互,用于实现区块链之间通信的区块链跨链技术应运而生。目前,区块链跨链技术存在着跨链场景单一等问题,难以满足区块链之间的信息交互的需要。


技术实现要素:

[0004]
有鉴于此,本申请实施例提供一种实现联盟链跨链通信的方法、装置及系统,能够实现简单并且安全性较高的联盟链跨链通信。
[0005]
为解决上述问题,本申请实施例提供的技术方案如下:
[0006]
第一方面,提供一种实现联盟链跨链通信的方法,所述方法包括:
[0007]
中继链接收第一联盟链发送的第一跨链通信请求,所述第一跨链通信请求包括第一通信数据报以及所述第一联盟链的数字证书,所述第一联盟链的数字证书是所述中继链发送给所述第一联盟链的;
[0008]
所述中继链对所述第一联盟链的数字证书进行验证;
[0009]
所述中继链在所述第一联盟链的数字证书验证通过后,对所述第一通信数据报进行验证;
[0010]
所述中继链在所述第一通信数据报验证通过后,解析所述第一通信数据报获得第一交易数据,调用所述第一联盟链的查询接口查询所述第一交易数据对应的交易是否存在;
[0011]
所述中继链在确定所述第一交易数据对应的交易存在后,将所述第一通信数据报在所述中继链进行上链操作。
[0012]
在一种可能的实现方式中,所述方法还包括:
[0013]
所述中继链对第二通信数据报进行签名,生成签名数据;
[0014]
所述中继链向第二联盟链发送第二跨链通信请求,所述第二跨链通信请求包括所述第二通信数据报以及所述签名数据,以使所述第二联盟链根据所述第二通信数据报以及所述签名数据对所述签名数据进行验证,在所述签名数据验证通过后,解析所述第二通信数据报获得第二交易数据,调用所述中继链的查询接口查询所述第二交易数据对应的交易是否存在,在确定所述第二交易数据对应的交易存在后,将所述第二通信数据报在所述第
二联盟链进行上链操作。
[0015]
在一种可能的实现方式中,所述方法还包括:
[0016]
所述中继链接收所述第一联盟链发送的验证请求,所述验证请求包括所述第一联盟链的公钥、所述第一联盟链的组织信息以及所述第一联盟链的身份信息;
[0017]
所述中继链向所述第一联盟链发送随机数,以使所述第一联盟链在接收到所述随机数后将所述随机数发送给所述中继链;
[0018]
如果向所述第一联盟链发送的随机数与从所述第一联盟链接收的随机数一致,所述中继链向所述第一联盟链发送所述第一联盟链的数字证书。
[0019]
在一种可能的实现方式中,所述第一联盟链的数字证书包括明文信息以及签名信息,所述明文信息包括所述第一联盟链的公钥、所述第一联盟链的组织信息、所述第一联盟链的身份信息、所述中继链的认证信息,所述签名信息为对所述明文信息提取哈希摘要后使用所述中继链的私钥进行加密后生成的;
[0020]
所述中继链对所述第一联盟链的数字证书进行验证,包括:
[0021]
所述中继链对所述第一联盟链的数字证书中的明文信息提取哈希摘要,生成第一待验证信息;
[0022]
所述中继链使用所述中继链的私钥对所述第一联盟链的数字证书中的签名信息进行解密,生成第二待验证信息;
[0023]
如果所述第一待验证信息与所述第二待验证信息一致,所述中继链确定所述第一联盟链的数字证书验证通过。
[0024]
在一种可能的实现方式中,所述第一通信数据报包括至少一个通信公钥、加密交易数据、加密类型以及交易哈希值;
[0025]
所述中继链在所述第一联盟链的数字证书验证通过后,对所述第一通信数据报进行验证,包括:
[0026]
所述中继链在所述第一联盟链的数字证书验证通过后,使用所述第一通信数据报中的至少一个通信公钥对所述第一通信数据报中的加密交易数据进行解密生成第一交易数据,根据所述加密类型计算生成所述第一交易数据的待验证交易哈希值;
[0027]
如果所述第一交易数据的待验证交易哈希值与所述第一通信数据报包括的交易哈希值一致,所述中继链确定所述第一通信数据报验证通过。
[0028]
第二方面,提供一种实现联盟链跨链通信的方法,所述方法包括:
[0029]
联盟链向中继链发送第一跨链通信请求,所述第一跨链通信请求包括第一通信数据报以及所述联盟链的数字证书,所述联盟链的数字证书是所述中继链发送的,以使所述中继链对所述联盟链的数字证书进行验证,在对所述联盟链的数字证书验证通过后,对所述第一通信数据报进行验证;
[0030]
所述联盟链响应于所述中继链在对所述第一通信数据报验证通过后对查询接口的调用,根据从所述中继链获取的第一交易数据查询所述第一交易数据对应的交易是否存在,并向所述中继链反馈查询结果,以使所述中继链在确定所述第一交易数据对应的交易存在后,将所述第一通信数据报在所述中继链进行上链操作,所述第一交易数据是所述中继链解析所述第一通信数据报获得的。
[0031]
在一种可能的实现方式中,所述方法还包括:
[0032]
所述联盟链接收所述中继链发送的第二跨链通信请求,所述第二跨链通信请求包括第二通信数据报以及签名数据,所述签名数据是所述中继链对第二通信数据报进行签名生成的;
[0033]
所述联盟链根据所述第二通信数据报以及所述签名数据对所述签名数据进行验证;
[0034]
所述联盟链在所述签名数据验证通过后,解析所述第二通信数据报获得第二交易数据,调用所述中继链的查询接口查询所述第二交易数据对应的交易是否存在;
[0035]
所述联盟链在确定所述第二交易数据对应的交易存在后,将所述第二通信数据报在所述联盟链进行上链操作。
[0036]
在一种可能的实现方式中,所述方法还包括:
[0037]
所述联盟链向所述中继链发送验证请求,所述验证请求包括所述联盟链的公钥、所述联盟链的组织信息以及所述联盟链的身份信息;
[0038]
所述联盟链接收所述中继链发送的随机数,并将所述随机数发送给所述中继链;
[0039]
接收所述中继链在确定向所述联盟链发送的随机数与从所述联盟链接收的随机数一致后发送的所述联盟链的数字证书,所述联盟链的数字证书包括明文信息以及签名信息,所述明文信息包括所述联盟链的公钥、所述联盟链的组织信息、所述联盟链的身份信息、所述中继链的认证信息,所述签名信息为对所述明文信息提取哈希摘要后使用所述中继链的私钥进行加密后生成的。
[0040]
第三方面,提供一种实现联盟链跨链通信的装置,所述装置包括:
[0041]
第一接收单元,用于中继链接收第一联盟链发送的第一跨链通信请求,所述第一跨链通信请求包括第一通信数据报以及所述第一联盟链的数字证书,所述第一联盟链的数字证书是所述中继链发送给所述第一联盟链的;
[0042]
第一验证单元,用于所述中继链对所述第一联盟链的数字证书进行验证;
[0043]
第二验证单元,用于所述中继链在所述第一联盟链的数字证书验证通过后,对所述第一通信数据报进行验证;
[0044]
第一查询单元,用于所述中继链在所述第一通信数据报验证通过后,解析所述第一通信数据报获得第一交易数据,调用所述第一联盟链的查询接口查询所述第一交易数据对应的交易是否存在;
[0045]
第一上链单元,用于所述中继链在确定所述第一交易数据对应的交易存在后,将所述第一通信数据报在所述中继链进行上链操作。
[0046]
第四方面,提供一种实现联盟链跨链通信的装置,所述装置包括:
[0047]
第四发送单元,用于联盟链向中继链发送第一跨链通信请求,所述第一跨链通信请求包括第一通信数据报以及所述联盟链的数字证书,所述联盟链的数字证书是所述中继链发送的,以使所述中继链对所述联盟链的数字证书进行验证,在对所述联盟链的数字证书验证通过后,对所述第一通信数据报进行验证;
[0048]
第二查询单元,用于所述联盟链响应于所述中继链在对所述第一通信数据报验证通过后对查询接口的调用,根据从所述中继链获取的第一交易数据查询所述第一交易数据对应的交易是否存在,并向所述中继链反馈查询结果,以使所述中继链在确定所述第一交易数据对应的交易存在后,将所述第一通信数据报在所述中继链进行上链操作,所述第一
交易数据是所述中继链解析所述第一通信数据报获得的。
[0049]
第五方面,提供一种实现联盟链跨链通信的系统,所述系统包括中继链和第一联盟链;
[0050]
所述第一联盟链,用于向所述中继链发送第一跨链通信请求,所述第一跨链通信请求包括第一通信数据报以及所述第一联盟链的数字证书,所述第一联盟链的数字证书是所述中继链发送的;
[0051]
所述中继链,用于接收所述第一联盟链发送的所述第一跨链通信请求;对所述第一联盟链的数字证书进行验证;在所述第一联盟链的数字证书验证通过后,对所述第一通信数据报进行验证;在所述第一通信数据报验证通过后,解析所述第一通信数据报获得第一交易数据,调用所述第一联盟链的查询接口查询所述第一交易数据对应的交易是否存在;
[0052]
所述第一联盟链,还用于响应于所述中继链在对所述第一通信数据报验证通过后对查询接口的调用,根据从所述中继链获取的第一交易数据查询所述第一交易数据对应的交易是否存在,并向所述中继链反馈查询结果;
[0053]
所述中继链,还用于在确定所述第一交易数据对应的交易存在后,将所述第一通信数据报在所述中继链进行上链操作。
[0054]
第六方面,提供一种实现联盟链跨链通信的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述第一方面提供的实现联盟链跨链通信的方法、或者上述第二方面提供的实现联盟链跨链通信的方法。
[0055]
第七方面,提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述第一方面提供的实现联盟链跨链通信的方法、或者上述第二方面提供的实现联盟链跨链通信的方法。
[0056]
由此可见,本申请实施例具有如下有益效果:
[0057]
本申请实施例提供的一种实现联盟链跨链通信的方法、装置及系统,该方法包括:中继链接收第一联盟链发送的包括第一通信数据报以及第一联盟链的数字证书的第一跨链通信请求,中继链对第一联盟链的数字证书进行验证。在数字证书验证通过后对第一通信数据报进行验证,验证通过后解析第一通信数据报获得第一交易数据,调用第一联盟链的查询接口查询第一交易数据对应的交易是否存在。在中继链确定第一交易数据对应的交易存在后,将第一通信数据报在中继链进行上链操作。通过将验证后的第一通信数据报在中继链上进行上链操作,可以实现中继链对于第一通信数据报的储存,便于中继链将储存的第一通信数据报发送至需要通信的联盟链,实现了第一通信数据报的异步传输。并且通过验证确保通信数据报的安全,能够保护跨链传输的数据的安全。本申请实施例提供的一种实现联盟链跨链通信的方法能够满足联盟链之间的信息交互的需要,能够实现如资产转移、数据交换以及信息交互等多种场景下的跨链通信。
附图说明
[0058]
图1为一种跨链通信的示意图;
[0059]
图2为本申请实施例提供的一种实现联盟链跨链通信的方法的流程图;
[0060]
图3为本申请实施例提供的一种通信数据报格式的示意图;
[0061]
图4为本申请实施例提供的一种实现联盟链跨链通信的方法的流程图;
[0062]
图5为本申请实施例提供的一种联盟链与中继链进行跨链通信的示意图;
[0063]
图6为本申请实施例提供的另一种联盟链与中继链进行跨链通信的示意图;
[0064]
图7为本申请实施例提供的又一种联盟链与中继链进行跨链通信的示意图;
[0065]
图8为本申请实施例提供的一种实现联盟链跨链通信装置的结构示意图;
[0066]
图9为本申请实施例提供的另一种实现联盟链跨链通信装置的结构示意图;
[0067]
图10为本申请实施例提供的一种实现联盟链跨链通信系统的结构示意图。
具体实施方式
[0068]
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
[0069]
发明人在对传统的区块链跨链技术进行研究后发现,现有的区域块跨链技术大多采用侧链/中继模式。侧链/中继模式将原链的交易信息在中继链上进行验证,起到跨链交易的验证和路由的作用。目前,侧链/中继模式主要应用于资产交易此类需要实现交易信息及时同步的场景,应用的跨链场景较为单一。
[0070]
以cosmos中继链为例,对现有的侧链/中继模式进行介绍,参见图1所示,该图为一种跨链通信的示意图。首先,链a与链b需要将各自的创世区块发送至对方,进行相互注册。链a获取跨链交易信息,并根据跨链交易信息执行对应的资产处理,再将跨链交易信息写入egress中,以便中继链从egress中查询跨链交易信息。中继链从egress中获取跨链交易信息,生成对应的区块头信息以及跨链交易包,将区块头信息以及跨链交易包发送至链b中,并与链a同步。链b接收到跨链交易包和区块头信息后,利用区块头信息以及注册信息进行链a的身份验证,再对跨链交易包进行验证,当验证通过后开始执行跨链交易包对应的交易。由此可知,cosmos中继链仅起到信息的同步传递,仅针对需要信息实时同步的应用场景,对应的应用场景较为单一,难以满足区块链之间的信息交互的需要。
[0071]
基于此,本申请实施例提供一种实现联盟链跨链通信的方法,中继链接收第一联盟链发送的包括第一通信数据报以及第一联盟链的数字证书的第一跨链通信请求,中继链对第一联盟链的数字证书进行验证。在数字证书验证通过后对第一通信数据报进行验证,验证通过后解析第一通信数据报获得第一交易数据,调用第一联盟链的查询接口查询第一交易数据对应的交易是否存在。在中继链确定第一交易数据对应的交易存在后,将第一通信数据报在中继链进行上链操作。通过将验证后的第一通信数据报在中继链上进行上链操作,可以实现中继链对于第一通信数据报的储存,便于中继链将储存的第一通信数据报发送至需要通信的联盟链,实现了第一通信数据报的异步传输。并且通过验证确保通信数据报的安全,能够保护跨链传输的数据的安全。从而能够满足联盟链之间的信息交互的需要,能够实现如资产转移、数据交换以及信息交互等多种场景下的跨链通信。
[0072]
为了便于理解本申请,下面结合附图对本申请实施例提供的一种实现联盟链跨链通信的方法进行说明。
[0073]
参见图2所示,该图为本申请实施例提供的一种实现联盟链跨链通信的方法的流程图,该方法包括步骤s201-s205:
[0074]
s201:中继链接收第一联盟链发送的第一跨链通信请求,第一跨链通信请求包括第一通信数据报以及第一联盟链的数字证书,第一联盟链的数字证书是中继链发送给第一联盟链的。
[0075]
中继链可以与预先注册通过的联盟链进行跨链通信,注册通过的联盟链具有中继链发送的数字证书,数字证书用于证明联盟链的身份。
[0076]
当第一联盟链需要进行跨链通信时,向中继链发送第一跨链通信请求。中继链接收第一联盟链发送的第一跨链通信请求,第一跨链通信请求中包括第一通信数据报以及第一联盟链的数字证书。
[0077]
第一跨链通信请求中包括的第一联盟链的数字证书是第一联盟链在中继链注册成功后,由中继链发送至第一联盟链的。第一跨链通信请求中包括的第一通信数据报中具有跨链通信所需的相关数据。中继链通过第一通信数据报可以确定通信的双方以及需要通信传输的数据。
[0078]
s202:中继链对第一联盟链的数字证书进行验证。
[0079]
第一联盟链的数字证书可以用于表示第一联盟链的身份,中继链通过对第一联盟链的数字证书进行验证,可以确认第一联盟链是否是注册过的联盟链。
[0080]
在一种可能的实现方式中,中继链可以利用中继链的私钥对数字证书进行验证。本申请实施例提供了一种中继链对第一联盟链的数字证书进行验证的具体实施方式,请参见下文。
[0081]
s203:中继链在第一联盟链的数字证书验证通过后,对第一通信数据报进行验证。
[0082]
在对第一联盟链的数字证书验证通过后,可以确定第一联盟链为注册过的联盟链,确定第一联盟链的身份可信。中继链进一步对第一通信数据报进行验证,以确认第一通信数据报中包括的信息正确。
[0083]
在一种可能的实现方式中,中继链可以利用第一通信数据报中具有的公钥对第一通信数据报进行验证。本申请实施例提供了一种中继链对第一通信数据报进行验证的具体实施方式,请参见下文。
[0084]
s204:中继链在第一通信数据报验证通过后,解析第一通信数据报获得第一交易数据,调用第一联盟链的查询接口查询第一交易数据对应的交易是否存在。
[0085]
中继链在对第一通信数据报验证通过后,可以确认第一通信数据报可信。进一步对第一通信数据报进行解析,得到第一通信数据报中具有的第一交易数据。
[0086]
第一交易数据为第一联盟链根据交易过程得到的。第一联盟链在进行交易之后,将第一交易数据进行上链处理,对交易进行记录,实现交易的可追溯。
[0087]
中继链在得到第一交易数据后需要确认第一联盟链是否进行对应的交易。在一种可能的实现方式中,可以设置第一联盟链的查询接口,以便中继链调用第一联盟链的查询接口进行信息查询。中继链调用第一联盟链的查询接口,在第一联盟链上对第一交易数据所对应的交易进行查询。若在第一联盟链上存在对应的第一交易数据,则说明第一联盟链执行完成对应的交易,中继链获取到的第一交易数据可信任。
[0088]
s205:中继链在确定第一交易数据对应的交易存在后,将第一通信数据报在中继链进行上链操作。
[0089]
中继链在确定第一联盟链中具有与第一交易数据对应的交易后,对第一通信数据
报进行上链操作,将第一通信数据报储存至中继链中,以便后续可以将第一通信数据报发送至需要进行通信的联盟链中,实现联盟链的跨链通信。
[0090]
基于上述内容可知,中继链在对接收到的数字证书和第一通信数据报进行验证后,再对得到的第一交易数据进行验证,可以确定第一联盟链的身份,并且确定第一联盟链执行对应的交易。在验证完成后将第一通信数据报进行上链操作,可以实现中继链对第一通信数据报的储存,后续中继链可以将第一通信数据报发送至需要通信的联盟链中,实现异步的跨链通信,能够适用于多种场景。通过中继链对第一通信数据报的上链,还可以实现对第一通信数据报进行追溯,提高跨链通信的安全性。
[0091]
中继链在对得到的通信数据报进行上链操作之后,可以根据通信的需要将通信数据报发送至联盟链,实现联盟链之间的跨链通信。
[0092]
进一步的,本申请实施例提供了中继链向第二联盟链发送第二通信数据报的方法,除上述s201-s205以外,该方法还包括以下两个步骤:
[0093]
a1:中继链对第二通信数据报进行签名,生成签名数据。
[0094]
首先需要说明的是,第二通信数据报是中继链向第二联盟链发送的用于跨链通信的数据报,第二通信数据报中具有向第二联盟链发送的跨链通信的相关信息。第二通信数据报可以是储存在中继链中的通信数据报。第二通信数据报可以为与第一通信数据报相同的通信数据报,也可以为与第一通信数据报不同的通信数据报。当第二通信数据报与第一通信数据报相同时,中继链是将接收到的第一联盟链发送的第一通信数据报发送至第二联盟链。当第二通信数据报与第一通信数据报不相同时,中继链是将接收到的其他的通信数据报发送至第二联盟链。
[0095]
另外,第二联盟链可以为第一联盟链,也可以为除第一联盟链以外的其他的联盟链。当第二联盟链与第一联盟链相同时,可以实现同一联盟链的同一通信数据报或者不同的通信数据报通过中继链进行流转。当第二联盟链与第一联盟链不同时,可以实现中继链向第一联盟链以外的其他联盟链发送通信数据报的过程。
[0096]
为了保证第二通信数据报是可信任的,中继链对第二通信数据报进行签名,生成签名数据。签名数据可以是根据中继链的私钥和第二通信数据报生成的。
[0097]
a2:中继链向第二联盟链发送第二跨链通信请求,第二跨链通信请求包括第二通信数据报以及签名数据,以使第二联盟链根据第二通信数据报以及签名数据对签名数据进行验证,在签名数据验证通过后,解析第二通信数据报获得第二交易数据,调用中继链的查询接口查询第二交易数据对应的交易是否存在,在确定第二交易数据对应的交易存在后,将第二通信数据报在第二联盟链进行上链操作。
[0098]
中继链向第二联盟链发送第二跨链通信请求,其中,第二跨链通信请求中包括第二通信数据报和签名数据。第二联盟链可以利用第二通信数据报对签名数据进行验证,确定第二跨链通信请求的来源。在一种可能的实现方式中,若签名数据是中继链利用私钥和第二通信数据报生成的,第二联盟链可以利用中继链的公钥和第二通信数据报进行签名数据的验证,从而确定第二跨链通信请求的可信度。
[0099]
在签名数据验证通过后,第二联盟链对第二通信数据报进行解析,得到第二交易数据。在当第二通信数据报与第一通信数据报相同时,第二交易数据与第一交易数据相同。
[0100]
在一种可能的实现方式中,可以设置中继链的查询接口,用于联盟链条用查询接
口进行相关信息的查询。第二联盟链进一步调用中继链的查询接口,在中继链中查询第二交易数据对应的交易是否存在。若第二交易数据对应的第二通信数据报经过中继链的上链操作,则第二联盟链可以通过中继链的查询接口查询得到中继链上与第二交易数据对应的交易。
[0101]
在通过交易查询后,第二联盟链可以确定第二通信数据报的可靠性,对第二通信数据报进行上链操作,实现联盟链之间的跨链通信。
[0102]
基于上述内容可知,中继链向第二联盟链发送第二跨链通信请求,第二联盟链利用第二跨链通信请求中的第二通信数据报以及签名数据,实现对于签名数据以及第二通信数据报中第二交易数据对应的交易的验证,确保第二通信数据报的可靠性以及跨链通信的安全性。在验证通过后,对第二通信数据报进行上链操作,实现联盟链之间的异步跨链通信,从而能够满足资产转移、信息交互、数据交换等多种场景下的跨链通信。
[0103]
在建立中继链之后,需要将通过中继链进行跨链通信的联盟链进行注册,以确保与中继链进行通信数据报传输的联盟链的身份可靠。
[0104]
在一种可能的实现方式中,本申请实施例提供一种实现联盟链跨链通信的方法,除上述s201-s205以外,该方法还包括以下三个步骤:
[0105]
b1:中继链接收第一联盟链发送的验证请求,验证请求包括第一联盟链的公钥、第一联盟链的组织信息以及第一联盟链的身份信息。
[0106]
在第一联盟链向中继链发送第一跨链通信请求实现跨链通信之前,第一联盟链需要先进行注册。
[0107]
中继链接收第一联盟链发送的验证请求,验证请求包括第一联盟链的公钥、第一联盟链的组织信息以及第一联盟链的身份信息。其中,第一联盟链的公钥为第一联盟链的公共密钥,第一联盟链的组织信息为第一联盟链中包括的各个组织的组织信息,第一联盟链的身份信息为第一联盟链的个人信息,包括域名等信息。
[0108]
b2:中继链向第一联盟链发送随机数,以使第一联盟链在接收到随机数后将随机数发送给中继链。
[0109]
中继链向第一联盟链发送随机数,第一联盟链在接收到随机数后将随机数发送给中继链,中继链利用接收到的随机数对第一联盟链进行验证。
[0110]
在一种可能的实现方式中,中继链可以调用第一联盟链的写入接口,通过写入接口向联盟链写入随机数,实现中继链向第一联盟链发送随机数。第一联盟链对应的调用中继链的写入接口,通过写入接口向中继链写入随机数,实现第一联盟链向中继链发送随机数。
[0111]
b3:如果向第一联盟链发送的随机数与从第一联盟链接收的随机数一致,中继链向第一联盟链发送第一联盟链的数字证书。
[0112]
如果中继链接收到的第一联盟链发送的随机数与第一联盟链接收到的随机数,也就是中继链发送的随机数一致时,则证明第一联盟链的验证请求有效。中继链向第一联盟链发送第一联盟链的数字证书,用于确认第一联盟链的注册身份。
[0113]
相对应的,中继链可以储存发送的数字证书对应的信任证书信息。
[0114]
需要说明的是,不同的联盟链在与中继链进行通信之前均需要进行注册。例如,当上述第二联盟链与第一联盟链不同时,中继链在向第二联盟链发送第二跨链通信请求之
前,第二联盟链需要进行上述注册过程,以便中继链确认第二联盟链为注册成员。
[0115]
基于上述内容可知,在联盟链进行与中继链的通信之前,联盟链需要先进行注册,以便中继链确认注册成员,在跨链通信时验证联盟链的身份。中继链与注册后的联盟链之间进行通信实现跨链通信,提高了跨链通信的安全性,确保跨链传输的数据的可靠性。
[0116]
在一种可能的实现方式中,第一联盟链的数字证书包括明文信息以及签名信息。其中,明文信息包括第一联盟链的公钥、第一联盟链的组织信息、第一联盟链的身份信息、中继链的认证信息。签名信息为对明文信息提取哈希摘要后使用中继链的私钥进行加密后生成的。
[0117]
相对应的,中继链对第一联盟链的数字证书进行验证,包括以下三个步骤:
[0118]
c1:中继链对第一联盟链的数字证书中的明文信息提取哈希摘要,生成第一待验证信息。
[0119]
中继链可以根据获取到的第一联盟链的数字证书中的明文信息,生成与签名信息对应的第一待验证信息,再利用签名信息进行验证。
[0120]
中继链对第一联盟链的数字证书中的明文信息提取哈希摘要,得到第一待验证信息。
[0121]
c2:中继链使用中继链的私钥对第一联盟链的数字证书中的签名信息进行解密,生成第二待验证信息。
[0122]
由于数字证书中的签名信息是利用中继链的私钥加密得到的,签名信息的保密程度较高,被篡改的风险较小。中继链利用中继链的私钥对第一联盟链的数字证书中的签名信息进行解密,得到在注册时第一联盟链的数字证书的明文信息提取的哈希摘要,也就是第二待验证信息。
[0123]
c3:如果第一待验证信息与第二待验证信息一致,中继链确定第一联盟链的数字证书验证通过。
[0124]
若第一待验证信息与第二待验证信息一致,则说明中继链接收到的第一联盟链的数字证书与第一联盟链在注册时接收到的数字证书一致,确定第一联盟链的数字证书验证通过。若第一待验证信息与第二待验证信息不一致,则说明中继链接收到的第一联盟链的数字证书与第一联盟链在注册时接收到的数字证书并不相同,对数字证书的验证不能通过。
[0125]
基于上述内容可知,在本申请实施例中,通过利用数字证书中的明文信息和数字证书中签名信息,可以对中继链接收到的第一联盟链的数字证书进行验证。从而实现了第一联盟链与中继链之间信息交互的安全性,提高了跨链通信的安全性。
[0126]
在一种可能的实现方式中,第一通信数据报中包括至少一个通信公钥、加密交易数据、加密类型以及交易哈希值。可以利用第一通信数据报中的交易哈希值对加密交易数据进行验证。
[0127]
基于上述内容,本申请实施例提供了中继链在第一联盟链的数字证书验证通过后,对第一通信数据报进行验证的方法,包括以下两个步骤:
[0128]
d1:中继链在第一联盟链的数字证书验证通过后,使用第一通信数据报中的至少一个通信公钥对第一通信数据报中的加密交易数据进行解密生成第一交易数据,根据加密类型计算生成第一交易数据的待验证交易哈希值。
[0129]
在一种可能的实现方式中,第一通信数据报可以采用预先确定的通信数据报格式。参见图3所示,该图为本申请实施例提供的一种通信数据报格式的示意图。第一通信数据报中包括交易来源、通信对象、交易哈希值、加密类型、通信公钥以及加密交易数据。其中,交易来源为发起跨链交易的联盟链。通信对象可以是联盟链内部的组织,通信对象的数量可以为一个或者多个。交易哈希值为第一联盟链根据交易数据计算得到的哈希值。加密类型为对交易信息加密的加密类型。通信公钥为联盟链与中继链共享的公共密钥,公钥的数量可以为一个或者多个。加密交易数据为利用通信公钥对交易信息加密后得到的交易数据。
[0130]
中继链在对第一联盟链的数字证书验证通过后,对第一通信数据报进行验证。鉴于联盟链中主体较为分散,需要明确通信数据报的来源与通信对象,可以采用群签的方式明确交易的主体。利用第一通信数据报中的至少一个通信公钥对第一通信数据报中的加密交易数据进行解密。例如,图3所示的公钥a-公钥n,中继链可以依次使用公钥a至公钥n对加密交易信息进行解密,直到使用对应的公钥对加密交易信息解密。根据解密成功的通信公钥可以确定交易主体,并且得到对应的第一交易数据。再利用加密类型计算第一交易数据的待验证交易哈希值。
[0131]
d2:如果第一交易数据的待验证交易哈希值与第一通信数据报包括的交易哈希值一致,中继链确定第一通信数据报验证通过。
[0132]
判断第一交易数据的待验证交易哈希值是否与第一通信数据报中的交易哈希一致。若一致,则说明第一交易数据是可信任的,对第一通信数据报的验证通过。若不一致,则说明第一通信数据报中的部分数据可能被篡改,第一通信数据报是不可信任的,对第一通信数据报的验证不通过。
[0133]
基于上述内容可知,中继链利用第一通信数据报中的交易哈希值对加密交易数据对应的第一交易数据进行验证,可以确保第一通信数据报的正确传输。并且通过对交易数据进行加密,可以保证交易的私密性。能够提高第一通信数据报的数据可信度,提高了跨链通信的安全性。
[0134]
基于上述方法实施例提供的用于中继链的实现联盟链跨链通信的方法,本申请实施例还提供了一种用于联盟链的实现联盟链跨链通信的方法,下面将结合附图对该实现联盟链跨链通信的方法进行说明。
[0135]
参见图4所示,该图为本申请实施例提供的一种实现联盟链跨链通信的方法的流程图,该方法包括步骤s401-s402:
[0136]
s401:联盟链向中继链发送第一跨链通信请求,第一跨链通信请求包括第一通信数据报以及联盟链的数字证书,联盟链的数字证书是中继链发送的,以使中继链对联盟链的数字证书进行验证,在对联盟链的数字证书验证通过后,对第一通信数据报进行验证。
[0137]
参见图5所示,该图为本申请实施例提供的一种联盟链与中继链进行跨链通信的示意图。
[0138]
联盟链向中继链发送包括第一通信数据报以及联盟链的数字证书的第一跨链通信请求。联盟链的数字证书可以是联盟链在中继链上注册后,由中继链发送至联盟链的。中继链可以通过接收到的联盟链的数字证书进行验证,在数字证书验证完成后,对第一通信数据报进行验证。
[0139]
s402:联盟链响应于中继链在对第一通信数据报验证通过后对查询接口的调用,根据从中继链获取的第一交易数据查询第一交易数据对应的交易是否存在,并向中继链反馈查询结果,以使中继链在确定第一交易数据对应的交易存在后,将第一通信数据报在中继链进行上链操作,第一交易数据是中继链解析第一通信数据报获得的。
[0140]
中继链在确定第一通信数据报验证通过后,会对调用联盟链的查询接口,对联盟链中对应的交易进行查询。联盟链响应于中继链对于查询接口的调用,并根据从中继链获取的第一交易数据查询第一交易数据对应的交易是否存在,将查询到的查询结果反馈至中继链。若中继链根据查询结果确定联盟链中具有第一交易数据对应的交易,则将第一通信数据报进行上链操作。
[0141]
基于上述内容可知,联盟链向中继链发送第一跨链通信请求,以便中继链根据第一跨链通信请求进行验证,在验证通过后进行上链操作。如此可以实现中继链对于通信数据报的储存,使得中继链可以对通信数据报进行异步传输,降低了跨链通信的限制,并且提高了跨链通信的安全性,能够在较多场景中得到应用。
[0142]
进一步的,本申请实施例还提供联盟链接收并处理中继链发送的跨链通信请求的方法,参见图6所示,该图为本申请实施例提供的另一种联盟链与中继链进行跨链通信的示意图。实现联盟链跨链通信的方法还包括以下四个步骤:
[0143]
e1:联盟链接收中继链发送的第二跨链通信请求,第二跨链通信请求包括第二通信数据报以及签名数据,签名数据是中继链对第二通信数据报进行签名生成的。
[0144]
联盟链接收中继链发送的第二跨链通信请求,第二跨链通信请求中包括第二通信数据报以及签名数据。其中,签名数据是中继链根据第二通信数据报进行签名生成的,第二联盟链可以根据签名数据对第二通信数据报进行验证,以确保第二通信数据报的可信程度。
[0145]
e2:联盟链根据第二通信数据报以及签名数据对签名数据进行验证。
[0146]
联盟链根据第二通信数据报以及签名数据对签名数据进行验证,具体的,联盟链可以使用中继链的公钥进行验签。
[0147]
e3:联盟链在签名数据验证通过后,解析第二通信数据报获得第二交易数据,调用中继链的查询接口查询第二交易数据对应的交易是否存在。
[0148]
联盟链在签名数据验证通过后,可以确定中继链的身份。联盟链解析第二通信数据报,得到第二交易数据。进而调用中继链的查询接口在中继链上查询第二交易数据对应的交易是否存在,实现对于交易的验证。
[0149]
e4:联盟链在确定第二交易数据对应的交易存在后,将第二通信数据报在联盟链进行上链操作。
[0150]
如果联盟链可以确定在中继链上存在第二交易数据对应的交易,则证明第二交易数据可信,将第二通信数据报在联盟链上进行上链操作。
[0151]
基于上述内容可知,联盟链接收中继链发送的第二跨链通信请求,并利用第二跨链通信请求进行签名数据以及交易的验证,在验证通过后进行上链操作。可以实现将中继链传输的第二跨链通信请求中的第二通信数据报进行处理,并且通过验证提高了跨链通信的安全性,能够满足跨链通信的需要。
[0152]
在一种可能的实现方式中,本申请实施例还提供联盟链进行注册的方法,参见图7
所示,该图为本申请实施例提供的又一种联盟链与中继链进行跨链通信的示意图。实现联盟链跨链通信的方法还包括以下三个步骤:
[0153]
f1:联盟链向中继链发送验证请求,验证请求包括联盟链的公钥、联盟链的组织信息以及联盟链的身份信息。
[0154]
联盟链在进行注册时,需要向中继链发送验证请求。验证请求中包括联盟链的公钥、联盟链的组织信息以及联盟链的身份信息。中继链利用联盟链发送的验证信息可以生成对应的数字证书,用于确定联盟链的身份。
[0155]
f2:联盟链接收中继链发送的随机数,并将随机数发送给中继链。
[0156]
联盟链接收中继链发送的随机数,并将随机数发送至中继链,以配合中继链实现验证过程。具体的,中继链可以通过调用联盟链的写入接口将随机数发送至联盟链中,联盟链也可以通过调用中继链的写入接口将随机数发送至中继链中。
[0157]
f3:接收中继链在确定向联盟链发送的随机数与从联盟链接收的随机数一致后发送的联盟链的数字证书,联盟链的数字证书包括明文信息以及签名信息,明文信息包括联盟链的公钥、联盟链的组织信息、联盟链的身份信息、中继链的认证信息,签名信息为对明文信息提取哈希摘要后使用中继链的私钥进行加密后生成的。
[0158]
中继链在确定验证发送和接收到的随机数一致时,对联盟链的验证通过,向联盟链发送数字证书。数字证书中包括明文信息以及签名信息,其中,明文信息中包括联盟链的公钥、联盟链的组织信息、联盟链的身份信息和中继链的认证信息。签名信息为中继链对明文信息提取哈希摘要之后利用私钥加密得到的。
[0159]
基于上述内容可知,通过对联盟链进行注册,中继链后续可以对跨链通信的联盟链进行身份验证,避免对联盟链的侵入,从而保证跨链通信的安全。
[0160]
在一种具体的应用场景中,为了实现上述实现联盟链跨链通信的方法,可以建立对应的跨链合约,以便实现联盟链与中继链之间的通信。
[0161]
跨链合约具体包括中继链端合约和联盟链端合约。
[0162]
其中,中继链端合约的合约格式如下:
[0163]
{
[0164]
字段:
[0165]
跨链交易模式
[0166]
联盟链注册状态
[0167]
检测:
[0168]
交易来源检测
[0169]
正确传输检测
[0170]
交易存在验证
[0171]
接口:
[0172]
联盟链查询接口
[0173]
联盟链推送接口
[0174]
联盟链写入接口
[0175]
业务:
[0176]
跨链交互业务
[0177]
}
[0178]
中继链端合约可以涉及到跨链检测功能、跨链接口、跨链业务并且维护状态字段。
[0179]
状态字段包括跨链交易模式字段和联盟链注册状态字段。跨链交易模式字段具体包括写入模式字段和查询模式字段,用于表示中继链与联盟链之间的跨链交易的类型。联盟链注册状态字段包括未注册、已停用和可使用三个状态的字段,分别表示联盟链的未注册状态、表示已注册但是停用的已停用状态以及可使用状态。
[0180]
跨链检测功能包括交易来源检测、正确传输检测以及交易存在验证。交易来源检测也就是上述s202,即中继链对第一联盟链的数字证书进行验证的过程。正确传输检测为上述s203,即中继链对第一通信数据报进行验证的过程。交易存在验证为上述s204,即中继链解析第一通信数据报获得第一交易数据,调用第一联盟链的查询接口查询第一交易数据对应的交易是否存在的过程。
[0181]
跨链接口包括联盟链查询接口、联盟链推送接口以及联盟链写入接口。联盟链查询接口用于被中继链调用进行交易存在的查询。联盟链推送接口用于在中继链进行上链操作后,被中继链调用向联盟链发送通信数据报的处理信息。联盟链写入接口用于被中继链调用进行信息的写入,例如随机数,从而实现向联盟链发送随机数。
[0182]
跨链业务用于在合约层对中继链与联盟链的跨链过程进行控制,确保跨链交易可信。
[0183]
相对应的,联盟链端合约的合约格式如下:
[0184]
{
[0185]
字段:
[0186]
跨链交易模式
[0187]
检测:
[0188]
交易来源检测
[0189]
正确传输检测
[0190]
交易存在验证
[0191]
接口:
[0192]
中继链查询接口
[0193]
中继链推送接口
[0194]
中继链写入接口
[0195]
业务:
[0196]
权限管理业务
[0197]
跨链交互业务
[0198]
}
[0199]
联盟链端合约可以涉及到跨链检测功能、跨链接口、跨链业务并且维护状态字段。
[0200]
状态字段包括跨链交易模式字段。跨链交易模式字段具体包括写入模式字段和查询模式字段,用于表示联盟链与中继链之间的跨链交易的类型。
[0201]
跨链检测功能包括交易来源检测、正确传输检测以及交易存在验证。交易来源检测也就是上述e2,即联盟链根据第二通信数据报以及签名数据对签名数据进行验证的过程。正确传输检测为联盟链对通信数据报中进行验证的过程。交易存在验证为上述e3,即联
盟链在签名数据验证通过后,解析第二通信数据报获得第二交易数据,调用中继链的查询接口查询第二交易数据对应的交易是否存在的过程。
[0202]
跨链接口包括中继链查询接口、中继链推送接口以及中继链写入接口。中继链查询接口用于被联盟链调用进行信息查询,例如查询交易是否存在。中继链推送接口用于在联盟链对通信数据报进行处理后,被联盟链调用向中继链发送通信数据报的处理信息,具体可以包括响应信息、请求信息以及重发信息等等。中继链写入接口用于被联盟链调用进行信息的写入,例如随机数,从而实现向中继链发送随机数。
[0203]
跨链业务包括权限管理业务以及跨链交互业务。
[0204]
权限管理业务用于确定中继链的数据获取权限,控制向中继链开放的数据。
[0205]
跨链交互业务用于在合约层对联盟链与中继链的跨链过程进行控制,确保跨链交易可信。
[0206]
基于上述方法实施例提供的实现联盟链跨链通信方法,本申请实施例还提供了一种实现联盟链跨链通信装置,下面将结合附图对该实现联盟链跨链通信装置进行说明。
[0207]
参见图8,该图为本申请实施例提供的一种实现联盟链跨链通信装置的结构示意图。如图8所示,该实现联盟链跨链通信装置包括:
[0208]
第一接收单元801,用于中继链接收第一联盟链发送的第一跨链通信请求,所述第一跨链通信请求包括第一通信数据报以及所述第一联盟链的数字证书,所述第一联盟链的数字证书是所述中继链发送给所述第一联盟链的;
[0209]
第一验证单元802,用于所述中继链对所述第一联盟链的数字证书进行验证;
[0210]
第二验证单元803,用于所述中继链在所述第一联盟链的数字证书验证通过后,对所述第一通信数据报进行验证;
[0211]
第一查询单元804,用于所述中继链在所述第一通信数据报验证通过后,解析所述第一通信数据报获得第一交易数据,调用所述第一联盟链的查询接口查询所述第一交易数据对应的交易是否存在;
[0212]
第一上链单元805,用于所述中继链在确定所述第一交易数据对应的交易存在后,将所述第一通信数据报在所述中继链进行上链操作。
[0213]
在一种可能的实现方式中,所述装置还包括:
[0214]
签名单元,用于所述中继链对第二通信数据报进行签名,生成签名数据;
[0215]
第一发送单元,用于所述中继链向第二联盟链发送第二跨链通信请求,所述第二跨链通信请求包括所述第二通信数据报以及所述签名数据,以使所述第二联盟链根据所述第二通信数据报以及所述签名数据对所述签名数据进行验证,在所述签名数据验证通过后,解析所述第二通信数据报获得第二交易数据,调用所述中继链的查询接口查询所述第二交易数据对应的交易是否存在,在确定所述第二交易数据对应的交易存在后,将所述第二通信数据报在所述第二联盟链进行上链操作。
[0216]
在一种可能的实现方式中,所述装置还包括:
[0217]
第二接收单元,用于所述中继链接收所述第一联盟链发送的验证请求,所述验证请求包括所述第一联盟链的公钥、所述第一联盟链的组织信息以及所述第一联盟链的身份信息;
[0218]
第二发送单元,用于所述中继链向所述第一联盟链发送随机数,以使所述第一联
盟链在接收到所述随机数后将所述随机数发送给所述中继链;
[0219]
第三发送单元,用于如果向所述第一联盟链发送的随机数与从所述第一联盟链接收的随机数一致,所述中继链向所述第一联盟链发送所述第一联盟链的数字证书。
[0220]
在一种可能的实现方式中,所述第一联盟链的数字证书包括明文信息以及签名信息,所述明文信息包括所述第一联盟链的公钥、所述第一联盟链的组织信息、所述第一联盟链的身份信息、所述中继链的认证信息,所述签名信息为对所述明文信息提取哈希摘要后使用所述中继链的私钥进行加密后生成的;
[0221]
所述第一验证单元802,具体用于所述中继链对所述第一联盟链的数字证书中的明文信息提取哈希摘要,生成第一待验证信息;所述中继链使用所述中继链的私钥对所述第一联盟链的数字证书中的签名信息进行解密,生成第二待验证信息;如果所述第一待验证信息与所述第二待验证信息一致,所述中继链确定所述第一联盟链的数字证书验证通过。
[0222]
在一种可能的实现方式中,所述第一通信数据报包括至少一个通信公钥、加密交易数据、加密类型以及交易哈希值;
[0223]
所述第二验证单元803,具体用于所述中继链在所述第一联盟链的数字证书验证通过后,使用所述第一通信数据报中的至少一个通信公钥对所述第一通信数据报中的加密交易数据进行解密生成第一交易数据,根据所述加密类型计算生成所述第一交易数据的待验证交易哈希值;如果所述第一交易数据的待验证交易哈希值与所述第一通信数据报包括的交易哈希值一致,所述中继链确定所述第一通信数据报验证通过。
[0224]
基于上述方法实施例提供的实现联盟链跨链通信方法,本申请实施例还提供了另一种实现联盟链跨链通信装置,下面将结合附图对该实现联盟链跨链通信装置进行说明。
[0225]
参见图9,该图为本申请实施例提供的另一种实现联盟链跨链通信装置的结构示意图。如图9所示,该实现联盟链跨链通信装置包括:
[0226]
第四发送单元901,用于联盟链向中继链发送第一跨链通信请求,所述第一跨链通信请求包括第一通信数据报以及所述联盟链的数字证书,所述联盟链的数字证书是所述中继链发送的,以使所述中继链对所述联盟链的数字证书进行验证,在对所述联盟链的数字证书验证通过后,对所述第一通信数据报进行验证;
[0227]
第二查询单元902,用于所述联盟链响应于所述中继链在对所述第一通信数据报验证通过后对查询接口的调用,根据从所述中继链获取的第一交易数据查询所述第一交易数据对应的交易是否存在,并向所述中继链反馈查询结果,以使所述中继链在确定所述第一交易数据对应的交易存在后,将所述第一通信数据报在所述中继链进行上链操作,所述第一交易数据是所述中继链解析所述第一通信数据报获得的。
[0228]
在一种可能的实现方式,所述装置还包括:
[0229]
第三接收单元,用于所述联盟链接收所述中继链发送的第二跨链通信请求,所述第二跨链通信请求包括第二通信数据报以及签名数据,所述签名数据是所述中继链对第二通信数据报进行签名生成的;
[0230]
第三验证单元,用于所述联盟链根据所述第二通信数据报以及所述签名数据对所述签名数据进行验证;
[0231]
第三查询单元,用于所述联盟链在所述签名数据验证通过后,解析所述第二通信
数据报获得第二交易数据,调用所述中继链的查询接口查询所述第二交易数据对应的交易是否存在;
[0232]
第二上链单元,用于所述联盟链在确定所述第二交易数据对应的交易存在后,将所述第二通信数据报在所述联盟链进行上链操作。
[0233]
在一种可能的实现方式,所述装置还包括:
[0234]
第五发送单元,用于所述联盟链向所述中继链发送验证请求,所述验证请求包括所述联盟链的公钥、所述联盟链的组织信息以及所述联盟链的身份信息;
[0235]
转发单元,用于所述联盟链接收所述中继链发送的随机数,并将所述随机数发送给所述中继链;
[0236]
第四接收单元,用于接收所述中继链在确定向所述联盟链发送的随机数与从所述联盟链接收的随机数一致后发送的所述联盟链的数字证书,所述联盟链的数字证书包括明文信息以及签名信息,所述明文信息包括所述联盟链的公钥、所述联盟链的组织信息、所述联盟链的身份信息、所述中继链的认证信息,所述签名信息为对所述明文信息提取哈希摘要后使用所述中继链的私钥进行加密后生成的。
[0237]
基于上述方法实施例提供的实现联盟链跨链通信方法,本申请实施例还提供了一种实现联盟链跨链通信系统,下面将结合附图对该实现联盟链跨链通信系统进行说明。
[0238]
参见图10,该图为本申请实施例提供的一种实现联盟链跨链通信系统的结构示意图。如图10所示,该实现联盟链跨链通信系统包括中继链1001和第一联盟链1002;
[0239]
所述第一联盟链1002,用于向所述中继链1001发送第一跨链通信请求,所述第一跨链通信请求包括第一通信数据报以及所述第一联盟链的数字证书,所述第一联盟链的数字证书是所述中继链1001发送的;
[0240]
所述中继链1001,用于接收所述第一联盟链1002发送的所述第一跨链通信请求;对所述第一联盟链1002的数字证书进行验证;在所述第一联盟链1002的数字证书验证通过后,对所述第一通信数据报进行验证;在所述第一通信数据报验证通过后,解析所述第一通信数据报获得第一交易数据,调用所述第一联盟链1002的查询接口查询所述第一交易数据对应的交易是否存在;
[0241]
所述第一联盟链1002,还用于响应于所述中继链1001在对所述第一通信数据报验证通过后对查询接口的调用,根据从所述中继链1001获取的第一交易数据查询所述第一交易数据对应的交易是否存在,并向所述中继链1001反馈查询结果;
[0242]
所述中继链1001,还用于在确定所述第一交易数据对应的交易存在后,将所述第一通信数据报在所述中继链1001进行上链操作。
[0243]
在一种可能的实现方式中,所述系统还包括:第二联盟链1003,所述第二联盟链1003与所述第一联盟链1002相同,或者所述第二联盟链1003与所述第一联盟链1002不同;
[0244]
所述中继链1001,还用于对第二通信数据报进行签名,生成签名数据;向第二联盟链1003发送第二跨链通信请求,所述第二跨链通信请求包括所述第二通信数据报以及所述签名数据;
[0245]
所述第二联盟链1003,用于接收所述中继链1001发送的第二跨链通信请求;根据所述第二通信数据报以及所述签名数据对所述签名数据进行验证;在所述签名数据验证通过后,解析所述第二通信数据报获得第二交易数据,调用所述中继链1001的查询接口查询
所述第二交易数据对应的交易是否存在;在确定所述第二交易数据对应的交易存在后,将所述第二通信数据报在所述第二联盟链1003进行上链操作。
[0246]
在一种可能的实现方式中,所述第一联盟链1002,还用于向所述中继链1001发送验证请求,所述验证请求包括所述第一联盟链1002的公钥、所述第一联盟链1002的组织信息以及所述第一联盟链1002的身份信息;
[0247]
所述中继链1001,还用于接收所述第一联盟链1002发送的验证请求,所述验证请求包括所述第一联盟链1002的公钥、所述第一联盟链1002的组织信息以及所述第一联盟链1002的身份信息;向所述第一联盟链1002发送随机数;
[0248]
所述第一联盟链1002,还用于接收所述中继链1001发送的随机数,并将所述随机数发送给所述中继链1001;
[0249]
所述中继链1001,还用于如果向所述第一联盟链1002发送的随机数与从所述第一联盟链1002接收的随机数一致,所述中继链1001向所述第一联盟链发送所述第一联盟链1002的数字证书;
[0250]
所述第一联盟链1002,还用于接收所述中继链1001在确定向所述第一联盟链1002发送的随机数与从所述第一联盟链1002接收的随机数一致后发送的所述第一联盟链1002的数字证书。
[0251]
在一种可能的实现方式中,所述第一联盟链1002的数字证书包括明文信息以及签名信息,所述明文信息包括所述第一联盟链1002的公钥、所述第一联盟链1002的组织信息、所述第一联盟链1002的身份信息、所述中继链1001的认证信息,所述签名信息为对所述明文信息提取哈希摘要后使用所述中继链1001的私钥进行加密后生成的;
[0252]
所述中继链1001,具体用于对所述第一联盟链1002的数字证书中的明文信息提取哈希摘要,生成第一待验证信息;
[0253]
使用所述中继链1001的私钥对所述第一联盟链1002的数字证书中的签名信息进行解密,生成第二待验证信息;
[0254]
如果所述第一待验证信息与所述第二待验证信息一致,所述中继链1001确定所述第一联盟链1002的数字证书验证通过。
[0255]
在一种可能的实现方式中,所述第一通信数据报包括至少一个通信公钥、加密交易数据、加密类型以及交易哈希值;
[0256]
所述中继链1001,具体用于在所述第一联盟链1002的数字证书验证通过后,使用所述第一通信数据报中的至少一个通信公钥对所述第一通信数据报中的加密交易数据进行解密生成第一交易数据,根据所述加密类型计算生成所述第一交易数据的待验证交易哈希值;
[0257]
如果所述第一交易数据的待验证交易哈希值与所述第一通信数据报包括的交易哈希值一致,所述中继链1001确定所述第一通信数据报验证通过。
[0258]
另外,本申请实施例还提供了一种实现联盟链跨链通信的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述实施例所述的实现联盟链跨链通信的方法、或者如上述实施例所述的实现联盟链跨链通信的方法。
[0259]
另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介
质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述实施例所述的实现联盟链跨链通信的方法、或者如上述实施例所述的实现联盟链跨链通信的方法。
[0260]
通过将验证后的第一通信数据报在中继链上进行上链操作,可以实现中继链对于第一通信数据报的储存,便于中继链将储存的第一通信数据报发送至需要通信的联盟链,实现了第一通信数据报的异步传输。并且通过验证确保通信数据报的安全,能够保护跨链传输的数据的安全。本申请实施例提供的一种实现联盟链跨链通信的方法能够满足联盟链之间的信息交互的需要,能够实现如资产转移、数据交换以及信息交互等多种场景下的跨链通信。
[0261]
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0262]
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0263]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0264]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0265]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1