一种跨区块链的数据处理方法、装置、设备及介质与流程

文档序号:19741368发布日期:2020-01-18 05:16阅读:202来源:国知局
一种跨区块链的数据处理方法、装置、设备及介质与流程

本发明涉及区块链技术领域,具体涉及基于区块链的数据处理领域,尤其涉及一种跨区块链的数据处理方法、一种跨区块链的数据处理装置、一种跨区块链的数据处理设备、一种计算机存储介质。



背景技术:

不同的区块链有各自的规范,由于区块链之间规范的差异性,针对跨区块链的数据处理过程现有技术无法较好的支持。目前,针对跨区块链的数据处理过程一般是通过中介来实现的,以跨区块链的资源数据(如电子货币、票据等)转移处理过程为例,如果区块链a上的用户a请求向区块链b上的用户b转移资源数据时,需要求助于区块链a和区块链b共同认可的一个第三方中介组织,用户a先将资源数据发给第三方中介组织,第三方中介组织通知用户b,用户b再从第三方中介组织中获取该资源数据。上述现有技术中,跨区块链的数据处理过程需要依赖于第三方中介组织,数据处理的效率较低,并且受限于第三方中介组织的信用问题,数据安全性较低。



技术实现要素:

本申请实施例提供一种跨区块链的数据处理方法、装置、设备及介质,可有效提升跨区块链的数据处理过程的安全性。

一方面,本申请实施例提供一种跨区块链的数据处理方法,包括:

响应于第一区块链上的资源转移请求,获取所述第一区块链上的第一智能合约及所述第一智能合约在所述第一区块链上的合约账户;所述资源转移请求包括转移量、所述第一区块链上的第一账户及第二区块链上的第二账户,所述资源转移请求用于指示资源数据从所述第一账户转移至所述第二账户;

调用所述第一智能合约将所述第一账户中的所述转移量的资源数据转移至所述合约账户,并在所述合约账户中锁定所述转移量的资源数据;以及,

调用所述第一智能合约向所述第二区块链上的第二智能合约发送资源转移通知,所述资源转移通知用于通知所述第二智能合约将所述第二智能合约在所述第二区块链上的储备账户中的所述转移量的资源数据转移至所述第二账户,所述第一智能合约与所述第二智能合约相关联。

另一方面,本申请实施例提供一种跨区块链的数据处理方法,包括:

获取第二区块链上的第二智能合约及所述第二智能合约在所述第二区块链上的储备账户;

调用所述第二智能合约接收第一区块链上的第一智能合约发送的资源转移通知,所述资源转移通知是由所述第一智能合约响应于所述第一区块链上的资源转移请求将所述第一区块链上的第一账户中的转移量的资源数据转移至所述第一智能合约在所述第一区块链上的合约账户,并在所述合约账户中锁定所述转移量的资源数据之后发送的;所述资源转移请求包括所述转移量、所述第一账户及所述第二区块链上的第二账户,所述资源转移请求用于指示资源数据从所述第一账户转移至所述第二账户;所述第一智能合约与所述第二智能合约相关联;

根据所述资源转移通知调用所述第二智能合约将所述储备账户中的所述转移量的资源数据转移至所述第二账户。

另一方面,本申请实施例提供一种跨区块链的数据处理装置,包括:

获取单元,用于响应于第一区块链上的资源转移请求,获取所述第一区块链上的第一智能合约及所述第一智能合约在所述第一区块链上的合约账户;所述资源转移请求包括转移量、所述第一区块链上的第一账户及第二区块链上的第二账户,所述资源转移请求用于指示资源数据从所述第一账户转移至所述第二账户;

处理单元,用于调用所述第一智能合约将所述第一账户中的所述转移量的资源数据转移至所述合约账户;在所述合约账户中锁定所述转移量的资源数据;以及,

发送单元,用于调用所述第一智能合约向所述第二区块链上的第二智能合约发送资源转移通知,所述资源转移通知用于通知所述第二智能合约将所述第二智能合约在所述第二区块链上的储备账户中的所述转移量的资源数据转移至所述第二账户,所述第一智能合约与所述第二智能合约相关联。

另一方面,本申请实施例提供一种跨区块链的数据处理装置,包括:

获取单元,用于获取第二区块链上的第二智能合约及所述第二智能合约在所述第二区块链上的储备账户;

接收单元,用于调用所述第二智能合约接收第一区块链上的第一智能合约发送的资源转移通知,所述资源转移通知是由所述第一智能合约响应于所述第一区块链上的资源转移请求将所述第一区块链上的第一账户中的转移量的资源数据转移至所述第一智能合约在所述第一区块链上的合约账户,并在所述合约账户中锁定所述转移量的资源数据之后发送的;所述资源转移请求包括所述转移量、所述第一账户及所述第二区块链上的第二账户,所述资源转移请求用于指示资源数据从所述第一账户转移至所述第二账户;所述第一智能合约与所述第二智能合约相关联;

处理单元,用于根据所述资源转移通知调用所述第二智能合约将所述储备账户中的所述转移量的资源数据转移至所述第二账户。

另一方面,本申请实施例提供一种跨区块链的数据处理设备,包括输入设备和输出设备,还包括:

处理器,适于实现一条或多条指令;以及,

计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行上述的跨区块链的数据处理方法。

另一方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行上述的跨区块链的数据处理方法。

