CN112862612A - 一种跨链发送资源的方法和装置 - Google Patents
一种跨链发送资源的方法和装置 Download PDFInfo
- Publication number
- CN112862612A CN112862612A CN202110334945.7A CN202110334945A CN112862612A CN 112862612 A CN112862612 A CN 112862612A CN 202110334945 A CN202110334945 A CN 202110334945A CN 112862612 A CN112862612 A CN 112862612A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- account
- data
- transaction
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000000977 initiatory effect Effects 0.000 claims abstract description 25
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 238000012795 verification Methods 0.000 claims description 45
- 238000000151 deposition Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006854 communication Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
Abstract
本说明书实施例提供了一种跨链发送资源的方法和装置,所述跨链发送为从第一区块链的第一账户向其它区块链发送,所述第一区块链与中继端连接,所述中继端还与至少一个其它区块链连接,其中包括第二区块链,所述方法由所述第一区块链执行,包括:由所述第一账户发起用于跨链发送资源的第一交易,以基于对所述第一交易的执行,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据,其中,所述第一数据中包括可认证消息;以及将所述第一数据和第一位置信息提供给所述中继端,以用于将所述可认证消息发送给所述第二区块链,以使得其中的第二账户的第二资源余额增加第二数目。
Description
本申请为2019年6月28日提交的申请号为201910577318.9,名为“一种跨链发送资源的方法和装置”的发明专利申请的分案申请。
技术领域
本说明书实施例涉及区块链技术领域,更具体地,涉及一种跨链发送资源的方法和装置。
背景技术
区块链技术也被称之为分布式账本技术,是一种去中心化的分布式数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。区块链的每笔数据,都会广播到全网的区块链节点,每个全节点都有全量的、一致的数据。随着区块链技术的火热,出现了许多不同类型的链,应用在金融、健康医疗、供应链、资产管理和溯源等领域。然而大部分链上应用(加密货币或者智能合约)都无法跨越当前链的边界,不能与其他链协同合作实现价值的流通,从而限制了区块链的发挥空间。如何能让不同类型的链协同合作实现价值的流通成了探索的方向。目前已出现多种跨链技术,然而,每种跨链技术都有自己独特设计,针对不同链之间的跨链资源发送,一条链可能需要接入多种跨链平台。
因此,需要一种更有效的跨链发送资源的方案。
发明内容
本说明书实施例旨在提供一种更有效的跨链发送资源的方案,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种跨链发送资源的方法,所述跨链发送为从第一区块链的第一账户向其它区块链发送,所述第一区块链与中继端连接,所述中继端还与至少一个其它区块链连接,所述至少一个其它区块链中包括第二区块链,其中,第一区块链中以第一资源作为可交换资源,第二区块链中以第二资源作为可交换资源,所述方法由所述第一区块链执行,包括:
由所述第一账户发起用于跨链发送资源的第一交易,以基于对所述第一交易的执行,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目;以及
将所述第一数据和第一位置信息提供给所述中继端,以用于将所述可认证消息发送给所述第二区块链,以使得其中的第二账户的第二资源余额增加第二数目,所述第二数目基于所述第一数目和所述第一资源与第二资源之间的换算比例计算得出,其中,所述第一位置信息指示第一数据在第一区块链中的位置。
在一个实施例中,所述第一交易中包括对第一智能合约的调用,所述第一交易在调用第一智能合约时向第一智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,其中,向所述第一区块链中存入经共识的第一数据包括,通过对所述第一智能合约的执行,向所述第一区块链中存入经共识的第一数据。
在一个实施例中,所述第一交易中包括对第二智能合约的调用,所述第一交易在调用第二智能合约时向第二智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,所述第二智能合约中包括对所述第一智能合约的调用,所述第二智能合约在调用第一智能合约时向第一智能合约传入至少以下参数:第一账户、第二区块链标识、第二账户及第一数目,其中,将第一账户的第一资源余额减少第一数目包括,通过对所述第二智能合约的执行,将第一账户的第一资源余额减少第一数目。
在一个实施例中,所述第一数据被标注有预定标志。
在一个实施例中,所述第一数据为与所述第一交易对应的收据,所述收据中包括在执行所述第一智能合约之后生成的日志,所述日志的数据字段为所述可认证消息。
在一个实施例中,所述可认证消息满足预定协议栈,所述预定协议栈包括由外向内的第一至第三层协议,其中,第一层协议包括发送区块链标识字段和第二层协议,第二层协议包括发送账户字段和第三层协议,第三层协议包括接收区块链标识字段、接收账户字段和消息内容字段。
在一个实施例中,所述第一层协议中还包括协议版本号字段和预留字段。
在一个实施例中,所述第二层中还包括类型字段,用于指示该可认证消息的使用场景类型。
在一个实施例中,所述第三层协议中还包括序号字段,用于在所述第一账户向所述第二账户多次发送资源的情况中表示当前发送序号。
在一个实施例中,所述可认证消息满足预定协议栈,所述预定协议栈包括由外向内的第一至第三层协议,其中,第一层协议包括发送区块链标识字段、接收区块链标识字段和第二层协议,第二层协议包括发送账户字段、接收账户字段和第三层协议,第三层协议包括消息内容字段。
在一个实施例中,所述方法还包括,在将第一账户的第一资源余额减少第一数目之后,根据与第二区块链的预定协议,由第一区块链平台将第一数目的第一资源发送给第二区块链平台。
本说明书另一方面提供一种跨链接收资源的方法,所述跨链接收为由第二区块链的第二账户从其它区块链接收,所述第二区块链与中继端连接,所述第二区块链中通过所述中继端同步有与至少一个其它区块链分别相关的至少一个第二数据,其中,所述至少一个其它区块链中包括第一区块链,其中,第一区块链中以第一资源作为可交换资源,第二区块链中以第二资源作为可交换资源,所述方法由第二区块链执行,包括:
从所述中继端接收第一数据和第一位置信息,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目,所述第一位置信息指示所述第一数据在所述发送区块链中的位置;
基于所述可认证消息中的第一区块链标识,获取与所述第一区块链相关的第二数据、以及所述第一资源与第二资源之间的换算比例;
基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证;以及
在验证通过之后,基于所述可认证消息中的第二账户,由本地账户发起用于跨链接收资源的第二交易,以基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目,所述第二数目基于第一数目和所述换算比例计算得出。
在一个实施例中,所述第一数据为第一区块链的第一区块中的第一收据,所述第一位置信息包括第一区块的区块编号和第一收据在第一区块中的收据编号,所述与第一区块链相关的第二数据为第一区块链中的各个区块的区块头,其中,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证包括,基于所述第一收据、所述各个区块的区块头和第一区块中的与第一收据相关联的默克尔树路径,通过简单支付验证方法验证:所述第一收据来自于第一区块链中的第一区块,其中,所述默克尔树路径基于所述第一位置信息获取。
在一个实施例中,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证还包括,基于所述第一收据的发送字段,验证所述第一账户为发送所述可认证消息的账户。
在一个实施例中,所述第二交易中调用第三智能合约,其中,基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目包括,基于对所述第三智能合约的执行,将所述第二账户的第二资源余额增加第二数目。
本说明书另一方面提供一种跨链发送资源的装置,所述跨链发送为从第一区块链的第一账户向其它区块链发送,所述第一区块链与中继端连接,所述中继端还与至少一个其它区块链连接,所述至少一个其它区块链中包括第二区块链,其中,第一区块链中以第一资源作为可交换资源,第二区块链中以第二资源作为可交换资源,所述装置部署在所述第一区块链,包括:
交易发起单元,配置为,由所述第一账户发起用于跨链发送资源的第一交易,以基于对所述第一交易的执行,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目;以及
提供单元,配置为,将所述第一数据和第一位置信息提供给所述中继端,以用于将所述可认证消息发送给所述第二区块链,以使得其中的第二账户的第二资源余额增加第二数目,所述第二数目基于所述第一数目和所述第一资源与第二资源之间的换算比例计算得出,其中,所述第一位置信息指示第一数据在第一区块链中的位置。
在一个实施例中,所述第一交易中包括对第一智能合约的调用,所述第一交易在调用第一智能合约时向第一智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,其中,所述交易发起单元还配置为,通过对所述第一智能合约的执行,向所述第一区块链中存入经共识的第一数据。
在一个实施例中,所述第一交易中包括对第二智能合约的调用,所述第一交易在调用第二智能合约时向第二智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,所述第二智能合约中包括对所述第一智能合约的调用,所述第二智能合约在调用第一智能合约时向第一智能合约传入至少以下参数:第一账户、第二区块链标识、第二账户及第一数目,其中,所述交易发起单元还配置为,通过对所述第二智能合约的执行,将第一账户的第一资源余额减少第一数目。
在一个实施例中,所述装置还包括发送单元,配置为,在将第一账户的第一资源余额减少第一数目之后,根据与第二区块链的预定协议,由第一区块链平台将第一数目的第一资源发送给第二区块链平台。
本说明书另一方面提供一种跨链接收资源的装置,所述跨链接收为由第二区块链的第二账户从其它区块链接收,所述第二区块链与中继端连接,所述第二区块链中通过所述中继端同步有与至少一个其它区块链分别相关的至少一个第二数据,其中,所述至少一个其它区块链中包括第一区块链,其中,第一区块链中以第一资源作为可交换资源,第二区块链中以第二资源作为可交换资源,所述装置部署在第二区块链,包括:
接收单元,配置为,从所述中继端接收第一数据和第一位置信息,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目,所述第一位置信息指示所述第一数据在所述发送区块链中的位置;
获取单元,配置为,基于所述可认证消息中的第一区块链标识,获取与所述第一区块链相关的第二数据、以及所述第一资源与第二资源之间的换算比例;
验证单元,配置为,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证;以及
交易发起单元,配置为,在验证通过之后,基于所述可认证消息中的第二账户,由本地账户发起用于跨链接收资源的第二交易,以基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目,所述第二数目基于第一数目和所述换算比例计算得出。
在一个实施例中,所述第一数据为第一区块链的第一区块中的第一收据,所述第一位置信息包括第一区块的区块编号和第一收据在第一区块中的收据编号,所述与第一区块链相关的第二数据为第一区块链中的各个区块的区块头,其中,所述验证单元还配置为,基于所述第一收据、所述各个区块的区块头和第一区块中的与第一收据相关联的默克尔树路径,通过简单支付验证方法验证:所述第一收据来自于第一区块链中的第一区块,其中,所述默克尔树路径基于所述第一位置信息获取。
在一个实施例中,所述验证单元还配置为,基于所述第一收据的发送字段,验证所述第一账户为发送所述可认证消息的账户。
在一个实施例中,所述第二交易中调用第三智能合约,其中,所述交易发起单元还配置为,基于对所述第三智能合约的执行,将所述第二账户的第二资源余额增加第二数目。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
根据本说明书实施例的跨链方案抽象区块链互操作模型,设计一种可认证消息,使得区块链发出的消息可以被其他链认证:消息来自于哪条链,且由链上的哪个身份实体(账号/合约)发出。使得基于此可认证消息,允许进行跨链资源流转,使开发者更轻易地开发出各种跨链业务、应用。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出根据本说明书实施例的跨链系统的示意图;
图2示出根据本说明书实施例的一种跨链发送资源的方法流程图;
图3示出了在执行第一智能合约之后生成的日志的示意图;
图4示出根据本说明书实施例的预定协议栈的示意图;
图5示出了可认证消息的示意形式;
图6示出根据本说明书实施例的高适用性的协议栈的示意图;
图7示出根据本说明书实施例的另一预定协议栈的示意图;
图8示出了可认证消息的示意形式;
图9示出根据本说明书实施例的高适用性的协议栈的示意图;
图10示出根据本说明书实施例的一种跨链接收资源的方法流程图;
图11示出根据本说明书实施例的一种跨链发送资源的装置1100;
图12示出根据本说明书实施例的一种跨链接收资源的装置1200。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的跨链系统的示意图。如图1所示,所述跨链系统包括第一区块链11、中继端12和第二区块链13。第一区块链11中例如包括账户A,第二区块链13中例如包括账户B,所述账户A和账户B都是用户账户。当第一区块链中的账户A希望向第二区块链中的账户B跨链转账时,其可借助于可认证消息(AM消息)进行。具体是,账户A通过发起用于跨链转账的第一交易,使得其余额减少转账数目,并向第一区块链中存入第一数据(图中数据1),其中,所述数目为第一区块链中的可交换资源(例如代币)的数目。所述第一数据中包括所述可认证消息。第二区块链13中可包括例如多个简单支付验证(spv)节点,该节点本地预先获取有第一区块链11中的第二数据(数据2),数据2用于验证数据1。该spv节点可通过第一区块链11与第二区块链13之间的中继端12的中转获取第一数据(数据1)及其位置信息(位置1),并使用数据2对该数据1进行验证,并在验证通过之后基于该AM消息发起用于接收跨链转账的第二交易,以将账户B的余额增加与所述转账数目相应的数目。
可以理解,上述参考图1的描述只是示意性的,而不是用于限制本说明书实施例。例如,中继端在获取数据1之后,可根据预先获取的第一区块链中的数据2对数据1进行验证并数字签名,并发送给第二区块链,第二区块链可基于中继链的公钥验证数字签名,从而验证所述数据1。
下面具体描述上述过程。
图2示出根据本说明书实施例的一种跨链发送资源的方法流程图,所述跨链发送为从第一区块链的第一账户向其它区块链发送,所述第一区块链与中继端连接,所述中继端还与至少一个其它区块链连接,所述至少一个其它区块链中包括第二区块链,其中,第一区块链中以第一资源作为可交换资源,第二区块链中以第二资源作为可交换资源,所述方法由所述第一区块链执行,包括:
步骤S202,由所述第一账户发起用于跨链发送资源的第一交易,以基于对所述第一交易的执行,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目;以及
步骤S204,将所述第一数据和第一位置信息提供给所述中继端,以用于将所述可认证消息发送给所述第二区块链,以使得其中的第二账户的第二资源余额增加第二数目,所述第二数目基于所述第一数目和所述第一资源与第二资源之间的换算比例计算得出,其中,所述第一位置信息指示第一数据在第一区块链中的位置。
在本说明书实施例中,第一区块链和第二区块链可以为任意区块链,如比特币链、以太坊链等等,其通过具有统一格式的可认证消息传递信息,因此,本说明书实施例对于区块链的类型没有特别限定。所述中继端为连接在第一区块链和第二区块链之间的中间件,该中继端可以具有多种形式,例如,该中继端可以同为第一区块链和第二区块链中的节点,即,该中继端同时具有第一区块链和第二区块链中的账户;或者该中继端为与第一区块链和第二区块链都连接的中转装置,其不负责验证数据,仅用于中转数据;或者该中继端为可信节点,其在从第一区块链接收数据之后,对该数据进行验证,并在验证通过之后将数据发送给第二区块链;或者该中继端还可以为验证区块链,其在对从第一区块链接收的数据进行共识验证之后发送给第二区块链。
在步骤S202,由所述第一账户发起用于跨链发送资源的第一交易,以基于对所述第一交易的执行,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目。
所述第一账户为普通账户,即用户账户。在一个实施例中,所述第一交易可以为第一区块链中预置的用于跨链发送资源的特殊交易,该交易的数据字段中包括所述可认证消息,从而使得区块链中的节点(例如记账节点)在执行该交易时,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据。所述第一数据例如为该交易本身,从而该第一数据中包括所述可认证消息。可以理解,所述第一数据可以为区块链中的交易、收据、状态树状态、智能合约存储器、关系型数据库等中的任一数据,这些数据都是经过各个节点的共识存入区块链中,因此其在各个节点是一致的,并且是可验证的。
在一个实施例中,所述第一交易中包括对第一智能合约的调用,所述第一交易在调用第一智能合约时向第一智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,其中,向所述第一区块链中存入经共识的第一数据包括,通过对所述第一智能合约的执行,向所述第一区块链中存入经共识的第一数据。在一个实施例中,所述第一交易中包括对第二智能合约的调用,所述第一交易在调用第二智能合约时向第二智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,所述第二智能合约中包括对所述第一智能合约的调用,所述第二智能合约在调用第一智能合约时向第一智能合约传入至少以下参数:第一账户、第二区块链标识、第二账户及第一数目,其中,将第一账户的第一资源余额减少第一数目包括,通过对所述第二智能合约的执行,将第一账户的第一资源余额减少第一数目。同时,通过对第二智能合约的执行,将以下参数传入其所调用的第一智能合约:第二区块链标识、第二账户及第一数目。
第一智能合约在执行时,其例如包括存入函数“Save()”,该存入函数的传入参数即为第一智能合约的传入参数。例如,所述第二智能合约在调用第一智能合约时向第一智能合约传入至少以下参数:第一账户、第二区块链标识、第二账户及第一数目。从而,该存入函数将传入的参数(第一账户、第二区块链标识、第二账户及第一数目)、和预置的第一区块链的链标识以预定格式(即预定协议)组合成可认证消息,并作为函数结果输出,从而使得该函数结果被存入相应的日志中。该日志被包括在第一交易的交易收据中,该交易收据通过第一区块链中的节点共识验证被存入第一区块链中的区块中。也就是说,在该实施例中,所述第一数据即为区块链中的收据,该收据中的特定日志中包括了所述可认证消息。在区块链的区块中,例如可通过以下任一项作为预定标志查找到该收据:第一交易的特定交易标识、第一智能合约的合约标识、第二智能合约的合约标识等。在一个实施例中,所述日志中还设定特定主题(名称)作为预定标志,从而以用于后续对该收据和该日志的查找。可以理解,在第一数据为收据的情况中,需要对该第一数据标志预定标志,以用于后期的查找。然而,第一数据不限于为收据,例如,其可以为存入智能合约的存储器中的数据,可以为存入关系型数据库中的数据等等,在该情况中,将不需要标注有预定标志,而可以直接在特定数据库(或存储器)中获取该第一数据。
在通过第二智能合约对第一智能合约的调用从而执行第一智能合约之后,例如将生成如图3所示的日志,图3示出了在执行第一智能合约之后生成的日志的示意图。如图3所示,该日志(Log)具有预定主题(Topic),例如该主题可以预设为“AM”,以用于指示该日志是用于对链外发送AM消息的日志。在该日志中包括“To”字段,“From”字段和“Data”字段。其中,“To”字段对应于被调用合约的账户,也即第一智能合约的账户,“From”字段对应于发起调用的合约的账户,也即第二智能合约的账户,“Data”字段中即所述可认证消息。其中,所述可认证消息至少包括满足预定协议的以下字段:发送链标识(即第一区块链标识)、发送账户(即第一账户)、接收链标识(即第二区块链标识)、接收账户(即第二账户)及消息内容(即第一数目)。
在一个实施例中,所述可认证消息满足预定协议栈。图4示出根据本说明书实施例的预定协议栈的示意图。如图4所示,图中最下层为根据本说明书实施例的第一层协议,该第一层协议中包括发送区块链标识字段(S_C_ID)和第二层协议;图中中间层为第二层协议,该第二层协议中包括发送账户字段(S_A_id)和第三层协议;图中最上层为第三层协议,该第三层协议中包括接收区块链标识字段(R_C_ID)、接收账户字段(R_A_id)和消息内容字段。可以理解,发送账户应为发送区块链中的账户,接收账户应为接收区块链中的账户。
例如,如上文所述,所述可认证消息为从第一区块链中的第一账户向第二区块链中的第二账户发送资源时在第一区块链中存入的消息,假设第一区块链的链标识为ID1,第一账户为id1,第二区块链的链标识为ID2,第二账户为id2,则,图5示出了可认证消息的示意形式。如图5所示,根据图4所示的协议栈,第一层协议包括ID1和第二层协议,第二层协议包括id1和第三层协议,第三层协议包括ID2、id2和第一数目。
该协议栈基于可认证消息的认证过程设计,其中第一层协议和第二层协议分别对应于对发送链和发送账户的认证过程,第三层协议对应于具体的通信过程和业务处理过程。通过这样设计协议栈,可使得在接收到可认证消息之后,对其分层验证并在验证通过之后获取消息内容并进行具体业务处理,因此,每层协议都具有其特定的认证语义,以便于分层认证的过程。
例如,所述第一数据为第一收据,第二区块链中的验证节点在通过中继端接收该第一收据之后,对所述可认证消息进行验证首先包括对可认证消息中第一层协议的发送链标识的验证。所述对发送链标识的验证包括,基于所述第一收据、各个区块的区块头和另外获取的第一区块中的与第一收据相关联的默克尔树路径,通过简单支付验证方法(spv验证方法)验证:所述第一收据来自于第一区块链中的第一区块,其中,所述默克尔树路径基于所述第一位置信息获取。另外,所述验证还可以包括对可认证消息中第二层协议中的发送账户的验证,具体是,可基于所述第一收据的发送字段,验证所述第一账户为发送所述可认证消息的账户。
在一个实施例中,第一层协议中还包括协议版本号字段和预留字段。以允许对该协议栈进行升级和扩展。其中,所述预留字段为空字段。
在一个实施例中,第二层协议中还包括类型字段,用于指示该可认证消息的使用场景类型。从而使得各个使用场景可叠加使用该协议栈。例如,针对不同的使用场景(即可认证消息中的不同的类型),所述消息内容字段中可对应于不同的内容、具有不同的格式等。例如,在本发明的转账场景中,可将所述类型字段设定为“转账类型”。
所述第三层协议中还包括序号字段,用于表示所述第一账户发送给所述第二账户的多个可认证消息的先后顺序。
图6示出根据本说明书实施例的高适用性的协议栈的示意图。如图6所示,相比于图4所示的协议栈,该协议栈的第一层协议中还包括版本号字段和预留字段,该协议栈的第二层协议中还包括类型字段,该协议栈的第三层协议中还包括序号字段。如上文所述,该协议栈可升级、可扩展,可用于多种场景类型,可进行多次通信,因此具有高适用性。
图7示出根据本说明书实施例的另一预定协议栈的示意图。如图7所示,图中最下层为根据本说明书实施例的第一层协议,该第一层协议中包括发送区块链标识字段(S_C_ID)、接收区块链标识字段(R_C_ID)和第二层协议;图中中间层为第二层协议,该第二层协议中包括发送账户字段(S_A_id)、接收账户字段(R_A_id)和第三层协议;图中最上层为第三层协议,该第三层协议中包括消息内容字段。可以理解,发送账户应为发送区块链中的账户,接收账户应为接收区块链中的账户。
例如,如上文所述,所述可认证消息为在第一区块链中的第一账户向第二区块链中的第二账户发送资源时存入第一区块链中的消息,假设第一区块链的链标识为ID1,第一账户为id1,第二区块链的链标识为ID2,第二账户为id2,则,图8示出了可认证消息的示意形式。如图8所示,根据图7所示的协议栈,第一层协议包括ID1、ID2和第二层协议,第二层协议包括id1、id2和第三层协议,第三层协议包括消息内容(即第一数目)。
该协议栈基于可认证消息的传输过程设计,其中第一层协议对应于从第一区块链到第二区块链之间的传输,第二层协议对应于从第一账户到第二账户之间的传输,第三层协议对应于在传输到第二账户之后基于消息内容的具体业务处理过程。通过这样设计协议栈,可使得在传输可认证消息的过程中,通过从外至内分层读取该可认证消息,即,首先通过读取第一层协议中的ID2,从而可将该可认证消息先传输到第二区块链,然后读取第二层协议中的id2,从而将相应的资源转给第二账户。
在一个实施例中,第一层协议中还包括协议版本号字段和预留字段。以允许对该协议栈进行升级和扩展。其中,所述预留字段为空字段。
在一个实施例中,第三层协议中还包括类型字段,用于指示该可认证消息的使用场景类型。从而使得各个使用场景可叠加使用该协议栈。所述第三层协议中还包括序号字段,用于表示所述第一账户发送给所述第二账户的多个可认证消息的先后顺序。
所述协议版本号字段、预留字段、类型字段、序号字段等各自对应的字段值可类似地在调用第一智能合约时作为输入参数传给第一智能合约,从而使得第一智能合约可基于这些输入参数输出包含这些字段值的可认证消息。
图9示出根据本说明书实施例的高适用性的协议栈的示意图。如图10所示,相比于图7所示的协议栈,该协议栈的第一层协议中还包括版本号字段和预留字段,该协议栈的第三层协议中还包括类型字段和序号字段。如上文所述,该协议栈可升级、可扩展,可用于多种场景类型,可进行多次通信,因此具有高适用性。
第一区块链在将第一账户的第一资源余额减少第一数目之后,根据与第二区块链的预定协议,由第一区块链平台将第一数目的第一资源发送给第二区块链平台。
在步骤S204,将所述第一数据和第一位置信息提供给所述中继端,以用于将所述可认证消息发送给所述第二区块链,以使得其中的第二账户的第二资源余额增加第二数目,所述第二数目基于所述第一数目和所述第一资源与第二资源之间的换算比例计算得出,其中,所述第一位置信息指示第一数据在第一区块链中的位置。
如上文所述,在本说明书实施例中,可使用不同的中继端,根据中继端的不同的实现方式,可通过不同的方法将第一数据提供给中继端。例如,该中继端本身为第一区块链和第二区块链中的节点,从而中继端可从本地存储的数据(如区块、状态树)中获取所述第一数据,并同时获取第一位置数据,所述第一位置信息指示第一数据在区块链中的位置,例如,在第一数据为收据的情况中,所述第一位置信息包括收据所在区块编号、以及收据在该区块中的编号等。例如,该中继端为与第一区块链和第二区块链都连接的中转装置,从而,第一区块链的任一节点可根据中继端的请求从本地获取该第一数据及其位置信息,并将其发送给该中继端。中继端在获取该第一数据及其位置信息之后,将根据其自身的形式的不同,执行不同的步骤,以用于将第一数据中的可认证消息提供给第二区块链中。
图10示出根据本说明书实施例的一种跨链接收资源的方法流程图,所述跨链接收为由第二区块链的第二账户从其它区块链接收,所述第二区块链与中继端连接,所述第二区块链中通过所述中继端同步有与至少一个其它区块链分别相关的至少一个第二数据,其中,所述至少一个其它区块链中包括第一区块链,其中,第一区块链中以第一资源作为可交换资源,第二区块链中以第二资源作为可交换资源,所述方法由第二区块链执行,包括:
步骤S1002,从所述中继端接收第一数据和第一位置信息,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目,所述第一位置信息指示所述第一数据在所述发送区块链中的位置;
步骤S1004,基于所述可认证消息中的第一区块链标识,获取与所述第一区块链相关的第二数据、以及所述第一资源与第二资源之间的换算比例;
步骤S1006,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证;以及
步骤S1008,在验证通过之后,基于所述可认证消息中的第二账户,由本地账户发起用于跨链接收资源的第二交易,以基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目,所述第二数目基于第一数目和所述换算比例计算得出。
在进行图2所示方法之后,中继端获取由第一账户存入第一区块链中的第一数据及其位置信息,并将该第一数据及其位置信息中转给第二区块链中的任一节点,该节点将该第一数据及其位置信息扩散到第二区块链中。在第二区块链中,例如在多个验证节点进行对所述可认证消息的验证,该验证节点中通过中继端同步有与其它各个区块链分别相关的各个第二数据,该第二数据用于进行对可认证消息的验证。根据具体的不同验证方式,所述验证节点各不相同,该第二数据也相应地不同,例如在通过简单支付验证(spv)方法进行验证的情况中,所述验证节点为spv节点,该第二数据为相应链中各个区块的区块头。
首先,在步骤S1002,从所述中继端接收第一数据和第一位置信息,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目,所述第一位置信息指示所述第一数据在所述发送区块链中的位置。
所述第一数据如上文所述,例如为通过中继端从第一区块链的区块中获取的具有预定标志的收据。中继端在从第一区块链中获取该收据及其位置之后即可中转给第二区块链,从而使得第二区块链中的各个节点获取该收据及其位置,从而使得第二区块链中的记账节点或验证节点等可进行下述步骤S1004-S1008。
在步骤S1004,基于所述可认证消息中的第一区块链标识,获取与所述第一区块链相关的第二数据、以及所述第一资源与第二资源之间的换算比例。
如上文所述,所述可认证消息中包括第一区块链标识,因此,在接收第一数据之后,可从第一数据中的可认证消息中的发送区块链标识字段获取第一区块链标识,从而从本地获取与第一区块链相关的第二数据。在确定发送区块链是第一区块链之后,可确定第一区块链中以第一资源作为可交换资源,从而,可从本地获取所述第一资源与第二资源之间的换算比例,以用于计算出与第一数目相应的第二数目。
在步骤S1006,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证。
在一个实施例中,所述第一数据为第一区块链的第一区块中的第一收据,所述第一位置信息包括第一区块的区块编号和第一收据在第一区块中的收据编号,所述与第一区块链相关的第二数据为第一区块链中的各个区块的区块头,其中,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证包括,基于所述第一收据、各个区块的区块头和另外获取的第一区块中的与第一收据相关联的默克尔树路径,通过简单支付验证方法(spv验证方法)验证:所述第一收据来自于第一区块链中的第一区块,其中,所述默克尔树路径基于所述第一位置信息获取。该spv验证方法包括以下具体步骤:
计算该第一收据的收据哈希值;
根据上述默克尔树路径,计算该默克尔树的根哈希值;
将计算的根哈希值与第一区块的区块头中的收据树根哈希值进行比较,以确定该第一收据是否在第一区块中。
在一个实施例中,所述spv验证还可以包括,在确定第一收据在第一区块中之后,根据第一区块的所处位置,验证该区块的区块头是否包含在已知最长链中,以确定该第一区块是否经过共识。在一个实施例中,所述区块链标识与区块链中创世块的头哈希值相对应,所述spv验证还可以包括,通过第一区块的区块头中的头哈希值和父哈希值及各个区块的区块头,验证该区块链的创世块的头哈希值是否对应于第一区块链的链标识。
在一个实施例中,所述第一收据由第一账户发送交易而存入区块链中,从而可基于所述第一收据的发送字段,验证所述第一账户为发送所述可认证消息的账户。
在步骤S1008,在验证通过之后,基于所述可认证消息中的第二账户,由本地账户发起用于跨链接收资源的第二交易,以基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目,所述第二数目基于第一数目和所述换算比例计算得出。
在一个实施例中,所述第二交易中调用第三智能合约,其中,基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目包括,基于对所述第三智能合约的执行,将所述第二账户的第二资源余额增加第二数目。可以理解,所述第二交易不限于调用第三智能合约来实现对第二账户的转账,例如,第二交易可以为第二区块链中阈值的用于跨链接收资源的特殊交易,从而,节点(例如记账节点)在执行该第二交易时,将第二账户的第二资源的余额增加第二数目。其中,所述第二数目基于第一数目和所述换算比例计算得出,也就是说,第一数目的第一资源与第二数目的第二资源应为等价的。
图11示出根据本说明书实施例的一种跨链发送资源的装置1100,所述跨链发送为从第一区块链的第一账户向其它区块链发送,所述第一区块链与中继端连接,所述中继端还与至少一个其它区块链连接,所述至少一个其它区块链中包括第二区块链,其中,第一区块链中以第一资源作为可交换资源,第二区块链中以第二资源作为可交换资源,所述装置部署在所述第一区块链,包括:
交易发起单元111,配置为,由所述第一账户发起用于跨链发送资源的第一交易,以基于对所述第一交易的执行,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目;以及
提供单元112,配置为,将所述第一数据和第一位置信息提供给所述中继端,以用于将所述可认证消息发送给所述第二区块链,以使得其中的第二账户的第二资源余额增加第二数目,所述第二数目基于所述第一数目和所述第一资源与第二资源之间的换算比例计算得出,其中,所述第一位置信息指示第一数据在第一区块链中的位置。
在一个实施例中,所述第一交易中包括对第一智能合约的调用,所述第一交易在调用第一智能合约时向第一智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,其中,所述交易发起单元111还配置为,通过对所述第一智能合约的执行,向所述第一区块链中存入经共识的第一数据。
在一个实施例中,所述第一交易中包括对第二智能合约的调用,所述第一交易在调用第二智能合约时向第二智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,所述第二智能合约中包括对所述第一智能合约的调用,所述第二智能合约在调用第一智能合约时向第一智能合约传入至少以下参数:第一账户、第二区块链标识、第二账户及第一数目,其中,所述交易发起单元111还配置为,通过对所述第二智能合约的执行,将第一账户的第一资源余额减少第一数目。
在一个实施例中,所述装置还包括发送单元113,配置为,在将第一账户的第一资源余额减少第一数目之后,根据与第二区块链的预定协议,由第一区块链平台将第一数目的第一资源发送给第二区块链平台。
图12示出根据本说明书实施例的一种跨链接收资源的装置1200,所述跨链接收为由第二区块链的第二账户从其它区块链接收,所述第二区块链与中继端连接,所述第二区块链中通过所述中继端同步有与至少一个其它区块链分别相关的至少一个第二数据,其中,所述至少一个其它区块链中包括第一区块链,其中,第一区块链中以第一资源作为可交换资源,第二区块链中以第二资源作为可交换资源,所述装置部署在第二区块链,包括:
接收单元121,配置为,从所述中继端接收第一数据和第一位置信息,其中,所述第一数据中包括可认证消息,所述可认证消息中至少包括满足预定协议的以下字段:发送区块链标识、发送账户、接收区块链标识、接收账户及消息内容,其分别对应于以下字段值:第一区块链标识、第一账户、第二区块链标识、第二账户及第一数目,所述第一位置信息指示所述第一数据在所述发送区块链中的位置;
获取单元122,配置为,基于所述可认证消息中的第一区块链标识,获取与所述第一区块链相关的第二数据、以及所述第一资源与第二资源之间的换算比例;
验证单元123,配置为,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证;以及
交易发起单元124,配置为,在验证通过之后,基于所述可认证消息中的第二账户,由本地账户发起用于跨链接收资源的第二交易,以基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目,所述第二数目基于第一数目和所述换算比例计算得出。
在一个实施例中,所述第一数据为第一区块链的第一区块中的第一收据,所述第一位置信息包括第一区块的区块编号和第一收据在第一区块中的收据编号,所述与第一区块链相关的第二数据为第一区块链中的各个区块的区块头,其中,所述验证单元123还配置为,基于所述第一收据、所述各个区块的区块头和第一区块中的与第一收据相关联的默克尔树路径,通过简单支付验证方法验证:所述第一收据来自于第一区块链中的第一区块,其中,所述默克尔树路径基于所述第一位置信息获取。
在一个实施例中,所述验证单元123还配置为,基于所述第一收据的发送字段,验证所述第一账户为发送所述可认证消息的账户。
在一个实施例中,所述第二交易中调用第三智能合约,其中,所述交易发起单元124还配置为,基于对所述第三智能合约的执行,将所述第二账户的第二资源余额增加第二数目。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
根据本说明书实施例的跨链方案抽象区块链互操作模型,设计一种可认证消息,使得区块链发出的消息可以被其他链认证:消息来自于哪条链,且由链上的哪个身份实体(账号/合约)发出。使得基于此可认证消息,允许进行跨链资源流转,并且该可认证消息保留较高的扩展性,支持叠加协议栈,使各种跨链互操作技术、应用场景都能标准化,另外,该可认证消息可以被异构平台实现,使得区块链仅实现一种跨链适配升级,可以接入多种跨链平台、连接多条链。
需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (32)
1.一种跨链发送资源的方法,所述方法由所述第一区块链执行,所述第一区块链与中继端连接,所述中继端还与第二区块链连接,所述方法包括:
由所述第一账户发起用于跨链发送资源的第一交易,以基于对所述第一交易的执行,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据,其中,所述第一数据中包括可认证消息;以及
将所述第一数据和第一位置信息提供给所述中继端,以用于将所述第一位置信息和所述可认证消息发送给所述第二区块链,以使得所述第二区块链在基于所述第一位置信息对所述可认证消息验证通过后将其中的第二账户的第二资源余额增加第二数目,其中,所述第一位置信息指示第一数据在第一区块链中的位置。
2.根据权利要求1所述的方法,其中,所述第一交易中包括对第一智能合约的调用,所述第一交易在调用第一智能合约时向第一智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,其中,向所述第一区块链中存入经共识的第一数据包括,通过对所述第一智能合约的执行,向所述第一区块链中存入经共识的第一数据。
3.根据权利要求2所述的方法,其中,所述第一交易中包括对第二智能合约的调用,所述第一交易在调用第二智能合约时向第二智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,所述第二智能合约中包括对所述第一智能合约的调用,所述第二智能合约在调用第一智能合约时向第一智能合约传入至少以下参数:第一账户、第二区块链标识、第二账户及第一数目,其中,将第一账户的第一资源余额减少第一数目包括,通过对所述第二智能合约的执行,将第一账户的第一资源余额减少第一数目。
4.根据权利要求2所述的方法,其中,所述第一数据被标注有预定标志。
5.根据权利要求4所述的方法,其中,所述第一数据为与所述第一交易对应的收据,所述收据中包括在执行所述第一智能合约之后生成的日志,所述日志的数据字段为所述可认证消息。
6.根据权利要求1所述的方法,其中,所述可认证消息满足预定协议栈,所述预定协议栈包括由外向内的第一至第三层协议,其中,第一层协议包括发送区块链标识字段和第二层协议,第二层协议包括发送账户字段和第三层协议,第三层协议包括接收区块链标识字段、接收账户字段和消息内容字段。
7.根据权利要求6所述的方法,其中,所述第一层协议中还包括协议版本号字段和预留字段。
8.根据权利要求6所述的方法,其中,所述第二层中还包括类型字段,用于指示该可认证消息的使用场景类型。
9.根据权利要求6所述的方法,其中,所述第三层协议中还包括序号字段,用于在所述第一账户向所述第二账户多次发送资源的情况中表示当前发送序号。
10.根据权利要求1所述的方法,其中,所述可认证消息满足预定协议栈,所述预定协议栈包括由外向内的第一至第三层协议,其中,第一层协议包括发送区块链标识字段、接收区块链标识字段和第二层协议,第二层协议包括发送账户字段、接收账户字段和第三层协议,第三层协议包括消息内容字段。
11.根据权利要求1所述的方法,还包括,在将第一账户的第一资源余额减少第一数目之后,根据与第二区块链的预定协议,由第一区块链平台将第一数目的第一资源发送给第二区块链平台。
12.一种跨链接收资源的方法,所述方法由第二区块链执行,所述第二区块链与中继端连接,所述中继端还与第一区块链连接,所述第二区块链中通过所述中继端同步有与所述第一区块链相关的第二数据,所述方法包括:
从所述中继端接收第一数据和第一位置信息,其中,所述第一数据中包括可认证消息,所述第一位置信息指示所述第一数据在所述发送区块链中的位置;
基于所述可认证消息中的第一区块链标识,获取与所述第一区块链相关的第二数据;
基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证;以及
在验证通过之后,基于所述可认证消息中的第二账户,由本地账户发起用于跨链接收资源的第二交易,以基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目。
13.根据权利要求12所述的方法,其中,所述第一数据为第一区块链的第一区块中的第一收据,所述第一位置信息包括第一区块的区块编号和第一收据在第一区块中的收据编号,所述与第一区块链相关的第二数据为第一区块链中的各个区块的区块头,其中,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证包括,基于所述第一收据、所述各个区块的区块头和第一区块中的与第一收据相关联的默克尔树路径,通过简单支付验证方法验证:所述第一收据来自于第一区块链中的第一区块,其中,所述默克尔树路径基于所述第一位置信息获取。
14.根据权利要求13所述的方法,其中,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证还包括,基于所述第一收据的发送字段,验证所述第一账户为发送所述可认证消息的账户。
15.根据权利要求12所述的方法,其中,所述第二交易中调用第三智能合约,其中,基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目包括,基于对所述第三智能合约的执行,将所述第二账户的第二资源余额增加第二数目。
16.一种跨链发送资源的装置,所述装置部署在所述第一区块链,所述第一区块链与中继端连接,所述中继端还与第二区块链连接,所述装置包括:
交易发起单元,配置为,由所述第一账户发起用于跨链发送资源的第一交易,以基于对所述第一交易的执行,将第一账户的第一资源余额减少第一数目,并向第一区块链中存入经共识的第一数据,其中,所述第一数据中包括可认证消息;以及
提供单元,配置为,将所述第一数据和第一位置信息提供给所述中继端,以用于将所述第一位置信息和所述可认证消息发送给所述第二区块链,以使得所述第二区块链在基于所述第一位置信息对所述可认证消息验证通过后将其中的第二账户的第二资源余额增加第二数目,其中,所述第一位置信息指示第一数据在第一区块链中的位置。
17.根据权利要求16所述的装置,其中,所述第一交易中包括对第一智能合约的调用,所述第一交易在调用第一智能合约时向第一智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,其中,所述交易发起单元还配置为,通过对所述第一智能合约的执行,向所述第一区块链中存入经共识的第一数据。
18.根据权利要求17所述的装置,其中,所述第一交易中包括对第二智能合约的调用,所述第一交易在调用第二智能合约时向第二智能合约传入至少以下参数:第二区块链标识、第二账户及第一数目,所述第二智能合约中包括对所述第一智能合约的调用,所述第二智能合约在调用第一智能合约时向第一智能合约传入至少以下参数:第一账户、第二区块链标识、第二账户及第一数目,其中,所述交易发起单元还配置为,通过对所述第二智能合约的执行,将第一账户的第一资源余额减少第一数目。
19.根据权利要求17所述的装置,其中,所述第一数据被标注有预定标志。
20.根据权利要求19所述的装置,其中,所述第一数据为与所述第一交易对应的收据,所述收据中包括在执行所述第一智能合约之后生成的日志,所述日志的数据字段为所述可认证消息。
21.根据权利要求16所述的装置,其中,所述可认证消息满足预定协议栈,所述预定协议栈包括由外向内的第一至第三层协议,其中,第一层协议包括发送区块链标识字段和第二层协议,第二层协议包括发送账户字段和第三层协议,第三层协议包括接收区块链标识字段、接收账户字段和消息内容字段。
22.根据权利要求21所述的装置,其中,所述第一层协议中还包括协议版本号字段和预留字段。
23.根据权利要求21所述的装置,其中,所述第二层中还包括类型字段,用于指示该可认证消息的使用场景类型。
24.根据权利要求21所述的装置,其中,所述第三层协议中还包括序号字段,用于在所述第一账户向所述第二账户多次发送资源的情况中表示当前发送序号。
25.根据权利要求16所述的装置,其中,所述可认证消息满足预定协议栈,所述预定协议栈包括由外向内的第一至第三层协议,其中,第一层协议包括发送区块链标识字段、接收区块链标识字段和第二层协议,第二层协议包括发送账户字段、接收账户字段和第三层协议,第三层协议包括消息内容字段。
26.根据权利要求16所述的装置,还包括发送单元,配置为,在将第一账户的第一资源余额减少第一数目之后,根据与第二区块链的预定协议,由第一区块链平台将第一数目的第一资源发送给第二区块链平台。
27.一种跨链接收资源的装置,所述装置部署在第二区块链,所述第二区块链与中继端连接,所述中继端还与第一区块链连接,所述第二区块链中通过所述中继端同步有与所述第一区块链相关的第二数据,所述装置包括:
接收单元,配置为,从所述中继端接收第一数据和第一位置信息,其中,所述第一数据中包括可认证消息,所述第一位置信息指示所述第一数据在所述发送区块链中的位置;
获取单元,配置为,基于所述可认证消息中的第一区块链标识,获取与所述第一区块链相关的第二数据;
验证单元,配置为,基于所述第一数据、与所述第一区块链相关的第二数据以及所述第一位置信息,对所述可认证消息进行验证;以及
交易发起单元,配置为,在验证通过之后,基于所述可认证消息中的第二账户,由本地账户发起用于跨链接收资源的第二交易,以基于对所述第二交易的执行,将所述第二账户的第二资源余额增加第二数目。
28.根据权利要求27所述的装置,其中,所述第一数据为第一区块链的第一区块中的第一收据,所述第一位置信息包括第一区块的区块编号和第一收据在第一区块中的收据编号,所述与第一区块链相关的第二数据为第一区块链中的各个区块的区块头,其中,所述验证单元还配置为,基于所述第一收据、所述各个区块的区块头和第一区块中的与第一收据相关联的默克尔树路径,通过简单支付验证方法验证:所述第一收据来自于第一区块链中的第一区块,其中,所述默克尔树路径基于所述第一位置信息获取。
29.根据权利要求28所述的装置,其中,所述验证单元还配置为,基于所述第一收据的发送字段,验证所述第一账户为发送所述可认证消息的账户。
30.根据权利要求27所述的装置,其中,所述第二交易中调用第三智能合约,其中,所述交易发起单元还配置为,基于对所述第三智能合约的执行,将所述第二账户的第二资源余额增加第二数目。
31.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-15中任一项的所述的方法。
32.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-15中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110334945.7A CN112862612B (zh) | 2019-06-28 | 一种跨链发送资源的方法和装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110334945.7A CN112862612B (zh) | 2019-06-28 | 一种跨链发送资源的方法和装置 | |
CN201910577318.9A CN110443704B (zh) | 2019-06-28 | 2019-06-28 | 一种跨链发送资源的方法和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910577318.9A Division CN110443704B (zh) | 2019-06-28 | 2019-06-28 | 一种跨链发送资源的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112862612A true CN112862612A (zh) | 2021-05-28 |
CN112862612B CN112862612B (zh) | 2024-04-30 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579595A (zh) * | 2022-05-06 | 2022-06-03 | 中国信息通信研究院 | 数据写入方法和装置、计算机可读存储介质、电子设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170132626A1 (en) * | 2015-11-05 | 2017-05-11 | Mastercard International Incorporated | Method and system for processing of a blockchain transaction in a transaction processing network |
CN107301536A (zh) * | 2017-06-12 | 2017-10-27 | 腾讯科技(深圳)有限公司 | 资源转移方法及装置 |
US20180113752A1 (en) * | 2016-10-20 | 2018-04-26 | International Business Machines Corporation | Inter-ledger messaging in a blockchain |
CN108009811A (zh) * | 2017-11-30 | 2018-05-08 | 中国人民解放军国防科技大学 | 一种面向云际计算环境价值交换的跨链通信方法 |
CN108573016A (zh) * | 2017-12-25 | 2018-09-25 | 北京金山云网络技术有限公司 | 一种数据一致性检查方法、装置、设备和存储介质 |
US10102265B1 (en) * | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
CN108683630A (zh) * | 2018-04-03 | 2018-10-19 | 阿里巴巴集团控股有限公司 | 跨区块链的认证方法及装置、电子设备 |
CN108848119A (zh) * | 2018-04-03 | 2018-11-20 | 阿里巴巴集团控股有限公司 | 跨区块链的交互方法及装置、系统、电子设备 |
CN109146448A (zh) * | 2018-07-13 | 2019-01-04 | 杭州复杂美科技有限公司 | 跨链资产转移方法、设备和存储介质 |
CN109150943A (zh) * | 2017-06-27 | 2019-01-04 | 华为技术有限公司 | 信息的传输方法、装置和系统 |
CN109409885A (zh) * | 2018-10-29 | 2019-03-01 | 深圳声笑科技有限公司 | 区块链上的跨链交易方法、装置及存储介质 |
US20190081793A1 (en) * | 2017-09-12 | 2019-03-14 | Kadena, LLC | Parallel-chain architecture for blockchain systems |
CN109685489A (zh) * | 2018-12-28 | 2019-04-26 | 杭州云象网络技术有限公司 | 一种区块链之间的资产跨链交易方法 |
CN109886661A (zh) * | 2019-01-16 | 2019-06-14 | 深圳壹账通智能科技有限公司 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
CN109934592A (zh) * | 2019-03-22 | 2019-06-25 | 深圳市网心科技有限公司 | 一种区块链跨链通信方法、系统、电子设备及存储介质 |
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170132626A1 (en) * | 2015-11-05 | 2017-05-11 | Mastercard International Incorporated | Method and system for processing of a blockchain transaction in a transaction processing network |
US20180113752A1 (en) * | 2016-10-20 | 2018-04-26 | International Business Machines Corporation | Inter-ledger messaging in a blockchain |
US10102265B1 (en) * | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
CN107301536A (zh) * | 2017-06-12 | 2017-10-27 | 腾讯科技(深圳)有限公司 | 资源转移方法及装置 |
CN109150943A (zh) * | 2017-06-27 | 2019-01-04 | 华为技术有限公司 | 信息的传输方法、装置和系统 |
US20190081793A1 (en) * | 2017-09-12 | 2019-03-14 | Kadena, LLC | Parallel-chain architecture for blockchain systems |
CN108009811A (zh) * | 2017-11-30 | 2018-05-08 | 中国人民解放军国防科技大学 | 一种面向云际计算环境价值交换的跨链通信方法 |
CN108573016A (zh) * | 2017-12-25 | 2018-09-25 | 北京金山云网络技术有限公司 | 一种数据一致性检查方法、装置、设备和存储介质 |
CN108848119A (zh) * | 2018-04-03 | 2018-11-20 | 阿里巴巴集团控股有限公司 | 跨区块链的交互方法及装置、系统、电子设备 |
CN108683630A (zh) * | 2018-04-03 | 2018-10-19 | 阿里巴巴集团控股有限公司 | 跨区块链的认证方法及装置、电子设备 |
CN109146448A (zh) * | 2018-07-13 | 2019-01-04 | 杭州复杂美科技有限公司 | 跨链资产转移方法、设备和存储介质 |
CN109409885A (zh) * | 2018-10-29 | 2019-03-01 | 深圳声笑科技有限公司 | 区块链上的跨链交易方法、装置及存储介质 |
CN109685489A (zh) * | 2018-12-28 | 2019-04-26 | 杭州云象网络技术有限公司 | 一种区块链之间的资产跨链交易方法 |
CN109886661A (zh) * | 2019-01-16 | 2019-06-14 | 深圳壹账通智能科技有限公司 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
CN109934592A (zh) * | 2019-03-22 | 2019-06-25 | 深圳市网心科技有限公司 | 一种区块链跨链通信方法、系统、电子设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579595A (zh) * | 2022-05-06 | 2022-06-03 | 中国信息通信研究院 | 数据写入方法和装置、计算机可读存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020258848A1 (zh) | 2020-12-30 |
TWI737165B (zh) | 2021-08-21 |
CN110443704A (zh) | 2019-11-12 |
CN110443704B (zh) | 2021-02-19 |
TW202101440A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443704B (zh) | 一种跨链发送资源的方法和装置 | |
CN110311790B (zh) | 一种跨链发送可认证消息的方法和装置 | |
CN110430162B (zh) | 一种跨链发送可认证消息的方法和装置 | |
CN110430235B (zh) | 跨链发送可认证消息的方法、装置、存储介质和计算设备 | |
CN110839029B (zh) | 一种微服务注册方法和装置 | |
CN112738139B (zh) | 一种跨链访问控制方法和装置 | |
CN112613877A (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN110910000A (zh) | 一种区块链资产管理方法和装置 | |
CN114567643A (zh) | 跨区块链的数据流转方法、装置及相关设备 | |
CN110417742B (zh) | 跨链发送、中转、接收可认证消息的方法、装置及存储介质 | |
CN113162971B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN113689216A (zh) | 跨链事务处理方法及装置、设备、存储介质、程序产品 | |
CN113034137A (zh) | 基于区块链的数据处理方法、装置及相关设备 | |
CN112862612B (zh) | 一种跨链发送资源的方法和装置 | |
CN113987598A (zh) | 区块的迁移方法和装置 | |
CN115701078A (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN111222991A (zh) | 一种区块链之间的跨链方法及系统 | |
CN116777631B (zh) | 基于区块链的交易上链方法及装置、设备、介质 | |
CN117196615A (zh) | 跨区块链的交易方法、装置、设备及存储介质 | |
CN116366254A (zh) | 跨链信息生成方法、跨链信息验证方法及跨链信息验证系统 | |
CN115834591A (zh) | 基于区块链的消息传递方法及相关设备 | |
CN116541021A (zh) | 基于区块链的应用发布方法、装置、电子设备及存储介质 | |
CN117353946A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN115705324A (zh) | 一种数据转移系统及方法 | |
CN116467062A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |