CN114331447A - 一种跨链消息提交方法及装置 - Google Patents
一种跨链消息提交方法及装置 Download PDFInfo
- Publication number
- CN114331447A CN114331447A CN202210254606.2A CN202210254606A CN114331447A CN 114331447 A CN114331447 A CN 114331447A CN 202210254606 A CN202210254606 A CN 202210254606A CN 114331447 A CN114331447 A CN 114331447A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- chain
- cross
- target
- request
- 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 48
- 238000012545 processing Methods 0.000 claims description 21
- 238000012546 transfer Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 17
- 230000006870 function Effects 0.000 description 22
- 230000003993 interaction Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种跨链消息提交方法及装置,所述方法包括:第一区块链生成目标跨链请求,并向第二区块链发送;所述第二区块链接收并执行所述目标跨链请求;所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链;所述第一区块链接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明;所述第一区块链基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中;如果是,在所述第一区块链中完成对所述目标跨链请求的提交。应用此方案,可以简化跨链消息提交的流程,提高跨链消息的可信度。
Description
技术领域
本说明书涉及区块链技术领域,尤其涉及一种跨链消息提交方法及装置。
背景技术
通常认为,区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式的基础架构与计算范式。
由于不同的区块链具有各自的数据基础,因此通常彼此数据不互通;为了在两条乃至多条区块链之间建立数据通路,就需要使用跨链技术,建立区块链之间的跨链消息收发机制。但是,现有的跨链消息收发机制为了保障消息的可通、可解释、可信任,往往存在对被连通的区块链结构要求严格(例如,要求被连通的区块链为相同算法的区块链)、且实施复杂的问题。
发明内容
有鉴于此,本说明书公开了一种跨链消息提交方法和装置。
根据本说明书实施例的第一方面,公开了一种跨链消息提交方法,包括:
第一区块链生成目标跨链请求,并向第二区块链发送;
所述第二区块链接收并执行所述目标跨链请求;
所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链;
所述第一区块链接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明;
所述第一区块链基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中;
如果是,在所述第一区块链中完成对所述目标跨链请求的提交。
可选的,所述第二区块链中部署有跨链消息合约;所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链,包括:
响应于被执行的所述目标跨链请求,调用所述跨链消息合约中的反馈逻辑,获取所述目标跨链请求的交易执行记录,生成所述目标跨链请求的交易执行记录的可验证证明,并返回至所述第一区块链。
可选的,所述第二区块链中部署有跨链业务合约;所述第二区块链接收并执行所述目标跨链请求,包括:
所述第二区块链接收所述目标跨链请求,并响应于所述目标跨链请求,调用所述跨链业务合约,完成与所述目标跨链请求对应的跨链业务。
可选的,所述跨链业务包括跨链转账业务,所述交易执行记录包括转账记录凭证。
可选的,从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明,包括:
与所述第二区块链节点中除生成所述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取所述目标跨链请求的交易执行记录对应的存在性证明。
可选的,与所述第二区块链节点中除生成所述可验证声明的节点之外的其他节点进行交互,包括:
在所述第二区块链有跨链消息处理能力的节点中随机选取除生成所述可验证声明的节点之外的任意目标节点;
与所述目标节点进行交互。
根据本说明书实施例的第二方面,公开了一种跨链消息提交装置,包括:
请求模块,用于令第一区块链生成目标跨链请求,并向第二区块链发送;
执行模块,用于令所述第二区块链接收并执行所述目标跨链请求;
返回模块,用于令所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链;
接收模块,用于令所述第一区块链接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明;
验证模块,用于令所述第一区块链基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中;
提交模块,用于在所述目标跨链请求的交易执行记录存在于所述第二区块链的分布式账本中的情况下,在所述第一区块链中完成对所述目标跨链请求的提交。
可选的,所述接收模块进一步:
与所述第二区块链节点中除生成所述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取所述目标跨链请求的交易执行记录对应的存在性证明。
可选的,所述接收模块进一步:
在所述第二区块链有跨链消息处理能力的节点中随机选取除生成所述可验证声明的节点之外的任意目标节点;
与所述目标节点进行交互。
根据本说明书实施例的第三方面,公开了一种跨链消息提交系统,包括第一区块链与第二区块链;其中,
所述第一区块链,用于生成目标跨链请求,并向所述第二区块链发送;
所述第二区块链,用于接收并执行所述目标跨链请求,生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链;
所述第一区块链还用于接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明并基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中;如果是,在所述第一区块链中完成对所述目标跨链请求的提交。
可选的,所述从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明,包括:
与所述第二区块链节点中除生成所述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取所述目标跨链请求的交易执行记录对应的存在性证明。
可选的,所述与所述第二区块链节点中除生成所述可验证声明的节点之外的其他节点进行交互,包括:
在所述第二区块链有跨链消息处理能力的节点中随机选取除生成所述可验证声明的节点之外的任意目标节点;
与所述目标节点进行交互。
根据本说明书实施例的第四方面,公开了一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一方面实施例所述的方法。
根据本说明书实施例的第五方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方面实施例所述的方法。
以上技术方案中,一方面,由于第二区块链可以生成与上述目标跨链请求的交易执行记录对应的可验证证明并返回至上述第一区块链,第一区块链可以从第二区块链中再获取上述目标跨链请求的交易执行记录对应的存在性证明,之后,即可通过上述可验证证明与上述存在性证明,验证上述目标跨链请求的交易执行记录是否存在于上述第二区块链的分布式账本中,从而保证跨链消息提交过程的安全性。
另一方面,由于第一区块链与第二区块链只需要具备生成、验证可验证证明和存在性证明的功能,就能够完成上述跨链消息提交流程,因此事实上放宽了对于参与跨链交互的区块链的结构要求;且对于第一区块链而言,最低只需要一个节点具备与第二区块链的跨链交互功能即可执行上述方案,因而降低了跨链方案的实施难度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
图1是本说明书示出的一种智能合约的新建与调用的流程示意图;
图2是本说明书示出的一种跨链消息提交方法的流程示例图;
图3是本说明书示出的一种跨链消息提交装置的结构示例图;
图4是本说明书示出的一种跨链消息提交系统的结构示例图;
图5是本说明书示出的一种用于跨链消息提交的计算机设备的结构示例图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与本说明书的一些方面相一致的系统和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
通常认为,区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式的基础架构与计算范式,根据所有权的区别可以被分为公有链、私有链、联盟链等等类型,根据是否支持编程则可以分为可编程区块链以及不可编程区块链。
其中,可编程区块链支持用户在可编程区块链网络中创建并调用一些复杂的逻辑,也即智能合约;不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以可编程区块链为例,支持用户在可编程区块链网络中创建并调用一些复杂的逻辑。可编程区块链作为一个可编程区块链,其核心是虚拟机(VM),每个可编程区块链节点都可以运行VM。VM通常被设计为图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在可编程区块链中发布和调用智能合约就是在VM上运行的。由于智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
请参见图1,图1是本说明书示出的一种创建智能合约和调用智能合约的示意图。可编程区块链中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。可编程区块链中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的VM可以分别执行该交易,将智能合约代码分布式的运行在可编程区块链网络中每个节点的虚拟机中。
在区块链的实际应用中,常常将具体的业务逻辑以智能合约的方式部署在区块链上,以实现业务逻辑的自动、可信执行;但是,由于不同的区块链具有各自的数据基础,因此通常彼此数据不互通,各自部署的智能合约也无法互相调用;为了在两条乃至多条区块链之间建立数据通路,就需要使用跨链技术,建立区块链之间的跨链消息收发机制。但是,现有的跨链消息收发机制为了保障消息的可通、可解释、可信任,往往存在对被连通的区块链结构要求严格(例如,要求被连通的区块链为相同算法的区块链)、且实施复杂的问题。
基于此,本说明书提出一种基于可验证证明与存在性证明来保证从第一区块链向第二区块链发出的目标跨链请求被第二区块链承认,从而简化跨链请求在第一区块链上提交前对是否得到第二区块链的承认的验证过程的技术方案。
在实现时,第一区块链中至少存在一个具备跨链通信功能的节点,可以由该节点向第二区块链发送目标跨链请求,并由第二区块链在执行该目标跨链请求之后生成对应的可验证证明,使得第一区块链可以使用该可验证证明与从第二区块链中获取的对应存在性证明两者一同确认上述目标跨链请求的交易执行记录是否存在于上述第二区块链的分布式账本中;并在确实存在的情况下在上述第一区块链中完成对上述目标跨链请求的提交。
以上技术方案中,一方面,由于第二区块链可以生成与上述目标跨链请求的交易执行记录对应的可验证证明并返回至上述第一区块链,第一区块链可以从第二区块链中再获取上述目标跨链请求的交易执行记录对应的存在性证明,之后,即可通过上述可验证证明与上述存在性证明,验证上述目标跨链请求的交易执行记录是否存在于上述第二区块链的分布式账本中,从而保证跨链消息提交过程的安全性。
另一方面,由于第一区块链与第二区块链只需要具备生成、验证可验证证明和存在性证明的功能,就能够完成上述跨链消息提交流程,因此事实上放宽了对于参与跨链交互的区块链的结构要求;且对于第一区块链而言,最低只需要一个节点具备与第二区块链的跨链交互功能即可执行上述方案,显然可以降低了跨链方案的实施难度。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图2,图2是本说明书一实施例提供的一种跨链消息提交方法,上述方法可以包括以下步骤S201至S206:
S201,第一区块链生成目标跨链请求,并向第二区块链发送。
在本说明书中,区块链也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的技术;通常,区块链具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的性质。区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。通常各种类型的区块链性质可能存在差异,进而可以用于满足不同的技术需求;例如,如果希望获得最高的去中心化程度,则可以选用公有链;如果希望兼顾去中心化程度和性能,则可以选用联盟链等等。在实施中,如果上述区块链采用联盟链的形式,那么组成上述区块链的区块链节点则可以由相关管理部门、普通用户、网络运营商等等多种类型的实体各自提供,以保证区块链记账权的相对公正合理;又例如,如果上述区块链采用通用的可编程区块链形式,则可以使用对应的、通用的智能合约构建相关功能,并取得更高的可信度;可见,各种形式的区块链各有优势,本领域技术人员可以根据具体的需求自行选择上述区块链的类型,本说明书不限定上述区块链的具体类型。
可以理解的是,上述区块链可以通过区块链即服务(BaaS,Blockchain as aService)平台对外交互。通常,BaaS平台可以通过为区块链上发生的活动(诸如订阅和通知、用户验证、数据库管理和远程更新),提供预先编写的应用的方式,面向与BaaS平台连接的客户端侧计算设备,提供灵活可定制的区块链服务。例如,在一个例子中,合约状态查询服务器需要与区块链进行数据通信,则BaaS平台可以提供诸如MQ(Message Queue,消息队列)服务应用;与BaaS平台连接的合约状态查询服务器,可以订阅BaaS平台连接的区块链系统中某一区块链上部署的智能合约,在触发执行后在区块链上产生的合约事件;而BaaS平台可以监听该智能合约在触发执行后在区块链上产生的事件,再基于MQ服务相关的软件,将该合约事件以通知消息的形式添加到消息队列中,使得订阅该消息队列的合约状态查询服务器能够得到与上述合约事件相关的通知。
因此,在本说明书中,上述区块链的具体形态和种类可以根据具体的业务场景、需求以及条件由相关技术人员自行选择适配,本说明书无需更多限定。
在本说明书中,上述第一区块链生成的上述目标跨链请求,具体可以包括任意需要由第二区块链执行、并在得到第二区块链执行回执后在第一区块链中记录提交的跨链消息;其中,跨链消息的提交动作可以标志着该跨链消息的相关前置动作均已完成;也就是说,在第一区块链向第二区块链发起跨链交互的情景下,目标跨链请求就是待提交的跨链消息。
本说明书更加侧重于提出一种通用的跨链消息的提交方案,该方案的实施通常不会受到跨链消息本身携带的业务信息(例如转账、存证等等)影响,因此本说明书无需对上述第一区块链生成并发出的上述目标跨链请求的具体内容进行限定,本领域技术人员可以根据具体的业务需求和开发环境,自行选择并设计上述目标跨链请求中携带的业务信息详情以及具体使用的数据结构等等。
此外,本说明书更加强调在跨链信息的处理过程中,参与跨链的第一区块链与第二区块链两者分别需要执行的动作,这些动作是本方案得以生效的必要特征;因而本说明书无需额外限定或者枚举上述目标跨链请求具体通过何种通信介质、网络结构被送达第二区块链。
S202,所述第二区块链接收并执行所述目标跨链请求。
在本说明书中,上述第二区块链可以接收上述第一区块链发出的目标跨链请求,并加以执行。具体而言,上述目标跨链请求本身既可以是一个能够被第二区块链直接执行的、符合第二区块链交易格式规范的交易,也可以是一个携带有符合上述规范的交易的数据包,还可以是一个能被上述第二区块链的跨链功能模块解释、转码得到符合上述规范的交易的其他数据格式。例如,上述第一区块链支持A结构的交易,上述第二区块链支持B结构的交易,那么,上述第一区块链向上述第二区块链发送的目标跨链请求,既可以是一个A结构的、能由第二区块链转换为B结构的交易,也可以是一个预先被转换为B结构、能够被第二区块链直接执行的交易,还可以是一个携带着能够被第二区块链直接执行的B结构的交易的数据包。因此,对上述目标跨链请求的执行过程中,是否需要包括解释、转码等适应性兼容工作,可以由本领域技术人员视具体业务需求而定,本说明书无需进行详细限定。
在示出的一种实施方式中,上述第二区块链中可以预先部署有用于实现跨链业务的跨链业务合约,而上述目标跨链请求则可以是用于调用该跨链业务合约的调用交易;在此情况下,上述第二区块链接收并执行上述目标跨链请求的过程,就可以包括:上述第二区块链接收上述目标跨链请求,并响应于上述目标跨链请求,调用上述跨链业务合约,完成与上述目标跨链请求对应的跨链业务。
而如前所述,本说明书所公开的方案更侧重于实现跨链消息提交的框架性动作描述,能够兼容多种具体的业务形式,因此本领域技术人员可以将任意能够通过智能合约实现的跨链业务与本方案相结合,即,将实现上述跨链业务的智能合约作为上述实施方式中的跨链业务合约,从而通过执行上述目标跨链请求(调用交易)的方式来对其进行调用。
在示出的一种实施方式中,上述跨链业务可以包括跨链转账业务,上述交易执行记录可以包括转账记录凭证。如前所述,上述跨链业务的具体内容可以根据具体应用场景和需求而定,其中跨链转账业务则是在跨链场景下可能出现的业务类型之一;在此情况下,通过上述跨链业务合约完成跨链转账业务,则合约被调用的记录,即交易执行记录,具体的内涵也就可以是转账记录凭证。
当然可以理解的是,通过跨链智能合约完成相关业务只是一种实现方式,上述目标跨链请求除了用于调用跨链智能合约以外,还可以不直接涉及智能合约;例如,上述目标跨链请求本身可以是一笔被第二区块链承认的、不用于直接调用智能合约的存证交易,该笔交易同样可以在第二区块链上被执行。
S203,所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链。
在本说明书中,上述第二区块链可以调用其搭载的可验证证明生成算法,生成与上述目标跨链请求的交易执行记录对应的可验证证明。在本领域中,可验证证明又称可验证声明,可以被理解为一个可以验证其真伪的“命题”,常用于向对方证明某信息的存在,且该存在性可以通过对应的技术手段进行验证;例如用户甲向用户乙发出其已经持有用户乙持有的某字符串的声明,即可视为发出了可验证证明,则用户乙只需向用户甲所求该字符串的指定散列算法下的散列值,再与自身计算出的散列值相比对,若相符则上述已经持有用户乙持有的某字符串的声明的为真,若不相符则上述已经持有用户乙持有的某字符串的声明的为假。
可以理解的是,本说明书更侧重于对于该技术工具的应用,而并非着重于提出一种新的可验证证明生成算法,因此本领域中普通技术人员可以参照相关资料完成具体的可验证证明的生成算法的设计和调用过程,本说明书无需更进一步详述。
在生成上述可验证证明之后,上述第二区块链即可将该可验证证明返回上述第一区块链;可以理解的是,上述第一区块链中的上述具有跨链功能的节点获得上述可验证证明,只是获知上述目标跨链请求已在上述第二区块链中被执行的声明,而该声明尚未得到验证。
在示出的一种实施方式中,上述生成可验证证明的过程,可以通过智能合约实现。具体而言,上述第二区块链中可以部署有跨链消息合约;在此情况下,上述第二区块链生成与上述目标跨链请求的交易执行记录对应的可验证证明、并返回至上述第一区块链的过程,就可以包括:响应于被执行的上述目标跨链请求,调用上述跨链消息合约中的反馈逻辑获取上述目标跨链请求的交易执行记录,生成上述目标跨链请求的交易执行记录的可验证证明,并返回至上述第一区块链。通过此种方式,可以将上述对于目标跨链请求被执行后的处理流程分布式地执行在区块链上,提高上述可验证证明生成过程的可靠性。
可以理解的是,上述跨链消息合约与上述跨链业务合约,既可以是一体的合约,也可以是分离的合约;也就是说,在第二区块链上,既可以布置一个综合性合约,即具备上述跨链消息合约的功能,也具备上述跨链业务合约的功能;也可以分别部署上述跨链消息合约与上述跨链业务合约。
S204,所述第一区块链接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明;
上述第一区块链在接收到上述第二区块链发送的上述可验证证明之后,可以从上述第二区块中再获取与上述目标跨链请求的交易执行记录对应的存在性证明;如前所述,上述可验证证明虽然携带了“上述目标跨链请求已经被第二区块链执行”这一信息,但该信息的真伪性需要对应的存在性证明来佐证。因此,上述第一区块链可以继续通过跨链交互的方式,请求上述第二区块链出示与上述目标跨链请求的交易执行记录对应的存在性证明。
在具体实现时,上述存在性证明可以是基于密码学的存在性证明,例如默克尔证明;在本领域中,利用默克尔树的构造性质给出的、使用包括根节点和其他必要节点的值来证明某一信息被存储在该默克尔树中的证明,被称作默克尔证明。由于许多区块链均采用默克尔树或者默克尔树的变种来存储交易执行记录,因此默克尔证明可以得到较多区块链的原生支持,选用默克尔证明作为上述存在性证明可以降低本方案的实施难度。
其中,上述第一区块链与上述第二区块链进行的交互过程,也可以视为上述第一区块链中的某一具有跨链功能的节点与上述第二区块链中的另一具有跨链功能的节点的交互,因此,如果上述第二区块链中的另一具有跨链功能的节点存在作恶行为,那么上述存在性证明的可靠性就会受到影响,进而无法较好地保障后续步骤的可靠性。
在示出的一种实施方式中,可以通过改变第二区块链中获取存在性证明的渠道的方式,提高上述存在性证明的可靠性;具体而言,上述从上述第二区块链中获取上述目标跨链请求的交易执行记录对应的存在性证明的过程,可以包括:与上述第二区块链节点中除生成上述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取上述目标跨链请求的交易执行记录对应的存在性证明。
举例而言,假设上述第二区块链中存在节点A、B、C、D共4个节点,其中节点A与节点B具备跨链交互功能,那么如果先前生成上述可验证声明的节点为上述节点A,那么在第一区块链尝试获取上述目标跨链请求的交易执行记录对应的存在性证明时,可以与上述第二区块链中除上述节点A以外具有跨链交互功能的节点、即节点B进行交互;这样,即使前述节点A作恶,上述节点B也可以将不受节点A作恶影响的、真实的存在性证明反馈给上述第一区块链;或者说,如果应用该方案,那么第二区块链作恶的成本将会成倍提高,从而降低了作恶成功的可能性,提高了上述存在性证明的可靠性。
在示出的一种实施方式中,还可以通过随机的方式,进一步提高上述存在性的可靠性。在实现时,与上述第二区块链节点中除生成上述可验证声明的节点之外的其他节点进行交互的过程,可以包括:首先在上述第二区块链有跨链消息处理能力的节点中随机选取除生成上述可验证声明的节点之外的任意目标节点;再与上述目标节点进行交互。
举例而言,假设上述第二区块链中存在节点A、B、C、D共4个节点,且所有节点均具备跨链交互功能,那么如果先前生成上述可验证声明的节点为上述节点A,那么在第一区块链尝试获取上述目标跨链请求的交易执行记录对应的存在性证明时,可以从上述第二区块链中除上述节点A以外具有跨链交互功能的节点(即节点B、节点C、节点D)中,随机选择任意一个节点进行交互、获取上述存在性证明;由于获取存在性证明时实际选择的节点是随机选取的,使得作恶方必须“买通”所有具有跨链交互功能的节点才能够保证作恶的成功率,因此可以通过提高作恶代价的方式间接提高上述存在性证明的可靠性。
S205,所述第一区块链基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中。
在本说明书中,上述第一区块链可以基于获取到的上述存在性证明,对上述第二区块链在执行上述目标跨链请求后返回的可验证证明的真实性进行验证,由于上述可验证证明与前述目标跨链请求的交易执行记录对应,也就是说其指示了“上述目标跨链请求的交易执行记录存在于上述第二区块链的分布式账本中”;如果验证通过,也就意味着上述目标跨链请求的交易执行记录,确实被证实存在于上述第二区块链的分布式账本中,进而意味着上述目标跨链请求作为一条跨链消息得到的上述第二区块链的承认。
S206,如果是,在所述第一区块链中完成对所述目标跨链请求的提交。
在本说明书中,在上述验证通过,即确定上述目标跨链请求的交易执行记录存在于上述第二区块链的分布式账本中的情况下,即可在上述第一区块链中完成对于上述目标跨链请求的提交。如前所述,跨链消息的提交动作可以标志着该跨链消息的相关前置动作均已完成;因此至此,本跨链消息提交方案完成。
当然可以理解的是,上述提交动作的具体方式,可以是将上述目标跨链请求的标识写入已提交跨链消息列表、或者对上述目标跨链请求添加预设的用于表征其已提交的标识符后存档记录等等方式;本说明书着重于通过在上述提交动作之前的步骤设计来提高整个跨链消息提交流程的安全性和便捷性,因此无需对上述提交动作的具体方式进行更多列举或者限定。
上述内容即为本说明书针对所述跨链消息提交方法的全部实施例。基于以上实施例可知,一方面,由于可通过上述可验证证明与上述存在性证明,验证上述目标跨链请求的交易执行记录是否存在于上述第二区块链的分布式账本中,从而保证跨链消息提交过程的安全性。
另一方面,由于第一区块链与第二区块链只需要具备生成、验证可验证证明和存在性证明的功能,就能够完成上述跨链消息提交流程,因此事实上放宽了对于参与跨链交互的区块链的结构要求;且对于第一区块链而言,最低只需要一个节点具备与第二区块链的跨链交互功能即可执行上述方案,因而可以降低跨链方案的实施难度。
本说明书还提供了对应的跨链消息提交装置的实施例如下:
请参见图3,图3是本说明书提出的一种跨链消息提交装置的结构图,该装置可以包括如下模块:
请求模块301,用于令第一区块链生成目标跨链请求,并向第二区块链发送;
执行模块302,用于令所述第二区块链接收并执行所述目标跨链请求;
返回模块303,用于令所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链;
接收模块304,用于令所述第一区块链接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明;
验证模块305,用于令所述第一区块链基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中;
提交模块306,用于在所述目标跨链请求的交易执行记录存在于所述第二区块链的分布式账本中的情况下,在所述第一区块链中完成对所述目标跨链请求的提交。
在示出的一种实施方式中,上述接收模块304可以进一步:与上述第二区块链节点中除生成上述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取上述目标跨链请求的交易执行记录对应的存在性证明。
在示出的一种实施方式中,上述接收模块304可以进一步:在上述第二区块链有跨链消息处理能力的节点中随机选取除生成上述可验证声明的节点之外的任意目标节点;与上述目标节点进行交互。
本说明书还提供了对应的跨链消息提交系统的实施例如下:
请参见图4,图4是本说明书提出的一种跨链消息提交系统的结构图,该系统可以包括第一区块链401与第二区块链402;其中,
所述第一区块链401,用于生成目标跨链请求,并向第二区块链402发送;
所述第二区块链402,用于接收并执行所述目标跨链请求,生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链401;
所述第一区块链401还用于接收所述可验证证明,并从所述第二区块链402中获取所述目标跨链请求的交易执行记录对应的存在性证明并基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链402的分布式账本中;如果是,在所述第一区块链401中完成对所述目标跨链请求的提交。
在示出的一种实施方式中,上述从上述第二区块链402中获取上述目标跨链请求的交易执行记录对应的存在性证明,可以包括:与上述第二区块链402节点中除生成上述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取上述目标跨链请求的交易执行记录对应的存在性证明。
在示出的一种实施方式中,上述与上述第二区块链402节点中除生成上述可验证声明的节点之外的其他节点进行交互,可以包括:在上述第二区块链402有跨链消息处理能力的节点中随机选取除生成上述可验证声明的节点之外的任意目标节点;与上述目标节点进行交互。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的跨链消息提交方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的跨链消息提交方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (14)
1.一种跨链消息提交方法,包括:
第一区块链生成目标跨链请求,并向第二区块链发送;
所述第二区块链接收并执行所述目标跨链请求;
所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链;
所述第一区块链接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明;
所述第一区块链基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中;
如果是,在所述第一区块链中完成对所述目标跨链请求的提交。
2.根据权利要求1所述的方法,所述第二区块链中部署有跨链消息合约;所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链,包括:
响应于被执行的所述目标跨链请求,调用所述跨链消息合约中的反馈逻辑,获取所述目标跨链请求的交易执行记录,生成所述目标跨链请求的交易执行记录的可验证证明,并返回至所述第一区块链。
3.根据权利要求1所述的方法,所述第二区块链中部署有跨链业务合约;所述第二区块链接收并执行所述目标跨链请求,包括:
所述第二区块链接收所述目标跨链请求,并响应于所述目标跨链请求,调用所述跨链业务合约,完成与所述目标跨链请求对应的跨链业务。
4.根据权利要求3所述的方法,所述跨链业务包括跨链转账业务,所述交易执行记录包括转账记录凭证。
5.根据权利要求1所述的方法,从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明,包括:
与所述第二区块链节点中除生成所述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取所述目标跨链请求的交易执行记录对应的存在性证明。
6.根据权利要求5所述的方法,与所述第二区块链节点中除生成所述可验证声明的节点之外的其他节点进行交互,包括:
在所述第二区块链有跨链消息处理能力的节点中随机选取除生成所述可验证声明的节点之外的任意目标节点;
与所述目标节点进行交互。
7.一种跨链消息提交装置,包括:
请求模块,用于令第一区块链生成目标跨链请求,并向第二区块链发送;
执行模块,用于令所述第二区块链接收并执行所述目标跨链请求;
返回模块,用于令所述第二区块链生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链;
接收模块,用于令所述第一区块链接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明;
验证模块,用于令所述第一区块链基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中;
提交模块,用于在所述目标跨链请求的交易执行记录存在于所述第二区块链的分布式账本中的情况下,在所述第一区块链中完成对所述目标跨链请求的提交。
8.根据权利要求7所述的装置,所述接收模块进一步:
与所述第二区块链节点中除生成所述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取所述目标跨链请求的交易执行记录对应的存在性证明。
9.根据权利要求8所述的装置,所述接收模块进一步:
在所述第二区块链有跨链消息处理能力的节点中随机选取除生成所述可验证声明的节点之外的任意目标节点;
与所述目标节点进行交互。
10.一种跨链消息提交系统,包括第一区块链与第二区块链;其中,
所述第一区块链,用于生成目标跨链请求,并向所述第二区块链发送;
所述第二区块链,用于接收并执行所述目标跨链请求,生成与所述目标跨链请求的交易执行记录对应的可验证证明,并返回至所述第一区块链;
所述第一区块链还用于接收所述可验证证明,并从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明并基于所述可验证证明与所述存在性证明,验证所述目标跨链请求的交易执行记录是否存在于所述第二区块链的分布式账本中;如果是,在所述第一区块链中完成对所述目标跨链请求的提交。
11.根据权利要求10所述的系统,所述从所述第二区块链中获取所述目标跨链请求的交易执行记录对应的存在性证明,包括:
与所述第二区块链节点中除生成所述可验证声明的节点之外其他有跨链消息处理能力的节点进行交互,获取所述目标跨链请求的交易执行记录对应的存在性证明。
12.根据权利要求11所述的系统,所述与所述第二区块链节点中除生成所述可验证声明的节点之外的其他节点进行交互,包括:
在所述第二区块链有跨链消息处理能力的节点中随机选取除生成所述可验证声明的节点之外的任意目标节点;
与所述目标节点进行交互。
13.一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现权利要求1~6任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210254606.2A CN114331447B (zh) | 2022-03-15 | 2022-03-15 | 一种跨链消息提交方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210254606.2A CN114331447B (zh) | 2022-03-15 | 2022-03-15 | 一种跨链消息提交方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114331447A true CN114331447A (zh) | 2022-04-12 |
CN114331447B CN114331447B (zh) | 2022-05-31 |
Family
ID=81034068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210254606.2A Active CN114331447B (zh) | 2022-03-15 | 2022-03-15 | 一种跨链消息提交方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114331447B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111461889A (zh) * | 2020-04-20 | 2020-07-28 | 同济大学 | 一种用于联盟区块链的跨链交易系统、方法及存储介质 |
CN111769957A (zh) * | 2020-09-02 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 区块链跨链查询方法、装置、设备和存储介质 |
WO2020258846A1 (zh) * | 2019-06-28 | 2020-12-30 | 创新先进技术有限公司 | 一种跨链发送可认证消息的方法和装置 |
CN112529706A (zh) * | 2020-12-10 | 2021-03-19 | 浙商银行股份有限公司 | 一种去中心化异构公有链资产交换方法 |
CN112581128A (zh) * | 2020-12-10 | 2021-03-30 | 浙商银行股份有限公司 | 一种具有存在证明的异构许可链价值交换方法 |
CN113489671A (zh) * | 2021-05-11 | 2021-10-08 | 深圳前海移联科技有限公司 | 一种跨联盟链通讯方法、装置、计算机设备及存储介质 |
-
2022
- 2022-03-15 CN CN202210254606.2A patent/CN114331447B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020258846A1 (zh) * | 2019-06-28 | 2020-12-30 | 创新先进技术有限公司 | 一种跨链发送可认证消息的方法和装置 |
CN111461889A (zh) * | 2020-04-20 | 2020-07-28 | 同济大学 | 一种用于联盟区块链的跨链交易系统、方法及存储介质 |
CN111769957A (zh) * | 2020-09-02 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 区块链跨链查询方法、装置、设备和存储介质 |
CN112529706A (zh) * | 2020-12-10 | 2021-03-19 | 浙商银行股份有限公司 | 一种去中心化异构公有链资产交换方法 |
CN112581128A (zh) * | 2020-12-10 | 2021-03-30 | 浙商银行股份有限公司 | 一种具有存在证明的异构许可链价值交换方法 |
CN113489671A (zh) * | 2021-05-11 | 2021-10-08 | 深圳前海移联科技有限公司 | 一种跨联盟链通讯方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114331447B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046023B (zh) | 一种基于区块链智能合约的数据处理方法及系统 | |
CN111461723B (zh) | 基于区块链的数据处理系统及方法、装置 | |
TWI719651B (zh) | 基於區塊鏈智慧合約的轉帳方法及系統 | |
CN111382168B (zh) | 在联盟链网络中创建节点组、基于节点组的交易方法 | |
CN110189121B (zh) | 数据处理方法、装置、区块链客户端和区块链节点 | |
CN109933404B (zh) | 一种基于区块链智能合约的编解码方法及系统 | |
CN110048846B (zh) | 一种基于区块链智能合约的签名验证方法及系统 | |
CN111047443B (zh) | 用户评分方法及装置、电子设备、计算机可读存储介质 | |
TWI716116B (zh) | 基於區塊鏈智慧合約的交易雜湊獲取方法及系統 | |
CN110245518B (zh) | 一种数据存储方法、装置及设备 | |
JP2024505692A (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
CN113472807B (zh) | 用户间的隐私通信方法和装置 | |
CN111985007A (zh) | 一种基于区块链的合同签署与执行方法及装置 | |
CN113221165B (zh) | 一种基于区块链的用户要素认证方法及装置 | |
CN110046991B (zh) | 一种基于区块链智能合约的数据处理方法及系统 | |
US20230259930A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
CN113935737A (zh) | 基于区块链的随机数生成方法及装置 | |
CN114331447B (zh) | 一种跨链消息提交方法及装置 | |
CN113949632B (zh) | 一种区块链的节点动态配置方法及装置 | |
CN115131029A (zh) | 基于区块链的数字文件签署方法及装置 | |
CN114398082B (zh) | 一种框架式区块链应用的兼容运行方法及装置 | |
CN114331442B (zh) | 一种区块链中智能合约的调用方法及装置 | |
CN114418578A (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 | ||
GR01 | Patent grant |