本申请实施例中,由第一区块链上的第一智能合约响应于第一区块链上的资源转移请求,将第一账户中待转移的资源数据转移至第一智能合约在第一区块链上的合约账户中,并对合约账户中的该转移量的资源数据进行锁定;再通过与相关联的第二智能合约之间跨区块链的相互通信,由第一智能合约向第二智能合约发出资源转移通知,使得第二智能合约根据该资源转移通知将第二智能合约在第二区块链上的储备账户中待转移的资源数据转移至第二区块链上的第二账户。这样就实现第一区块链上的用户与第二区块链上的用户之间的资源数据的转移处理,这个过程中无需第三方中介的参与,数据处理效率较高,且能有效的提升数据的安全性。

附图说明

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

图1示出了本申请一个示例性实施例提供的区块链系统的架构图;

图2示出了本申请一个示例性实施例提供的区块链的结构示意图;

图3示出了本申请一个示例性实施例提供的区块链网络的架构示意图;

图4示出了本申请一个示例性实施例提供的一种跨区块链的数据处理系统的架构图;

图5示出了本申请一个示例性实施例提供的一种跨区块链的数据处理方法的流程图;

图6示出了本申请另一个示例性实施例提供的一种跨区块链的数据处理方法的流程图;

图7示出了本申请一个示例性实施例提供的一种跨区块链的数据处理装置的结构示意图;

图8示出了本申请另一个示例性实施例提供的一种跨区块链的数据处理装置的结构示意图;

图9示出了本申请一个示例性实施例提供的一种跨区块链的数据处理设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例中涉及区块链。区块链是指一套去中心化、具备分布式存储特点的基础架构,具体是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,能够安全存储有先后关系的、能在系统内进行验证的数据,并以密码学方式保证数据不可篡改和不可伪造。

图1示出了本申请一个示例性实施例提供的区块链系统的架构图;如图1所示,区块链系统的架构按照由底至上的顺序主要包括101-105共5个层级结构。其中:

(1)信息数据和默克尔(merkle)树位于底层101。此处的信息数据是指请求发布至区块链网络,但尚未形成区块的原始数据,例如交易数据。该原始数据需要进一步加工(例如经过区块链网络中各节点的验证、进行散列运算等)才能被写入区块内。merkle树是区块链技术的重要组成部分,区块链不会直接保存明文的原始数据,原始数据需要被执行散列运算,以散列值的方式被存储。默克尔树就用于将多个原始数据经散列运算形成的散列值按照二叉树结构组织起来,保存在区块的块体中。

(2)区块位于层级102。区块即数据块,底层101的信息数据经过进一步加工之后被写入至层级102中的区块内。多个区块按序连接成链式结构,即形成区块链。图2示出了本申请一个示例性实施例提供的区块链的结构示意图;如图2所示,区块201、区块202和区块203按序连接成链式结构。其中,区块202分为区块头和区块体两部分,区块头包含前一区块201的摘要值、本区块202的摘要值及本区块的默克尔(merkle)根。区块体包含本区块202的完整数据,并以merkle树的形式组织在一起。

(3)区块链所遵循的协议与机制位于层级103。这些协议可包括:p2p(peer-to-peer,对等式网络)协议;机制可包括但不限于:广播机制、共识机制(包括pow(proofofwork,工作量证明)机制、pos(proofofstake,权益证明)机制等核心机制)。

(4)区块链网络位于层级104。区块链网络由多个节点组成;可作为节点的设备可包括但不限于:pc(personalcomputer,个人计算机)、服务器、用于比特币挖矿设计的矿机、智能手机、平板电脑、移动计算机等等。图3示出了本申请一个示例性实施例提供的区块链网络的架构示意图;图中以7个节点为例进行说明,区块链网络中各节点以p2p方式组网,节点与节点之间按照p2p协议相互通信;各节点共同遵循广播机制、共识机制(包括pow机制、pos机制等核心机制),共同保证区块链上的数据的不可篡改、不可伪造性,同时实现区块链的去中心化、去信任化等特性。

(5)智能合约位于上层105。智能合约是一组情景——应对型的程序化规则和逻辑,是部署在区块链上的去中心化、可信息共享的程序代码。签署合约的各参与方就合约内容达成一致,以智能合约的形式部署在区块链中,即可不依赖任何中心机构自动化地代表各签署方执行合约。

由于区块链具备去中心化、分布式存储、数据的不可篡改、不可伪造等特性,越来越多的业务活动(例如借贷活动、金融交易活动)基于区块链技术展开,以利用区块链的特性来保证业务活动的公平性和公开性。

目前,区块链的类型可包括:公有链(publicblockchain)、私有链(privateblockchain)和联盟链(consortiumblockchain)。公有链对外公开,任何人可以加入并访问区块链;公有链上的区块可以被任何人查看,任何人也可以在公有链上发起交易,还可以随时参与公有链的共识过程。私有链仅在私有组织内部使用,区块链上的读写权限、参与记账权限按私有组织规则来制定;通常用于企业内部的数据管理、审计等。联盟链仅限于联盟成员参与,区块链上的读写权限、参与记账权限按联盟规则来制定;一般用于机构间的交易、结算或清算等场景。两条不同类型的区块链有各自的规范,例如:公有链中的共识机制一般是工作量证明(pow)或权益证明(pos),而联盟链中的共识机制一般是权益证明或pbft(practicalbyzantinefaulttolerant)、raft(一种共识算法)等共识算法。相同类型的两条区块链也会有各自管理规范的差异,例如:同为联盟链,一条联盟链的共识机制是权益证明,而另一条联盟链的共享机制为pbft共识机制。

