掌桥专利:专业的专利平台
掌桥专利
首页

跨链交易的数据同步方法、装置、系统及终端设备

文献发布时间:2023-06-19 10:35:20


跨链交易的数据同步方法、装置、系统及终端设备

技术领域

本申请属于计算机应用技术领域,尤其涉及一种跨链交易的数据同步方法、装置、系统及终端设备。

背景技术

随着区块链应用技术的发展,不同的区块链之间可以通过跨链技术进行互相通信,跨链技术主要包括基于公证人机制、哈希锁定以及中继链等。其中,基于中继链的跨链交易为,不同的应用链通过跨链网关接入中继链,通过中继链进行跨链操作。

在跨链网络中,基于中继链的跨链交易的场景,一条中继链可能连接十几条甚至更多的应用区块链。连接中继链和应用区块链的跨链网关,负责同步中继链上的区块头和区块交易。然而,在跨链网关同步中继链区块交易的时候,中继链的一个区块中可能包含多个来自不同应用区块链的跨链交易,如果按传统的同步方式,将跨链交易全部同步,由于跨链网关能够获知接入到中继链的所有应用区块链的跨链交易,从而容易导致其它应用区块链的交易数据的隐私泄露。

发明内容

本申请实施例提供了一种跨链交易的数据同步方法、装置、系统及终端设备,可以解决传统的跨链交易的信息同步方式容易导致其它应用区块链的交易数据的隐私泄露的问题。

第一方面,本申请实施例提供了一种跨链交易的数据同步方法,应用于中继链,所述方法包括:

获取源区块链发送的跨链交易,所述跨链交易包括目的区块链的地址信息;根据所述地址信息,将所述跨链交易构建为预设结构的区块信息,所述区块信息包括与跨链网关对应的目标区块链的交易数据;向所述跨链网关提交所述交易数据,以使所述跨链网关对所述交易数据验证通过后向所述目标区块链同步所述交易数据中的跨链交易内容。

在第一方面的一种可能的实现方式中,所述根据所述地址信息,将所述跨链交易构建为预设结构的区块信息,包括:

根据所述地址信息分类所述跨链交易,得到每个所述目的区块链对应的跨链交易组;对所述跨链交易组中的每个跨链交易分别进行哈希操作,得到所述跨链交易组对应的交易哈希列表;根据默克尔树的结构,构建每个所述交易哈希列表的第一默克尔树,得到每个所述交易哈希列表对应的第一树根值和所有交易哈希列表对应的第一树根值集合;构建所述第一树根值集合的第二默克尔树,得到第二树根值;其中,将所述第二树根值记入所述区块信息的区块头,将所述交易哈希列表、所有的所述第一默克尔树、所述第一树根值集合、所述第二默克尔树和第二树根值记入所述区块信息的区块体。

在第一方面的一种可能的实现方式中,所述向所述跨链网关提交所述交易数据,以使所述跨链网关对所述交易数据验证通过后向所述目标区块链同步所述交易数据中的跨链交易内容,包括:

向所述跨链网关提交所述交易哈希列表中与所述目标区块链对应的目标交易哈希列表、所述第一树根值集合、所述第二树根值和所述跨链交易内容,以使所述跨链网关基于所述目标交易哈希列表、所述第一树根值集合、所述第二树根值对所述跨链交易内容验证通过后向所述目标区块链同步所述跨链交易内容。

第二方面,本申请实施例提供了一种跨链交易的数据同步方法,应用于跨链网关,所述方法包括:

获取中继链提交的区块信息中与所述跨链网关对应的目标区块链的交易数据;所述区块信息为所述中继链基于目的区块链的地址信息,将源区块链发送的跨链交易按预设结构构建得到的;对所述交易数据进行验证;若验证通过,则向所述目标区块链同步所述交易数据中的跨链交易内容。

