技术领域
[0001] 本申请涉及区块链数据技术领域,尤其涉及一种用于异构区块链的数据跨链交互方法、系统、设备及介质。
相关背景技术
[0002] 随着区块链技术的迅猛发展和广泛应用,市场上涌现出了众多不同设计和功能的区块链平台。这些平台在性能、安全性、共识机制以及应用场景等方面呈现出显著的差异性和多样性。然而,这种多样化的区块链生态也带来了一个亟待解决的问题:即不同区块链平台之间的互操作性。
[0003] 为了解决这一问题,业界已经探索并实践了多种跨链技术。主要的跨链技术有:中心化的安全模型。中心化的安全模型在一定程度上依赖于某个中心化的实体或机制来确保跨链交易的安全和可靠。例如,在多个具有跨链交互需求的区块链之间设置中间服务平台,中间服务平台获得区块链内的数据,并分析其对应的功能,若任意两条区块链之间的功能相似度大于第一预设值时,则判定这两条区块链之间为互相不信任区块链,在中间服务平台中为两条区块链双方的账本系统创建资金托管,双方以公证人机制通过该中介相互进行数据的跨链存储。
[0004] 然而,上述中心化的安全模型为中心化的单一组件,这种依赖于某个中心化的实体或机制来确保跨链交易的安全和可靠,存在扩展性差、安全性不足的问题。
具体实施方式
[0021] 本领域技术人员应当理解的是,下文所描述的实施例仅仅是本公开的优选实施例,并不表示本公开仅能通过该优选实施例实现,该优选实施例仅仅是用于解释本公开的技术原理,并非用于限制本公开的保护范围。基于本公开提供的优选实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本公开的保护范围之内。
[0022] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0023] 下面通过附图对本申请实施例提出的技术方案进行详细的说明。
[0024] 本申请实施例提供了一种用于异构区块链的数据跨链交互方法,如图1所示,本申请实施例提供的方法,主要包括以下步骤:步骤110、获取并部署区块链对应的跨链通信协议和预设端点合约,将预设端点合约作为不可变端点合约设置在区块链上。
[0025] 需要说明的是,预设端点合约包含预设端点合约方法和预设端点合约事件。跨链通信协议至少包括预设跨链通信事件格式、预设安全性验证协议和预设语义映射规则。不可变端点合约为部署在区块链上的唯一的合约,所有的跨链请求都调用此合约。
[0026] 其中,预设跨链通信事件格式、预设安全性验证协议和预设语义映射规则的具体内容,可由本领域技术人员根据实际情况确定。
[0027] 其中,获取并部署区块链对应的跨链通信协议和预设端点合约,具体可以为:在区块链对应的起始区块链上获取并部署预设端点合约;在区块链上获取并部署区块链对应的跨链通信协议。
[0028] 步骤120、调用区块链上的预设端点合约方法,传入跨链通信数据,通过预设端点合约事件抛出跨链通信事件。
[0029] 需要说明的是,跨链通信事件包含跨链通信数据。其中,跨链通信数据至少包括:全局唯一的跨链请求ID、目标区块链ID、目标区块链的合约地址、跨链传递的消息。
[0030] 步骤130、通过事件采集器捕获跨链通信事件,进而获取跨链通信事件对应的交易数据。
[0031] 需要说明的是,交易数据至少包括:源区块链ID、交易hash、交易回执、全局唯一的跨链请求ID、目标区块链ID、目标区块链的合约地址、跨链传递的消息。事件采集器为监控不可变端点合约设发射的事件(跨链通信事件),转化为跨链请求,发送到相应的组件中的设备或装置。
[0032] 步骤140、通过预设验证器获取事件采集器上传的交易数据,在满足预设验证标准后,将全局唯一的跨链请求ID、目标区块链ID发送至网络层,将交易数据发送至预设中继器。
[0033] 需要说明的是,预设验证器为验证事件采集器中的跨链通信事件是否满足预设验证标准(例如,交易是否存在于区块链中)。验证通过则会将跨链请求发送到网络层。预设中继器为存储交易数据的设备,供去中心化验证网络(预设共识预言机)调用。
[0034] 步骤150、通过网络层,将全局唯一的跨链请求ID发送至目标区块链ID对应的目标区块链。
[0035] 需要说明的是,网络层为一个可以与不同区块链连接的应用程序。网络层跨链请求在此进行路由分发。
[0036] 步骤160、基于全局唯一的跨链请求ID,目标区块链中的预设端点合约调用预设共识预言机,进而通过预设共识预言机从预设中继器中获取交易数据对应的交易回执和交易hash;通过交易回执和交易hash,验证交易数据是否存在。
[0037] 需要说明的是,预设共识预言机为提供可信的链外数据的访问的设备。
[0038] 其中,基于全局唯一的跨链请求ID,目标区块链中的预设端点合约调用预设共识预言机,进而通过预设共识预言机从预设中继器中获取交易数据对应的交易回执和交易hash,具体可以为:通过目标区块链中的预设端点合约向预设共识预言机发送全局唯一的跨链请求
ID;通过预设共识预言机,从预设中继器中获取全局唯一的跨链请求ID对应的交易数据;预设共识预言机向目标区块链返回交易回执和交易hash。
[0039] 其中,通过交易回执和交易hash,验证交易数据是否存在,具体可以为:使用区块链API或客户端根据交易哈希查询交易回执;当查询到的交易回执与预设共识预言机返回的交易回执一致时,确定交易数据存在,否则不存在。
[0040] 另外,验证交易数据是否存在的方案有多种,例如以evm举例,blockinfo中包含有Block Receiptsroot,即此区块中所有交易回执构成的Merkle树的根hash值。通过预言机获取此Merkle树上的其他交易回执,然后按照Merkle树的组成方式,可以轻便验证交易的存在性。
[0041] 步骤170、在验证交易数据存在后,通过预设共识预言机从预设中继器中获取跨链传递的消息和目标区块链的合约地址,通过目标区块链对应的预设端点合约调用目标区块链的合约地址,将跨链传递的消息发送给目标区块链的合约地址。
[0042] 除此之外,图2为本申请实施例提供的一种用于异构区块链的数据跨链交互系统。如图2所示,本申请实施例提供的系统,主要包括:
跨链合约模块210,设置于区块链200内,用于获取并部署区块链200对应的跨链通信协议和预设端点合约,将预设端点合约作为不可变端点合约设置在区块链200上。
[0043] 其中,预设端点合约包含预设端点合约方法和预设端点合约事件。
[0044] 跨链合约模块210包括数据处理单元,用于在区块链200对应的起始区块链200上获取并部署预设端点合约;在区块链200上获取并部署区块链200对应的跨链通信协议。
[0045] 消息处理模块220,设置于区块链200内,用于调用区块链200上的预设端点合约方法,传入跨链通信数据,通过预设端点合约事件抛出跨链通信事件。
[0046] 需要说明的是,跨链通信事件包含跨链通信数据。
[0047] 事件采集器300,与各个区块链200连接,用于捕获跨链通信事件,进而获取跨链通信事件对应的交易数据。
[0048] 需要说明的是,交易数据至少包括:源区块链ID、交易hash、交易回执、全局唯一的跨链请求ID、目标区块链ID、目标区块链的合约地址、跨链传递的消息。
[0049] 预设验证器400,与事件采集器300连接,用于通过预设验证器400获取事件采集器300上传的交易数据,在满足预设验证标准后,将全局唯一的跨链请求ID、目标区块链ID发送至网络层,将交易数据发送至预设中继器500。
[0050] 网络层传输组件600,与预设验证器400、区块链200连接,用于通过网络层,将全局唯一的跨链请求ID发送至目标区块链ID对应的目标区块链200。
[0051] 验证层模块230,设置于区块链200内,与预设共识预言机700连接,用于基于全局唯一的跨链请求ID,目标区块链200中的预设端点合约调用预设共识预言机700,进而通过预设共识预言机700从预设中继器500中获取交易数据对应的交易回执和交易hash;通过交易回执和交易hash,验证交易数据是否存在。
[0052] 验证层模块230包括数据返回单元,用于通过目标区块链200中的预设端点合约向预设共识预言机700发送全局唯一的跨链请求ID;通过预设共识预言机700,从预设中继器500中获取全局唯一的跨链请求ID对应的交易数据;预设共识预言机700向目标区块链200返回交易回执和交易hash。
[0053] 执行层模块240,设置于区块链200内,与预设共识预言机700连接,用于在验证交易数据存在后,通过预设共识预言机700从预设中继器500中获取跨链传递的消息和目标区块链的合约地址,通过目标区块链200对应的预设端点合约调用目标区块链的合约地址,将跨链传递的消息发送给目标区块链的合约地址。
[0054] 以上为本申请中的方法实施例,基于同样的发明构思,本申请实施例还提供了一种用于异构区块链的数据跨链交互设备。如图3所示,该设备包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被执行时,使得处理器执行如上述实施例中的一种用于异构区块链的数据跨链交互方法。
[0055] 具体地,服务器端获取并部署区块链对应的跨链通信协议和预设端点合约,将预设端点合约作为不可变端点合约设置在区块链上;调用区块链上的预设端点合约方法,传入跨链通信数据,通过预设端点合约事件抛出跨链通信事件;通过事件采集器捕获跨链通信事件,进而获取跨链通信事件对应的交易数据;通过预设验证器获取事件采集器上传的交易数据,在满足预设验证标准后,将全局唯一的跨链请求ID、目标区块链ID发送至网络层,将交易数据发送至预设中继器;通过网络层,将全局唯一的跨链请求ID发送至目标区块链ID对应的目标区块链;基于全局唯一的跨链请求ID,目标区块链中的预设端点合约调用预设共识预言机,进而通过预设共识预言机从预设中继器中获取交易数据对应的交易回执和交易hash;通过交易回执和交易hash,验证交易数据是否存在;在验证交易数据存在后,通过预设共识预言机从预设中继器中获取跨链传递的消息和目标区块链的合约地址,通过目标区块链对应的预设端点合约调用目标区块链的合约地址,将跨链传递的消息发送给目标区块链的合约地址。
[0056] 除此之外,本申请实施例还提供了一种非易失性计算机存储介质,其上存储有可执行指令,在该可执行指令被执行时,实现如上述的一种用于异构区块链的数据跨链交互方法。
[0057] 至此,已经结合前文的多个实施例描述了本公开的技术方案,但是,本领域技术人员容易理解的是,本公开的保护范围并不仅限于这些具体实施例。在不偏离本公开技术原理的前提下,本领域技术人员可以对上述各个实施例中的技术方案进行拆分和组合,也可以对相关技术特征作出等同的更改或替换,凡在本公开的技术构思和/或技术原理之内所做的任何更改、等同替换、改进等都将落入本公开的保护范围之内。