本申请实施例提供一种跨区块链的数据处理方案,该方案通过在第一区块链上构建第一智能合约,第一智能合约包含第一区块链上的用户与第二区块链上的用户进行资源互转时所需遵循的资源转移处理规则;在第二区块链上构建第二智能合约,第二智能合约也包含第一区块链上的用户与第二区块链上的用户进行资源互转时所需遵循的资源转移处理规则;该第一智能合约与第二智能合约之间具备关联关系。由第一智能合约响应于第一区块链上的用户的资源转移请求,对待转移的资源数据进行锁定;再通过这两个相关联的智能合约之间跨区块链的相互通信,由第一智能合约向第二智能合约发出资源转移通知,再由第二智能合约根据该资源转移通知将待转移的资源数据转移至第二区块链上的用户。这样就实现第一区块链上的用户与第二区块链上的用户之间的资源数据的转移处理,这个过程中无需第三方中介的参与,数据处理效率较高,且能有效的提升数据的安全性。其中,第一区块链和第二区块链是两条不同的区块链,二者可以是相同类型的区块链,例如:第一区块链可以是联盟链,第二区块链也可以是联盟链。二者也可以是不同类型的区块链,例如第一区块链可以是私有链,第二区块链可以是联盟链。资源数据可以包括但不限于:数字资产、票据、电子货币等等。第一智能合约与第二智能合约具备关联关系,是指第一智能合约包含的资源转移处理规则与第二智能合约包含的资源转移处理规则相同,该资源转移处理规则是第一区块链的用户与第二区块链的用户共同认可并遵循的规则。第一智能合约与第二智能合约的差异之处在于:第一智能合约是按照第一区块链的规范对资源转移处理规则进行编译后形成的,且第一智能合约在第一区块链上被执行;第二智能合约是按照第二区块链的规范对资源转移处理规则进行编译后形成的,且第二智能合约在第二区块链上被执行。

图4示出了本申请一个示例性实施例提供的一种跨区块链的数据处理系统的架构图。如图4所示,该系统中包括第一区块链系统401和第二区块链系统402,第一区块链系统系统401包含第一区块链4011和多个第一节点设备4012,第二区块链系统402包括第二区块链4021和多个第二节点设备4022。其中:

第一区块链系统401中包含多个注册的第一用户,每个第一用户在第一区块链系统401中注册时,会生成该第一用户的密钥对(包括公钥和私钥),该第一用户的私钥由第一用户安全保管,例如该第一用户的私钥可保管在该第一用户注册时使用的第一节点设备4012中;而该第一用户的公钥则公开在第一区块链4011中,第一区块链系统401中的每个第一节点设备4012都可以从第一区块链4011中获取该第一用户的公钥。一个成功注册的第一用户在第一区块链4011上会对应一个第一账户,该第一账户的地址是由该第一用户的公钥生成的。此外,第一区块链4011上还布署有第一智能合约,具体的,该第一智能合约可被写入至第一区块链4011上的某个区块中。并且,布署在第一区块链4011上的第一智能合约也包含密钥对,该第一智能合约的私钥被保管在第一智能合约中且不允许任何人调用查看;该第一智能合约的公钥则公开在第一区块链4011上,第一智能合约在第一区块链4011上也对应一个账户,称为合约账户,该合约账户的地址是由第一智能合约的公钥生成的。通常,每个第一节点设备4012均会存储该第一区块链4011上的所有区块,即每个第一节点设备4012均会存储第一智能合约,该第一智能合约在第一节点设备4012中被执行。

同样,第二区块链系统402中也可包含多个注册的第二用户,每个第二用户在第二区块链系统402中注册时,会生成该第二用户的密钥对(包括公钥和私钥),该第二用户的私钥由第二用户安全保管,例如该第二用户的私钥可保管在该第二用户注册时使用的第二节点设备4022中;而该第二用户的公钥则公开在第二区块链4021上,第二区块链系统402中的每个第二节点设备4022都可以从第二区块链4021中获取该第二用户的公钥。一个成功注册的第二用户在第二区块链4021上会对应一个第二账户,该第二账户的地址是由该第二用户的公钥生成的。此外,第二区块链4021上还布署有第二智能合约,具体的,该第二智能合约可被写入至第一区块链4021上的某个区块中;并且,布署在第二区块链4021上的第二智能合约也包含密钥对,该第二智能合约的私钥被保管在第二智能合约中且不允许任何人调用查看;该第二智能合约的公钥则公开在第二区块链4021上,第二智能合约在第二区块链4021上也对应一个账户,称为储备账户(此处储备账户与上述的合约账户性质相同,此处只是采用不同的命名只是为了区分),该储备账户的地址是由第二智能合约的公钥生成的。通常,每个第二节点设备4022均会存储该第二区块链4021上的所有区块,即每个第二节点设备4022均会存储第二智能合约,该第二智能合约在第二节点设备4022中被执行。