在第二方面的一种可能的实现方式中,所述区块信息包括区块头和区块体;所述区块体包括交易哈希列表、第一默克尔树、第一树根值集合、第二默克尔树和第二树根值,所述区块头包括第二树根值;其中,所述交易哈希列表为所述中继链对跨链交易组中的每个跨链交易分别进行哈希操作得到的,所述跨链交易组为所述中继链根据所述地址信息分类所述跨链交易得到的;所述第一树根值集合为所述中继链根据默克尔树的结构对所有所述交易哈希列表分别构建第一默克尔树得到的;所述第二树根值为所述中继链基于所述第一树根值集合构建第二默克尔树得到的。

示例性的,所述获取中继链提交的区块信息,包括:

获取所述中继链提交的所述交易哈希列表中与所述目标区块链对应的目标交易哈希列表、所述第一树根值集合、所述第二树根值和所述跨链交易内容。

在第二方面的一种可能的实现方式中,所述对所述交易数据进行验证,包括:

基于所述第一树根值集合,构建第三默克尔树,得到第三树根值;若所述第三树根值与所述第二树根值相同,则对所述目标交易哈希列表进行验证,所述所述目标哈希列表为与所述目标区块链对应的交易哈希列表;构建所述目标交易哈希列表的第四默克尔树,得到第四树根值;若所述第四树根值存在于所述第一树根值集合中,则对所述跨链交易内容进行验证;将所述跨链交易内容进行哈希操作,得到所述跨链交易内容中所有跨链交易的哈希值;若所述所有跨链交易的哈希值全部在所述目标交易哈希列表中,则验证通过。

第三方面,本申请实施例提供了一种跨链交易的数据同步装置,包括:

获取单元,用于获取源区块链发送的跨链交易,所述跨链交易包括目的区块链的地址信息;

处理单元,用于根据所述地址信息,将所述跨链交易构建为预设结构的区块信息,所述区块信息包括与跨链网关对应的目标区块链的交易数据;

发送单元,用于向所述跨链网关提交所述交易数据,以使所述跨链网关对所述交易数据验证通过后向所述目标区块链同步所述交易数据中的跨链交易内容。

第四方面,本申请实施例提供了一种跨链交易的数据同步装置,包括:

获取单元,用于获取中继链提交的区块信息中与所述跨链网关对应的目标区块链的交易数据;所述区块信息为所述中继链基于目的区块链的地址信息,将源区块链发送的跨链交易按预设结构构建得到的;

验证单元,用于对所述交易数据进行验证;

同步单元,用于若验证通过,则向所述目标区块链同步所述交易数据中的跨链交易内容。

第五方面,本申请实施例提供了一种跨链交易的验证系统,包括:中继链和一个或多个跨链网关,所述中继链与一个或多个所述跨链网关通信连接;

所述中继链,用于执行如第一方面所述的跨链交易的数据同步方法;

所述跨链网关,用于执行如第二方面所述的跨链交易的数据同步方法。

第六方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的方法。

第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法。

第八方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述所述的方法。

可以理解的是,上述第二方面至第八方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

本申请实施例与现有技术相比存在的有益效果是:通过本申请实施例,中继链获取源区块链发送的跨链交易,跨链交易包括目的区块链的地址信息;根据地址信息,中继链将跨链交易构建为预设结构的区块信息,区块信息包括与跨链网关对应的目标区块链的交易数据;中继链向跨链网关提交交易数据,以使跨链网关对交易数据验证通过后向目标区块链同步交易数据中的跨链交易内容;通过根据地址信息将跨链交易进行分类,并构建预设结构的区块信息,使得跨链网关只可以获取其对应的目标区块链的跨链交易及相关的交易数据,无法同步和获知其它目的区块链的跨链交易内容,保护了其它目的区块链的跨链交易数据不被泄露;具有较强的易用性与实用性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的应用场景的系统架构示意图;

图2是本申请一实施例提供的跨链交易的数据同步方法的流程示意图;

图3是本申请一实施例提供的构建的区块信息的结构示意图;

图4是本申请另一实施例提供的构建的交易树的结构示意图;

图5是本申请另一实施例提供的构建交易树的结构示意图;

图6是本申请一实施例提供的跨链交易的数据同步方法的流程示意图;

图7是本申请一实施例提供的数据同步的交互流程示意图;

图8是本申请一实施例提供的跨链交易的数据同步装置的结构示意图;

图9是本申请另一实施例提供的跨链交易的数据同步装置的结构示意图;

图10是本申请实施例提供的跨链交易的数据同步系统的结构示意图;

图11是本申请实施例提供的终端设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

随着区块链技术的发展和创新,针对不同领域出现了具有不同特点及适应不同场景需求的大量区块链网络,每个区块链网络之间形成了诸多价值孤岛,通过区块链跨链技术实现了不同链之间的互联互通和价值转移。

在使用中继链进行跨链的场景下,一条中继链可能连接十几条甚至更多的应用区块链,从而组成跨链网络。而连接中继链和应用区块链的为跨链网关,跨链网关负责同步中继链上的区块头和区块交易,并验证区块交易的有效性;在交易有效前提下,将接收到的区块交易的内容同步至与自己连接的应用区块链。

参见图1,是本申请一实施例提供的应用场景的系统架构示意图,中继链通过不同的跨链网关可以连接多个目的区块链(如图1中的目的区块链A和目的区块链B)。中继链获取一个或多个源区块链中的跨链交易,将跨链交易打包成区块,通过路由的方式发送至跨链网关,跨链网关对跨链交易进行验证,验证接收到的跨链交易是否存在于中继链上,验证通过后,将跨链交易内容发送至目的区块链,由目的区块链执行相应的交易操作。

其中,在跨链网关同步中继链的区块交易时,中继链的一个区块中可能包含来自多个不同应用区块链的跨链交易,跨链网关可以获知所有接入到中继链的应用区块链的跨链交易。目前,在跨链网关同步中继链的区块并验证的应用场景,一般采用简单支付验证(Simplified Payment Verification,SPV)的证明方式;在该证明方式下,跨链网关需要同步所有中继链上的交易,并结合相应的路径信息验证交易是否存在于中继链上。

通过上述模式,跨链网关若同步中继链的所有跨链交易,则无法保护其它应用区块链的交易数据隐私;并且,随着跨链网络的不断扩展,使得每个跨链网关需要同步的数据量大大增加,增加了跨链网关同步区块交易的网络传输时间和资源消耗,增加了跨链网关的运营维护成本。

基于以上问题,本申请实施例提供了一种跨链交易的数据同步方法,通过跨链网关从中继链中仅获取与其连接的应用区块链对应的跨链交易即相关信息,并基于跨链交易及相关信息的特定格式,可以快速证明所获取的跨链交易来自中继链,减少了证明信息的数据量大小,简化了证明过程。下面通过本申请实施例介绍该方法实现的具体过程。

参见图2,本申请一实施例提供的跨链交易的数据同步方法的流程示意图,该方法的执行主体为图1中的中继链,如图2所示,该方法包括以下步骤:

步骤S201,获取源区块链发送的跨链交易,跨链交易包括目的区块链的地址信息。

在一些实施例中,中继链获取源区块链发送的跨链交易,跨链交易包括源区块链的信息和目的区块链的信息;目的区块链的信息包括目的区块链的地址信息。

其中,源区块链可以通过跨链网关与中继链进行通信;即源区块链发送到与其连接的跨链网关,由跨链网关将跨链交易转发至中继链。跨链交易可以为多个源区块链向多个目的区块链发送的多份交易,也可以为一个源区块链向多个目的区块链发送的多份交易,每个目的区块链还可以对应多份跨链交易;每一份跨链交易中都包含相应的目的区块链的地址信息。

步骤S202,根据地址信息,将跨链交易构建为预设结构的区块信息,区块信息包括与跨链网关对应的目标区块链的交易数据。