在图4所示的系统中,第一智能合约与第二智能合约相关联,二者协同来执行跨区块链的数据处理流程。第一区块链4011向第二智能合约开放第一区块链4011的通信接口,第一智能合约可以通过第二区块链4021的通信接口与第二智能合约相互通信;同理,第二区块链4021向第一智能合约开放第二区块链4021的通信接口,第二智能合约可以通过第一区块链4011的通信接口与第一智能合约相互通信;这是第一区块链与第二区块链之间的跨区块的数据处理能够实现的通信基础。如图4所示,该系统涉及的跨区块链的数据处理流程可包括:①第一区块链系统401中的某个第一用户(如用户a)通过某个第一节点设备4012在第一区块链4011上发布资源转移请求,请求向第二区块链系统402中的某个第二用户(如用户b)转移资源数据;②资源转移请求触发第一智能合约执行,该第一智能合约先将第一用户在第一区块链4011上的第一账户中相应转移量的资源数据先转移至自己的合约账户中;③第一智能合约对合约账户中该转移量的资源数据进行锁定;此处的锁定是指该转移量的资源数据不能在第一区块链4011上流通,任何一个第一节点设备4012均不可以对该转移量的资源数据进行访问、转移或任何其他处理。③第一智能合约调用第二区块链4021的通信接口,向第二智能合约发送资源转移通知,该资源转移通知会触发第二智能合约执行;④第二智能合约根据该资源转移通知从储备账户中将该转移量的资源数据转移至第二用户(如用户b)在第二区块链4021上的第二账户。这样就实现第一区块链上的第一用户(如用户a)向第二区块链上的第二用户(如用户b)的资源转移处理过程,这个过程中无需第三方中介的参与,数据处理效率较高,且能有效的提升数据的安全性;并且,这个过程中涉及的第一区块链上的处理流程是在第一区块链上独立且完整的被执行,具体而言,第一区块链上的处理流程主要是将第一区块链上的第一账户中的转移量的资源数据转移至合约账户中进行锁定,其中的第一账户和合约账户均属于第一区块链上的账户,这就使得该处理流程无需考虑第二区块链的管理规范,而只受第一区块链的管理规范的约束,并且第一账户和合约账户之间流通使用的均是第一区块链所支持的资源数据的类型,而无需考虑账户之间资源数据类型之间的差异,这使得处理流程既简单又有效。同样,这个过程中涉及的第二区块链上的处理流程也是在第二区块链上独立且完整的执行,具体而言,第二区块链上的处理流程主要是将第二区块链上的储备账户中的转移量的资源数据转移至第二账户中,其中的第二账户和储备账户均属于第二区块链上的账户,这就使得该处理流程无需考虑第一区块链的管理规范,而只受第二区块链的管理规范的约束,并且第二账户和储备账户之间流通使用的均是第二区块链所支持的资源数据的类型,而无需考虑账户之间资源数据类型之间的差异,这使得处理流程既简单又有效。同理,第二区块链上的第二用户向第一区块链上的第一用户的资源转移处理过程可类似分析,在此不赘述。

图5示出了本申请一个示例性实施例提供的一种跨区块链的数据处理方法的流程图;该方法可以由图4所示的第一区块链系统401中的任一个第一节点设备4012与第二区块链系统402中的任一个第二节点设备4022交互执行。该方法包括以下步骤s501-s507:

s501,响应于第一区块链上的资源转移请求,第一节点设备获取第一区块链上的第一智能合约及第一智能合约在第一区块链上的合约账户;该资源转移请求包括转移量、第一区块链上的第一账户及第二区块链上的第二账户,该资源转移请求用于指示资源数据从第一账户转移至第二账户。

s502,第一节点设备调用第一智能合约将第一账户中的转移量的资源数据转移至合约账户。

步骤s501-s502中,资源转移请求是由第一区块链系统中的第一用户发起的,该第一用户可以通过使用终端设备(例如pc(personalcomputer,个人计算机)、手机、pda(平板电脑)等)向第一节点设备发送资源转移请求。可以理解的是,当第一用户的终端设备本身作为第一区块链所在的第一区块链网络中的第一节点设备时,第一用户可以直接在第一节点设备上执行资源转移操作以发起资源转移请求。第一节点设备将资源转移请求发布至第一区块链中(即上链),该资源转移请求就会触发执行第一智能合约,第一智能合约在第一节点设备中被调用执行,并从第一账户中扣除该转移量的资源数据,并同时向合约账户中存入该转移量的资源数据。

s503,第一节点设备在合约账户中锁定该转移量的资源数据。

由于该转移量的资源数据是要转移到第二区块链上被使用的数据,当该转移量的资源数据被成功转移到合约账户中时,需要对该转移量的资源数据进行锁定。锁定是指该转移量的资源数据不能在第一区块链上流通,任何一个第一节点设备均不可以对该转移量的资源数据进行访问、转移或任何其他处理。具体实现中,合约账户中的该转移量的资源数据是采用第一智能合约的公钥被加密存储的,如果要获取该转移量的资源数据,就需要采用第一智能合约的私钥来解密获取。但由于第一智能合约的私钥被存储在第一智能合约中,并且该私钥不允许被任何人调用查看,即任何一个第一节点设备都无法获得该第一智能合约的私钥,也就无法对合约账户中的该转移量的资源数据进行解密,进而无法获得该转移量的资源数据,这就保证了该转移量的资源数据不能在第一区块链上被流通。

s504,第一节点设备调用第一智能合约向第二区块链上的第二智能合约发送资源转移通知。第一智能合约与第二智能合约相关联。资源转移通知用于通知第二智能合约将第二智能合约在第二区块链上的储备账户中的转移量的资源数据转移至第二账户。

s505,第二节点设备获取第二区块链上的第二智能合约及第二智能合约在第二区块链上的储备账户。

s506,第二节点设备调用第二智能合约接收第一区块链上的第一智能合约发送的资源转移通知。

步骤s505-s506中,当第一智能合约发送的资源转移通知被成功发送至第二区块链时,该资源转移通知即会触发第二智能合约的执行,第二智能合约在第二节点设备中被调用执行,并接收第一智能合约发送的资源转移通知。资源转移通知中至少应当包括转移量和第二账户的地址。

s507,根据资源转移通知调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

储备账户中的资源数据,可以是通过发行的方式被存储至储备账户中的。另外,如前述,储备账户和合约账户的性质是相同的,也就是说,当第二区块链系统中的第二用户向第一区块链系统中的第一用户进行资源转移时,第二智能合约会将第二账户中的资源数据先转移至储备账户中,因此储备账户中的资源数据,还可以是通过资源转移方式被存储至储备账户中的。当然,储备账户中的资源数据还可以是由用户(第二智能合约的管理用户)手动存储至储备账户中的。第二智能合约按照资源转移通知会从储备账户扣除该转移量的资源数据,并将该转移量的资源数据存入至第二账户。

本申请实施例中,由第一区块链上的第一智能合约响应于第一区块链上的资源转移请求,将第一账户中待转移的资源数据转移至第一智能合约在第一区块链上的合约账户中,并对合约账户中的该转移量的资源数据进行锁定;再通过与相关联的第二智能合约之间跨区块链的相互通信,由第一智能合约向第二智能合约发出资源转移通知,使得第二智能合约根据该资源转移通知将第二智能合约在第二区块链上的储备账户中待转移的资源数据转移至第二区块链上的第二账户。这样就实现第一区块链上的用户与第二区块链上的用户之间的资源数据的转移处理,这个过程中无需第三方中介的参与,数据处理效率较高,且能有效的提升数据的安全性。

图6示出了本申请另一个示例性实施例提供的一种跨区块链的数据处理方法的流程图;该方法可以由图4所示的第一区块链系统401中的任一个第一节点设备4012与第二区块链系统402中的任一个第二节点设备4022交互执行。该方法包括以下步骤s601-s616:

s601,响应于第一区块链上的资源转移请求,第一节点设备获取第一区块链上的第一智能合约及第一智能合约在第一区块链上的合约账户;资源转移请求包括转移量、第一区块链上的第一账户及第二区块链上的第二账户,资源转移请求用于指示资源数据从第一账户转移至第二账户。

s602,第一节点设备调用第一智能合约检测第一账户中的剩余资源数据的数量是否大于或等于转移量;若检测结果为是,即第一账户中的剩余资源数据的数量大于或等于该转移量,则转入步骤s603;否则,输出资源转移失败的提示并结束流程。

s603,第一节点设备调用第一智能合约将第一账户中的转移量的资源数据转移至合约账户。

s604,第一节点设备在合约账户中锁定转移量的资源数据。

s605,第一节点设备调用第一智能合约向第二区块链上的第二智能合约发送资源转移通知。第一智能合约与第二智能合约相关联。

在一种实施方式中,第一节点设备的存储空间中存储有第二区块链的通信接口,第一节点设备可以先从本地存储空间中获取第二区块链的通信接口;再调用并运行智能合约并通过第二区块链的通信接口向第二智能合约发送资源转移通知。在另一种实施方式中,第二区块链的通信接口的地址可预先写入第一智能合约中,第一节点设备在调用执行第一智能合约的过程中,第一智能合约可根据预先写入的第二区块链的通信接口的地址向第二智能合约发送资源转移通知。该资源转移通知用于通知第二智能合约将第二智能合约在第二区块链上的储备账户中的转移量的资源数据转移至第二账户。该资源转移通知至少包括转移量和第二账户的地址。

s606,第二节点设备获取第二区块链上的第二智能合约及第二智能合约在第二区块链上的储备账户。

s607,第二节点设备调用第二智能合约接收第一区块链上的第一智能合约发送的资源转移通知。

s608,第二节点设备检测第二智能合约是否具备第二区块链的资源发行权限。如果第二智能合约具备第二区块链的资源发行权限,则转入步骤s609;如果第二智能合约不具备第二区块链的资源发行权限,则转入步骤s611。

如果第二智能合约具备资源发行权限,就可以通过资源发行的方式向储备账户中存入资源数据。如果第二智能合约不具备资源发行权限,就不可以通过资源发行的方式向储备账户中存入资源数据。第二区块链系统中的所有节点设备共同维护第二区块链的资源发行权限,当第二智能合约申请获得第二区块链的资源发行权限时,该申请会被广播至第二区块链系统中的所有第二节点设备,如果所有第二节点设备(或超过预设数量,例如超过51%或超过2/3的第二节点设备)均同意向第二智能合约开放资源发行权限,则第二智能合约获得并具备第二区块链的资源发行权限;否则第二智能合约不具备第二区块链的资源发行权限。

s609,第二节点设备调用第二智能合约向储备账户中发行转移量的资源数据。

s610,在发行成功后,第二节点设备调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户;转入步骤s615。

步骤s609-s610中,如果第二智能合约具备第二区块链的资源发行权限,则可以通过资源发行的方式向储备账户的地址中存入转移量的资源数据,并将该转移量的资源数据转移至第二账户。此情况下第二节点设备可以不用事先检测储备账户中的剩余资源数据的数量。

s611,第二节点设备调用第二智能合约检测储备账户中的剩余资源数据的数量是否大于或等于转移量;若检测结果为是,即储备账户中的剩余资源数据的数量大于或等于该转移量,则转入步骤s612;否则,转入步骤s613。

s612,第二节点设备调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户;转入步骤s615。

s613,第二节点设备获取储备账户中的剩余资源数据的数量与转移量之间的差值。