在一些实施例中,中继链按跨链交易中的地址信息,将跨链交易进行分组,得到对应不同目的区块链的跨链交易组。再将对应不同目的区块链的跨链交易组按照预设结构的交易树,生成待同步的区块信息,即中继链将接收到的跨链交易按预设结构打包成区块。

其中,在中继链向跨链网关同步交易信息的时候,不再会同步区块中所有的跨链交易,而是只同步与跨链网关连接的目标区块链对应的交易数据;目标区块链为多个目的区块链中的一个,该目标区块链与跨链网关连接,通过跨链网关与中继链通信,跨链网关与中继链建立长时的通信连接。

在一些实施例中,根据地址信息,将跨链交易构建为预设结构的区块信息,包括:根据地址信息分类跨链交易,得到每个目的区块链对应的跨链交易组;对跨链交易组中的每个跨链交易分别进行哈希操作,得到跨链交易组对应的交易哈希列表;根据默克尔树的结构,构建每个交易哈希列表的第一默克尔树,得到每个交易哈希列表对应的第一树根值和所有交易哈希列表对应的第一树根值集合;构建第一树根值集合的第二默克尔树,得到第二树根值;其中,将第二树根值记入区块信息的区块头,将交易哈希列表、所有的第一默克尔树、第一树根值集合、第二默克尔树和第二树根值记入区块信息的区块体。

在一些实施例中,中继链构造跨链交易的交易树。如图3所示,本申请一实施例提供的构建的区块信息的结构示意图。区块信息包括区块头和区块体,为示例性说明,图3中仅示出了与实施例相关的部分。

如图3所示,在中继链收到的交易信息中,除了跨链交易还包括非跨链交易,本申请实施例以跨链交易的应用场景为例进行说明。中继链接收到的跨链交易包括跨链交易a至跨链交易l,接收到的非跨链交易包括交易m至交易p。其中,跨链交易a至跨链交易d为对应发送至目的区块链A的跨链交易,跨链交易c至跨链交易h为对应发送至目的链区块链B的跨链交易,跨链交易i至跨链交易l为对应发送至目的区块链C的跨链交易。中继链根据跨链交易中的目的区块链A、目的链区块链B和目的区块链C的地址信息,将跨链交易进行分组,得到跨链交易组。将非跨链交易分为一组。

示例性的,中继链在构建交易树过程中,对每个跨链交易和每个非跨链交易进行哈希操作,得到对应的哈希值,例如图3中跨链交易a对应的哈希a,交易m对应的哈希m等。对应每个跨链交易组和非跨链交易组得到对应的交易哈希列表。中继链针对每一个交易哈希列表,按照默克尔树的结构,构建每个哈希列表的第一默克尔树,如图3所示,对哈希a至哈希d,经过一次相邻值的哈希操作,得到哈希ab和哈希cd,再对哈希ab和哈希cd经过一次哈希操作,得到哈希abcd,从而构造出跨链交易a至跨链交易d的交易树,并将哈希abcd的值作为第一树根值L2Root。同理,得到其它交易哈希列表的第一默克尔树和第一树根值,例如哈希efgh、哈希ijkl、哈希mnop;由各个第一树根值组成第一树根值集合。中继链基于第一树根值集合构建第二默克尔树,得到第二树根值L1Root;如图3所示,将哈希abcd和哈希efgh进行一次哈希操作,得到哈希abcdefgh;将哈希ijkl和哈希mnop进行一次哈希操作,得到哈希ijklmnop;最后将哈希abcdefgh和哈希ijklmnop再进行一次哈希操作,得到第二默克尔树和第二树根值L1Root。

如图3所示,将第二树根值L1Root记入区块信息的区块头,各个跨链交易、非跨链交易以及对应的交易哈希列表、第一默克尔树和第二默克尔树记入区块体。可理解的,区块信息的区块信息还包括其它相关信息,在此仅示例性说明,不再进行详细描述。

示例性的,在一些实施例中,中继链构建交易树过程中,根据跨链交易的多少自行判定构造多少层高度的交易树。如图4和图5所示的,本申请另一实施例提供的构建的交易树的结构示意图。