s614,第二节点设备向储备账户中存储不小于差值的资源数据,并在存储成功后,调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

步骤s611-s614中,如果第二智能合约不具备第二区块链的资源发行权限,就不可以通过资源发行的方式向储备账户的地址中存入转移量的资源数据。此时为了保证能够成功完成资源转移处理,第二节点设备需要先检测储备账户中的剩余资源数据的数量是否充足(即剩余资源数据的数量是否大于或等于该转移量),如果充足就可以直接调用第二智能合约将储备账户中的该转移量的资源数据转移至第二账户;如果不足就需要先充值再转移,即第二设备需要先向储备账户的地址存入不小于差值的资源数据,再调用第二智能合约将储备账户中的该转移量的资源数据转移至第二账户。

s615,若储备账户中的转移量的资源数据被成功转移至第二账户,则第二节点设备调用第二智能合约向第一智能合约发送资源转移成功的反馈通知。第二智能合约调用第一区块链的通信接口向第一智能合约发送资源转移成功的反馈通知。

s616,若接收到第二智能合约发送的资源转移成功的反馈通知,第一节点设备销毁合约账户中的转移量的资源数据。

步骤s616为可选步骤,接收到第二智能合约发送的资源转移成功的反馈通知,就表示本次资源转移已完成,第一节点设备可以销毁该合约账户中的该转移量的资源数据,这样就彻底杜绝该转移量的资源数据在第一区块上的流通。当然,第一节点设备也可以不用销毁该合约账户中的该转移量的资源数据,例如可以在第一智能合约中约定,该合约账户中的该转移量的资源数据可充当储备,当第二区块链系统中的第二用户向第一区块链系统中的第一用户执行资源转移处理时,从合约账户中对该转移量的资源数据进行解锁后转移至第一账户;此时合约账户的功能和上述储备账户的功能一致。

下面以一个实例来详细阐述本申请实施例的跨区块链的数据处理方法的流程,具体流程包括如下步骤(1)-(7):

(1)第一区块链系统中的第一用户(用户a)向第一节点设备(如手机a)发起资源转移请求,请求向第二区块链系统中的第二用户(用户b)转入100元电子货币;该资源转移请求中包括转移量为100元、用户a在第一区块链上的第一账户和用户b在第二区块链上的第二账户。响应于该资源转移请求,手机a获取第一区块链上的第一智能合约及合约账户m。

(2)手机a调用第一智能合约先从第一账户中转移100元电子货币至合约账户,再对合约账户中的这100元电子货币进行锁定。

(3)该第一智能合约调用第二区块链的通信接口向第二区块链上的第二智能合约发送资源转移通知。

(4)第二节点设备(如计算机b)调用第二智能合约接收该资源转移通知。

(5)计算机b根据该资源转移通知检测第二智能合约是否具备第二区块链的资源发布权限,如果具备就调用第二智能合约直接向储备账户中发行100元电子货币,发行成功后就将储备账户中的100元电子货币转移至第二账户。

(6)如果第二智能合约不具备第二区块链的资源发布权限,该计算机b检测储备账户中剩余的电子货币数量是否大于或等于100元,如果大于或等于就直接调用第二智能合约将储备账户中的100元电子货币转移至第二账户;如果小于就先向储备账户中存入电子货币,使得储备账户中剩余的电子货币数量大于或等于100元后,再从储备账户中转移100元电子货币至第二账户;完成整个资源转移的过程。

(7)第二智能合约可以向第一智能合约发送资源转移成功的反馈通知,手机a可以对合约账户中的100元电子货币进行销毁,或者设置该100元电子货币只能够在第二区块链系统中的第二用户向第一区块链系统中的第一用户进行资源转移处理时,作为储备金进行使用。

本申请实施例中,由第一区块链上的第一智能合约响应于第一区块链上的资源转移请求,将第一账户中待转移的资源数据转移至第一智能合约在第一区块链上的合约账户中,并对合约账户中的该转移量的资源数据进行锁定;再通过与相关联的第二智能合约之间跨区块链的相互通信,由第一智能合约向第二智能合约发出资源转移通知,使得第二智能合约根据该资源转移通知将第二智能合约在第二区块链上的储备账户中待转移的资源数据转移至第二区块链上的第二账户。这样就实现第一区块链上的用户与第二区块链上的用户之间的资源数据的转移处理,这个过程中无需第三方中介的参与,数据处理效率较高,且能有效的提升数据的安全性。

图7示出了本申请一个示例性实施例提供的一种跨区块链的数据处理装置的结构示意图;该跨区块链的数据处理装置可以是运行于图4所示的第一区块链系统401中的任一个第一节点设备4012中的一个计算机程序(包括程序代码),例如该跨区块链的数据处理装置可以是第一节点设备4012中的一个应用软件;该跨区块链的数据处理装置可以用于执行图5-图6所示的方法中的相应步骤。请参见图7,该跨区块链的数据处理装置包括如下单元:

获取单元701,用于响应于第一区块链上的资源转移请求,获取第一区块链上的第一智能合约及第一智能合约在第一区块链上的合约账户;资源转移请求包括转移量、第一区块链上的第一账户及第二区块链上的第二账户,资源转移请求用于指示资源数据从第一账户转移至第二账户。

处理单元702,用于调用第一智能合约将第一账户中的转移量的资源数据转移至合约账户;在合约账户中锁定转移量的资源数据;以及,

发送单元703,用于调用第一智能合约向第二区块链上的第二智能合约发送资源转移通知,资源转移通知用于通知第二智能合约将第二智能合约在第二区块链上的储备账户中的转移量的资源数据转移至第二账户,第一智能合约与第二智能合约相关联。