如图4所示,在中继链中,对应发送至目的区块链A的跨链交易包括跨链交易a至跨链交易d,对应发送至目的区块链D的跨链交易包括跨链交易e至跨链交易g。对跨链交易按目的区块链的地址信息进行分组后,得到两组跨链交易组。中继链在对两组跨链交易组构建交易树过程中,先对每个跨链交易进行哈希操作,得到每个跨链交易的哈希值,例如哈希a至哈希g,得到每组跨链交易组的交易哈希列表;中继链针对每个交易哈希列表构建交易树。如图4所示,对哈希a至哈希d进行两次哈希操作得到哈希abcd,从而得到跨链交易a至跨链交易d的第一默克尔树和第一树根值。其中,中继链在构建跨链交易e至跨链交易g的交易树过程中,对跨链交易e至跨链交易g进行一次哈希操作得到哈希e至哈希g的值,在对哈希e至哈希g再次进行相邻的哈希操作时,复制哈希g的值(例如虚线框部分的哈希g),从而得到哈希ef和哈希gg,对哈希ef和哈希gg再次进行哈希操作,得到跨链交易e至跨链交易g的交易树,从而得到跨链交易e至跨链交易g的第一默克尔树和第一树根值。中继链再进一步基于哈希abcd和哈希efgg进行一次哈希操作,得到第二默克尔树和第二树根值哈希abcdefgg。其中,跨链交易组分别为跨链交易a至跨链交易d、跨链交易e至跨链交易g;交易哈希列表分别为哈希a至哈希d、哈希e至哈希g;第一树根值分别为哈希abcd、哈希efgg。

如图5所示,在中继链中,对应发送至目的区块链A的跨链交易包括跨链交易a至跨链交易d,对应发送至目的区块链D的跨链交易包括跨链交易e至跨链交易g。对跨链交易按目的区块链的地址信息进行分组后,得到两组跨链交易组。中继链在对两组跨链交易组构建交易树过程中,先对每个跨链交易进行哈希操作,得到每个跨链交易的哈希值,例如哈希a至哈希j,得到每组跨链交易组的交易哈希列表;中继链针对每个交易哈希列表构建交易树。如图5所示,对哈希a至哈希d进行两次哈希操作得到哈希abcd,为保持与跨链交易e至跨链交易j的交易树的高度一致,对哈希abcd再进行一次哈希操作,例如结合虚线框的哈希abcd,进行哈希操作得到哈希abcdabcd,从而得到跨链交易a至跨链交易d的第一默克尔树和第一树根值。其中,中继链在构建跨链交易e至跨链交易j的交易树过程中,对跨链交易e至跨链交易j进行一次哈希操作得到哈希e至哈希j的值,对哈希e至哈希j再次进行相邻的哈希操作,得到哈希ef、哈希gh和哈希ij,再次进行哈希操作时,复制哈希ij的值(例如虚线框部分的哈希ji),从而得到哈希efgh和哈希ijij,对哈希efgh和哈希ijij再次进行哈希操作,得到哈希efghijij,得到跨链交易e至跨链交易j的交易树,从而得到跨链交易e至跨链交易j的第一默克尔树和第一树根值。中继链再进一步基于哈希abcdabcd和哈希efghijij进行一次哈希操作,得到第二默克尔树和第二树根值哈希abcdabcdefghijij。其中,跨链交易组分别为跨链交易a至跨链交易d、跨链交易e至跨链交易j;交易哈希列表分别为哈希a至哈希d、哈希e至哈希j;第一树根值分别为哈希abcdabcd、哈希efghijij。

可理解的,以上中继链构建交易树的结构仅示例性说明,若有类似构思或结构的也属于本申请实施例的保护范围。

步骤S203,向跨链网关提交交易数据,以使跨链网关对交易数据验证通过后向目标区块链同步交易数据中的跨链交易内容。

在一些实施例中,中继链不再将全部的跨链交易同步至跨链网关,只向跨链网关提交与跨链网关连接的目标区块链相关的交易数据。而且基于中继链构建的预设格式的区块信息,将与目标区块链对应的交易数据发送至跨链网关。

其中,交易数据包括第一树根值集合L2Roots、第二树根值L1Root、与目标区块链对应的目标交易哈希列表TransactionsHashes以及跨链交易内容Transactions;例如,若目标区块链为图3中的目的区块链A,则目标哈希列表TransactionsHashes包括哈希a、哈希b、哈希c以及哈希d。其中,跨链交易内容Transactions与目标交易哈希列表TransactionsHashes一一对应,每一份跨链交易的跨链交易内容对应交易哈希列表中的一个交易哈希值,即跨链交易a的具体内容与哈希a对应。

在一些实施例中,向跨链网关提交交易数据,以使跨链网关对交易数据验证通过后向目标区块链同步交易数据中的跨链交易内容,包括:

向跨链网关提交交易哈希列表中与目标区块链对应的目标交易哈希列表、第一树根值集合、第二树根值和跨链交易内容,以使跨链网关基于目标交易哈希列表、第一树根值集合、第二树根值对跨链交易内容验证通过后向目标区块链同步跨链交易内容。

在一些实施例中,在中继链将交易数据提交至跨链网关后,跨链网关并不会直接提交至目标区块链上执行,而是验证收到的交易数据的有效性,基于第一树根值集合L2Roots、第二树根值L1Root、与目标区块链对应的目标交易哈希列表TransactionsHashes,证明交易数据中的跨链交易内容确实来自中继链后,再将跨链交易内容同步至目标区块链。

需要说明的是,在中继链与跨链网关保持长时间的通信连接状态下,中继链向跨链网关提交交易数据时,中继链可以定时的向跨链网关主动发送交易数据,还可以是跨链网关定时的向中继链发送查询请求,请求获取交易数据;具体的触发方式不做限定。

通过本申请实施例,中继链对接收到的交易构造预设结构的交易树,只需向跨链网关提供与目标区块链对应的跨链交易和相关信息等交易数据,以使得跨链网关根据交易数据进行验证,证明跨链交易内容来自中继链,验证通过后,由跨链网关向目标区块链发送跨链交易内容,供目标区块链参照执行相应的操作;一方面保护了中继链上的其它源区块链的跨链交易的隐私信息,另一方面减轻了跨链网关从中继链同步交易数据的负载,降低了网络传输的带宽占用量级存储压力,提高了系统的响应速度及处理效率。

参见图6,是本申请另一实施例提供的跨链交易的数据同步方法的流程示意图。该方法应用于与目标区块链连接的跨链网关,执行主体为如图1中所示的跨链网关。所述方法包括以下步骤:

步骤S601,获取中继链提交的区块信息中与跨链网关对应的目标区块链的交易数据;区块信息为中继链基于目的区块链的地址信息,将源区块链发送的跨链交易按预设结构构建得到的。

在一些实施例中,中继链根据跨链交易中的目的区块链的地址信息进行分组,得到跨链交易组;对每个跨链交易进行哈希操作,得到跨链交易组对应的交易哈希列表,根据预设结构构建交易哈希列表的交易树,得到区块信息。

其中,中继链具体的构建过程与上述提供的以中继链为执行主体的实施例中已进行说明,在此不再赘述。

在一些实施例中,获取中继链提交的区块信息,包括:

获取所述中继链提交的所述交易哈希列表中与所述目标区块链对应的目标交易哈希列表、第一树根值集合、第二树根值和跨链交易内容。

在一些实施例中,区块信息包括区块头和区块体;区块体包括交易哈希列表、第一默克尔树、第一树根值集合、第二默克尔树和第二树根值,区块头包括第二树根值。