在一种实施方式中,处理单元702还用于:

调用第一智能合约检测第一账户中的剩余资源数据的数量是否大于或等于转移量;

若第一账户中的剩余资源数据的数量大于或等于该转移量,则执行调用第一智能合约将第一账户中的转移量的资源数据转移至合约账户的步骤;

若第一账户中的剩余资源数据的数量小于该转移量,则输出资源转移失败的提示。

在另一种实施方式中,发送单元703具体用于:

获取第二区块链的通信接口;

运行第一智能合约并调用第二区块链的通信接口向第二智能合约发送资源转移通知。

在另一种实施方式中,处理单元702还用于:

若接收到第二智能合约发送的资源转移成功的反馈通知,销毁合约账户中的转移量的资源数据。

根据本发明的一个实施例,图7所示的跨区块链的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该跨区块链的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图5-图6所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的跨区块链的数据处理装置,以及来实现本申请实施例的跨区块链的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。

本申请实施例中,由第一区块链上的第一智能合约响应于第一区块链上的资源转移请求,将第一账户中待转移的资源数据转移至第一智能合约在第一区块链上的合约账户中,并对合约账户中的该转移量的资源数据进行锁定;再通过与相关联的第二智能合约之间跨区块链的相互通信,由第一智能合约向第二智能合约发出资源转移通知,使得第二智能合约根据该资源转移通知将第二智能合约在第二区块链上的储备账户中待转移的资源数据转移至第二区块链上的第二账户。这样就实现第一区块链上的用户与第二区块链上的用户之间的资源数据的转移处理,这个过程中无需第三方中介的参与,数据处理效率较高,且能有效的提升数据的安全性。

图8示出了本申请另一个示例性实施例提供的一种跨区块链的数据处理装置的结构示意图;该跨区块链的数据处理装置可以是运行于图4所示的第二区块链系统402中的任一个第二节点设备4022中的一个计算机程序(包括程序代码),例如该跨区块链的数据处理装置可以是第二节点设备4022中的一个应用软件;该跨区块链的数据处理装置可以用于执行图5-图6所示的方法中的相应步骤。请参见图8,该跨区块链的数据处理装置包括如下单元:

获取单元801,用于获取第二区块链上的第二智能合约及第二智能合约在第二区块链上的储备账户;

接收单元802,用于调用第二智能合约接收第一区块链上的第一智能合约发送的资源转移通知,资源转移通知是由第一智能合约响应于第一区块链上的资源转移请求将第一区块链上的第一账户中的转移量的资源数据转移至第一智能合约在第一区块链上的合约账户,并在合约账户中锁定转移量的资源数据之后发送的;资源转移请求包括转移量、第一账户及第二区块链上的第二账户,资源转移请求用于指示资源数据从第一账户转移至第二账户;第一智能合约与第二智能合约相关联;

处理单元803,用于根据资源转移通知调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

在一种实施方式中,处理单元803还用于:

检测第二智能合约是否具备第二区块链的资源发行权限。

在另一种实施方式中,处理单元803具体用于:

若第二智能合约具备第二区块链的资源发行权限,则调用第二智能合约向储备账户发行转移量的资源数据;

在发行成功后,调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

在另一种实施方式中,处理单元803具体用于:

若第二智能合约不具备第二区块链的资源发行权限,则调用第二智能合约检测储备账户中的剩余资源数据的数量是否大于或等于转移量;

若储备账户中的剩余资源数据的数量大于或等于该转移量,则调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

在另一种实施方式中,处理单元803具体用于:

若储备账户中的剩余资源数据的数量小于该转移量,获取储备账户中的剩余资源数据的数量与转移量之间的差值;

向储备账户中存储不小于差值的资源数据,在存储成功后,调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

在另一种实施方式中,处理单元803还用于:

若储备账户中的转移量的资源数据被成功转移至第二账户,则调用第二智能合约向第一智能合约发送资源转移成功的反馈通知。

根据本发明的一个实施例,图8所示的跨区块链的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该跨区块链的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图5-图6所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8中所示的跨区块链的数据处理装置,以及来实现本申请实施例的跨区块链的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。

本申请实施例中,由第一区块链上的第一智能合约响应于第一区块链上的资源转移请求,将第一账户中待转移的资源数据转移至第一智能合约在第一区块链上的合约账户中,并对合约账户中的该转移量的资源数据进行锁定;再通过与相关联的第二智能合约之间跨区块链的相互通信,由第一智能合约向第二智能合约发出资源转移通知,使得第二智能合约根据该资源转移通知将第二智能合约在第二区块链上的储备账户中待转移的资源数据转移至第二区块链上的第二账户。这样就实现第一区块链上的用户与第二区块链上的用户之间的资源数据的转移处理,这个过程中无需第三方中介的参与,数据处理效率较高,且能有效的提升数据的安全性。

图9示出了本申请一个示例性实施例提供的一种跨区块链的数据处理设备的结构示意图。请参见图9,该跨区块链的数据处理设备至少包括处理器901、输入设备902、输出设备903以及计算机存储介质904。其中,处理器901、输入设备902、输出设备903以及计算机存储介质904可通过总线或者其它方式连接。计算机存储介质904可以存储在终端的存储器中,计算机存储介质904用于存储计算机程序,计算机程序包括程序指令,处理器901用于执行计算机存储介质904存储的程序指令。处理器901(或称cpu(centralprocessingunit,中央处理器))是跨区块链的数据处理设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。