其中,交易哈希列表为中继链对跨链交易组中的每个跨链交易分别进行哈希操作得到的,跨链交易组为中继链根据地址信息分类跨链交易得到的;第一树根值集合为中继链根据默克尔树的结构对所有交易哈希列表分别构建第一默克尔树得到的;第二树根值为中继链基于第一树根值集合构建第二默克尔树得到的。

可理解的,与上述以中继链为执行主体的实施例,基于相同的实现原理,在此不再详细赘述。

步骤S602,对交易数据进行验证。

在一些实施例中,跨链网关在接收到上述交易数据后,不会直接提交到目标区块链上执行,需要对交易数据进行验证。基于中继链构造的预设结构的数据,跨链网关执行相对应的验证。

在一些实施例中,对交易数据进行验证,包括:基于第一树根值集合,构建第三默克尔树,得到第三树根值;若第三树根值与第二树根值相同,则对目标交易哈希列表进行验证;构建目标交易哈希列表的第四默克尔树,得到第四树根值;若第四树根值存在于第一树根值集合中,则对所述跨链交易内容进行验证;将跨链交易内容进行哈希操作,得到跨链交易内容中所有跨链交易的哈希值;若所有跨链交易的哈希值全部在目标交易哈希列表中,则验证通过。

在一些实施例中,跨链网关将接收到的第一树根值集合L2Roots构造成第三默克尔树,得到第三树根值L3Root;将第三树根值L3Root与从中继链的区块头中获取的第二树根值L1Root进行比较,若一致,则继续进行下一步验证;若不一致,则验证失败。

在一些实施例中,若L3Root=L1Root,则跨链网关将收到的目标交易哈希列表TransactionsHashes构造第四默克尔树,得到第四树根值L4Root;判断第四树根值L4Root是否在收到的第一树根值集合L2Roots中,若存在,则验证通过;若不存在,则验证失败。

在一些实施例中,若L4Root在第一树根值集合L2Roots中,则跨链网关将收到的跨链交易内容Transactions中的所有跨链交易在本地计算一次哈希,得到所有跨链交易的哈希值;判断所有跨链交易的哈希值是否全部在接收到的目标交易哈希列表TransactionsHashes中,若都在,则验证通过;否则验证失败。

步骤S603,若验证通过,则向目标区块链同步交易数据中的跨链交易内容。

在一些实施例中,若跨链网关对交易数据验证通过后,将交易数据中的跨链交易内容提交到目标区块链。例如将跨链交易a至跨链交易d的具体内容同步至对应的目标区块链A。

通过本申请实施例,跨链网关从中继链中只同步与目标区块链对应的跨链交易和相关信息等交易数据,并对交易数据进行验证,证明跨链交易内容来自中继链,验证通过,向目标区块链发送跨链交易内容,供目标区块链参照执行相应的操作;一方面保护了中继链上的其它源区块链的跨链交易的隐私信息,另一方面减轻了跨链网关从中继链同步交易数据的负载,降低了网络传输的带宽占用量级存储压力,提高了系统的响应速度及处理效率,同时降低了跨链网关的运维成本和机器成本。

参见图7,是本申请一实施例提供的数据同步的交互流程示意图,该实施例交互过程中,各个步骤的实现原理与图2、和图6分别描述的实施过程相同,在此不再赘述。如图7所示,该交互过程包括以下步骤:

1.中继链获取源区块链发送的跨链交易;

2.根据跨链交易中的目的链的地址信息,中继链将所述跨链交易构建为预设结构的区块信息;

3.中继链将区块信息中与跨链网关对应的目标区块链的交易数据提交至跨链网关;

4.跨链网关对交易数据进行验证;

5.若验证通过,跨链网关将交易数据中的跨链交易内容同步至目标区块链。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