本申请实施例还提供了一种计算机存储介质(memory),计算机存储介质是跨区块链的数据处理设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括跨区块链的数据处理设备中的内置存储介质,当然也可以包括跨区块链的数据处理设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了跨区块链的数据处理设备的操作系统。并且,在该存储空间中还存放了适于被处理器901加载并执行的一条或多条的指令,这些指令可以是一个或多个的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。

在一个实施例中,该跨区块链的数据处理设备可以是图4所示的第一区块链系统401中的任一个第一节点设备4012;该计算机存储介质中存储有一条或多条第一指令;由处理器901加载并执行计算机存储介质中存放的一条或多条第一指令,以实现上述跨区块链的数据处理方法实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行如下步骤:

响应于第一区块链上的资源转移请求,获取第一区块链上的第一智能合约及第一智能合约在第一区块链上的合约账户;资源转移请求包括转移量、第一区块链上的第一账户及第二区块链上的第二账户,资源转移请求用于指示资源数据从第一账户转移至第二账户;

调用第一智能合约将第一账户中的转移量的资源数据转移至合约账户,并在合约账户中锁定转移量的资源数据;以及,

调用第一智能合约向第二区块链上的第二智能合约发送资源转移通知,资源转移通知用于通知第二智能合约将第二智能合约在第二区块链上的储备账户中的转移量的资源数据转移至第二账户,第一智能合约与第二智能合约相关联。

在一种实施方式中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行调用第一智能合约将第一账户中的转移量的资源数据转移至合约账户的步骤之前,还执行如下步骤:

调用第一智能合约检测第一账户中的剩余资源数据的数量是否大于或等于转移量;

若第一账户中的剩余资源数据的数量大于或等于该转移量,则执行调用第一智能合约将第一账户中的转移量的资源数据转移至合约账户的步骤;

若小于,则输出资源转移失败的提示。

在另一种实施方式中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行调用第一智能合约向与第一智能合约相关联的第二智能合约发送资源转移通知的步骤时,具体执行如下步骤:

获取第二区块链的通信接口;

运行第一智能合约并调用第二区块链的通信接口向第二智能合约发送资源转移通知。

在另一种实施方式中,计算机存储介质中的一条或多条第一指令由处理器901加载并且还执行如下步骤:若接收到第二智能合约发送的资源转移成功的反馈通知,销毁合约账户中的转移量的资源数据。

在另一个实施例中,该跨区块链的数据处理设备可以是图4所示的第二区块链系统402中的任一个第二节点设备4022;该计算机存储介质中存储有一条或多条第一指令;由处理器901加载并执行计算机存储介质中存放的一条或多条第一指令,以实现上述跨区块链的数据处理方法实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行如下步骤:

获取第二区块链上的第二智能合约及第二智能合约在第二区块链上的储备账户;

调用第二智能合约接收第一区块链上的第一智能合约发送的资源转移通知,资源转移通知是由第一智能合约响应于第一区块链上的资源转移请求将第一区块链上的第一账户中的转移量的资源数据转移至第一智能合约在第一区块链上的合约账户,并在合约账户中锁定转移量的资源数据之后发送的;资源转移请求包括转移量、第一账户及第二区块链上的第二账户,资源转移请求用于指示资源数据从第一账户转移至第二账户;第一智能合约与第二智能合约相关联;

根据资源转移通知调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

在一种实施方式中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行根据资源转移通知调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户的步骤之前,还执行如下步骤:

检测第二智能合约是否具备第二区块链的资源发行权限。

在另一种实施方式中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行根据资源转移通知调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户的步骤时,具体执行如下步骤:

若第二智能合约具备第二区块链的资源发行权限,则调用第二智能合约向储备账户发行转移量的资源数据;

在发行成功后,调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

在另一种实施方式中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行根据资源转移通知调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户的步骤时,具体执行如下步骤:

若第二智能合约不具备第二区块链的资源发行权限,则调用第二智能合约检测储备账户中的剩余资源数据的数量是否大于或等于转移量;

若储备账户中的剩余资源数据的数量大于或等于该转移量,则调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

在另一种实施方式中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行根据资源转移通知调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户的步骤时,还执行如下步骤:

若储备账户中的剩余资源数据的数量小于该转移量,获取储备账户中的剩余资源数据的数量与转移量之间的差值;

向储备账户中存储不小于差值的资源数据,在存储成功后,调用第二智能合约将储备账户中的转移量的资源数据转移至第二账户。

在另一种实施方式中,计算机存储介质中的一条或多条第一指令由处理器901加载并且还执行如下步骤:若储备账户中的转移量的资源数据被成功转移至第二账户,则调用第二智能合约向第一智能合约发送资源转移成功的反馈通知。

本申请实施例中,由第一区块链上的第一智能合约响应于第一区块链上的资源转移请求,将第一账户中待转移的资源数据转移至第一智能合约在第一区块链上的合约账户中,并对合约账户中的该转移量的资源数据进行锁定;再通过与相关联的第二智能合约之间跨区块链的相互通信,由第一智能合约向第二智能合约发出资源转移通知,使得第二智能合约根据该资源转移通知将第二智能合约在第二区块链上的储备账户中待转移的资源数据转移至第二区块链上的第二账户。这样就实现第一区块链上的用户与第二区块链上的用户之间的资源数据的转移处理,这个过程中无需第三方中介的参与,数据处理效率较高,且能有效的提升数据的安全性。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1