通过本申请实施例,中继链对接收到的交易构造预设结构的交易树,只需向跨链网关提供与目标区块链对应的跨链交易和相关信息等交易数据,以使得跨链网关根据交易数据进行验证,证明跨链交易内容来自中继链,验证通过后,由跨链网关向目标区块链发送跨链交易内容,供目标区块链参照执行相应的操作;一方面保护了中继链上的其它源区块链的跨链交易的隐私信息,另一方面减轻了跨链网关从中继链同步交易数据的负载,降低了网络传输的带宽占用量级存储压力,提高了系统的响应速度及处理效率,同时降低了跨链网关的运维成本和机器成本。

对应于上文实施例所述的跨链交易的数据同步方法,图8示出了本申请实施例提供的跨链交易的数据同步装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。

参照图8,该装置包括:

获取单元81,用于获取源区块链发送的跨链交易,所述跨链交易包括目的区块链的地址信息;

处理单元82,用于根据所述地址信息,将所述跨链交易构建为预设结构的区块信息,所述区块信息包括与跨链网关对应的目标区块链的交易数据;

发送单元83,用于向所述跨链网关提交所述交易数据,以使所述跨链网关对所述交易数据验证通过后向所述目标区块链同步所述交易数据中的跨链交易内容。

对应于上文实施例所述的跨链交易的数据同步方法,图9示出了本申请另一实施例提供的跨链交易的数据同步装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。

参照图9,该装置包括:

获取单元91,用于获取中继链提交的区块信息中与所述跨链网关对应的目标区块链的交易数据;所述区块信息为所述中继链基于目的区块链的地址信息,将源区块链发送的跨链交易按预设结构构建得到的;

验证单元92,用于对所述交易数据进行验证;

同步单元93,用于若验证通过,则向所述目标区块链同步所述交易数据中的跨链交易内容。

对应于上文实施例所述的跨链交易的数据同步方法,图10示出了本申请实施例提供的跨链交易的数据同步系统的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。

如图10所示,跨链交易的数据同步系统,包括:中继链和一个或多个跨链网关,所述中继链与一个或多个所述跨链网关通信连接,跨链网关与目标区块链通信连接。

其中,中继链101,用于执行如步骤S201至步骤S203所述的跨链交易的数据同步方法;跨链网关102,用于执行如步骤S601至步骤S603所述的跨链交易的数据同步方法。

通过本申请实施例,中继链对接收到的交易构造预设结构的交易树,只需向跨链网关提供与目标区块链对应的跨链交易和相关信息等交易数据,以使得跨链网关根据交易数据进行验证,证明跨链交易内容来自中继链,验证通过后,由跨链网关向目标区块链发送跨链交易内容,供目标区块链参照执行相应的操作;一方面保护了中继链上的其它源区块链的跨链交易的隐私信息,另一方面减轻了跨链网关从中继链同步交易数据的负载,降低了网络传输的带宽占用量级存储压力,提高了系统的响应速度及处理效率,同时降低了跨链网关的运维成本和机器成本。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。

图11为本申请一实施例提供的终端设备11的结构示意图。如图11所示,该实施例的终端设备11包括:至少一个处理器110(图11中仅示出一个)处理器、存储器111以及存储在所述存储器111中并可在所述至少一个处理器110上运行的计算机程序112,所述处理器110执行所述计算机程序112时实现上述任意各个跨链交易的数据同步的实施例中的步骤。

所述终端设备11可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备11可包括,但不仅限于,处理器110、存储器111。本领域技术人员可以理解,图11仅仅是终端设备11的举例,并不构成对终端设备11的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。

所称处理器110可以是中央处理单元(Central Processing Unit,CPU),该处理器110还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器111在一些实施例中可以是所述终端设备11的内部存储单元,例如终端设备11的硬盘或内存。所述存储器111在另一些实施例中也可以是所述终端设备11的外部存储设备,例如所述终端设备11上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器111还可以既包括所述终端设备11的内部存储单元也包括外部存储设备。所述存储器111用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器111还可以用于暂时地存储已经输出或者将要输出的数据。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

相关技术
  • 跨链交易的数据同步方法、装置、系统及终端设备
  • 跨区块链通信方法、装置、跨链服务系统及跨链交易系统
技术分类

06120112607434