CN112200682B - 基于区块链的跨链交易方法、装置和计算机可读存储介质 - Google Patents
基于区块链的跨链交易方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112200682B CN112200682B CN202011406487.5A CN202011406487A CN112200682B CN 112200682 B CN112200682 B CN 112200682B CN 202011406487 A CN202011406487 A CN 202011406487A CN 112200682 B CN112200682 B CN 112200682B
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- transaction data
- cross
- chain
- 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.)
- Active
Links
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于区块链的跨链交易方法、装置和计算机可读存储介质,该方法包括:第一节点获取中继节点发送的针对目标交易数据的跨链交易数据包和树根证明信息;跨链交易数据包和树根证明信息是第二节点发给中继节点的;第一节点属于第一业务区块链;第二节点属于第二业务区块链;跨链交易数据包包括目标交易数据所属区块的目标默克尔树根和共识签名集合;共识签名集合是对跨链交易数据包共识通过后得到;对共识签名集合进行验证,根据树根证明信息对目标默克尔树根进行验证;当对共识签名集合和目标默克尔树根验证成功时执行与目标交易数据相关联的交易业务。采用本申请,可提高第一业务区块链与第二业务区块链之间的跨链交易的可靠性。
Description
技术领域
本申请涉及数据处理的技术领域,尤其涉及一种基于区块链的跨链交易方法、装置和计算机可读存储介质。
背景技术
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。简单的讲,区块链就是去中心化的分布式账本。
现有技术中,在实现第一区块链与第二区块链之间的跨链交易过程中,通常是基于智能合约来实现,即可以将第一区块链与第二区块链之间进行跨链交易相关的规则和协议写入智能合约,以实现第一区块链与第二区块链之间的跨链交易。此种场景下,一旦智能合约发生错误,则第一区块链与第二区块链之间的跨链交易也会变得不可靠。
发明内容
本申请提供了一种基于区块链的跨链交易方法、装置和计算机可读存储介质,可提高第一业务区块链与第二业务区块链之间的跨链交易的可靠性。
本申请一方面提供了一种基于区块链的跨链交易方法,该方法由第一节点执行,该方法包括:
获取中继节点发送的针对目标交易数据的跨链交易数据包和树根证明信息;跨链交易数据包和树根证明信息是由第二节点发送给中继节点的;第一节点属于第一业务区块链;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
当对共识签名集合和目标默克尔树根验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务。
本申请一方面提供了一种基于区块链的跨链交易方法,该方法由中继节点执行,该方法包括:
向第二节点获取针对目标交易数据的跨链交易数据包和树根证明信息;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
当对共识签名集合和目标默克尔树根验证成功时,将跨链交易数据包和树根证明信息发送给第一节点,以使第一节点在对共识签名集合和树根证明信息验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务;第一节点属于第一业务区块链。
本申请一方面提供了一种基于区块链的跨链交易方法,该方法包括:
第二节点创建针对目标交易数据的跨链交易数据包;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
中继节点向第二节点获取跨链交易数据包和针对目标默克尔树根的树根证明信息,将跨链交易数据包和树根证明信息发送给第一节点;第一节点属于第一业务区块链;
第一节点根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
当第一节点对共识签名集合和目标默克尔树根验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务。
本申请一方面提供了一种基于区块链的跨链交易装置,该装置可应用于第一节点,该装置包括:
获取模块,用于获取中继节点发送的针对目标交易数据的跨链交易数据包和树根证明信息;跨链交易数据包和树根证明信息是由第二节点发送给中继节点的;第一节点属于第一业务区块链;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
验证模块,用于根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
执行模块,用于当对共识签名集合和目标默克尔树根验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务。
其中,共识签名集合中包括至少两个共识签名;
验证模块,包括:
合法性验证单元,用于对至少两个共识签名的合法性进行验证,将验证出的具备合法性的共识签名确定为合法共识签名,统计合法共识签名的签名数量;至少两个共识签名中的一个共识签名是由第二业务区块链中的一个共识节点所生成;
第一集合验证单元,用于当签名数量大于或等于共识通过数量阈值时,确定对共识签名集合验证成功;
第二集合验证单元,用于当合法签名数量小于共识通过数量阈值时,确定对共识签名集合验证失败。
其中,至少两个共识签名包括共识节点gi对应的共识签名;i为小于或等于第二业务区块链中的共识节点的总数量的正整数;跨链交易数据包中还包括共识节点gi对应的共识签名所属的原始签名数据;
合法性验证单元,包括:
公钥获取子单元,用于从公钥数据集中获取共识节点gi所属的节点公钥;
解密子单元,用于基于共识节点gi所属的节点公钥和第一节点的节点私钥,对共识签名集合中共识节点gi对应的共识签名进行解密,得到解密签名数据;
第一签名验证子单元,用于验证当解密签名数据与原始签名数据相同时,确定共识节点gi对应的共识签名具备合法性;
第二签名验证子单元,用于当解密签名数据与原始签名数据不相同时,确定共识节点gi对应的共识签名不具备合法性。
其中,验证模块,包括:
树根生成单元,用于根据树根证明信息生成待验证默克尔树根;
第一树根对比单元,用于对比待验证默克尔树根和目标默克尔树根,当对比出待验证默克尔树根和目标默克尔树根相同时,确定对目标默克尔树根验证成功;
第二树根对比单元,用于当对比出待验证默克尔树根和目标默克尔树根不相同时,丢弃跨链交易数据包,确定对目标默克尔树根验证失败。
其中,执行模块,包括:
状态获取单元,用于当对共识签名集合和目标默克尔树根验证成功时,获取针对跨链交易数据包的数据执行状态信息;数据执行状态信息为未执行状态信息或已执行状态信息;
执行单元,用于当获取到的数据执行状态信息为未执行状态信息时,执行与跨链交易数据包中的目标交易数据相关联的交易业务;
丢弃单元,用于当获取到的数据执行状态信息为已执行状态信息时,丢弃跨链交易数据包。
其中,上述装置还包括:
高度获取模块,用于从跨链交易数据包中获取目标交易数据所属区块的区块高度;
第一查询模块,用于当根据第二业务区块链的区块链标识和区块高度,查询到第一业务区块链中不存在跨链交易数据包时,执行根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据中的目标默克尔树根进行验证的步骤;
第二查询模块,用于当根据区块链标识和区块高度,查询到第一业务区块链中存在跨链交易数据包时,丢弃中继节点发送的跨链交易数据包。
本申请一方面提供了一种基于区块链的跨链交易装置,该装置可应用于中继节点,该装置包括:
中继获取模块,用于向第二节点获取针对目标交易数据的跨链交易数据包和树根证明信息;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
中继验证模块,用于根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
发送执行模块,用于当对共识签名集合和目标默克尔树根验证成功时,将跨链交易数据包和树根证明信息发送给第一节点,以使第一节点在对共识签名集合和树根证明信息验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务;第一节点属于第一业务区块链。
其中,中继获取模块,包括:
询问信息发送单元,用于向第二节点发送针对跨链交易数据包的创建询问信息;
返回信息获取单元,用于获取第二节点根据创建询问信息所返回的目标交易数据的目标哈希值、以及目标交易数据所属区块的区块高度;
查询获取单元,用于当根据区块高度和第二业务区块链的区块链标识,查询到第一业务区块链中不存在跨链交易数据包时,根据区块高度向第二节点获取跨链交易数据包,根据目标哈希值向第二节点获取树根证明信息。
其中,发送执行模块,包括:
封装单元,用于根据第一业务区块链所指示的数据格式,对跨链交易数据包和树根证明信息进行封装,得到封装数据包;
封装包发送单元,用于将封装数据包发送给第一节点。
其中,中继获取模块,包括:
失败消息生成模块,用于当中继节点向第二节点获取跨链交易数据包和树根证明信息失败时,生成数据获取失败消息;
失败消息发送模块,用于将数据获取失败消息同步至相邻中继节点,以使相邻中继节点根据数据获取失败消息,向第二节点获取跨链交易数据包和树根证明信息。
本申请一方面提供了一种基于区块链的跨链交易系统,该系统包括第二节点、中继节点和第一节点;
第二节点用于创建针对目标交易数据的跨链交易数据包;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
中继节点用于向第二节点获取跨链交易数据包和针对目标默克尔树根的树根证明信息,将跨链交易数据包和树根证明信息发送给第一节点;第一节点属于第一业务区块链;
第一节点用于根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
第一节点用于当对共识签名集合和目标默克尔树根验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务。
其中,中继节点的数量为至少两个,每个中继节点均用于执行向第二节点获取跨链交易数据包和针对目标默克尔树根的树根证明信息,将跨链交易数据包和树根证明信息发送给第一节点的步骤。
其中,上述系统还包括:
第二节点用于获取共识数据;共识数据包括跨链交易数据包中除共识签名集合之外的数据;
第二节点用于将共识数据广播至第二业务区块链中的至少两个共识节点,以使至少两个共识节点对共识数据进行共识,当对共识数据共识通过后,得到针对共识数据的共识签名;
第二节点用于根据至少两个共识节点中对共识数据共识通过的共识节点所属的共识签名,生成共识签名集合。
本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
本申请可以由第二节点创建针对目标交易数据的跨链交易数据包;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根和针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名是在第二业务区块链的共识节点对跨链交易数据包共识通过后得到的;接着,中继节点可以向第二节点获取跨链交易数据包和针对目标默克尔树根的树根证明信息,将跨链交易数据包和树根证明信息发送给第一节点;第一节点属于第一业务区块链;第一节点可以根据共识签名集合的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证。当第一节点对共识签名集合和目标默克尔树根验证成功时,就可以执行与目标交易数据相关联的交易业务。由此可见,本申请提出的方法可以通过中继节点实现第一业务区块链与第二业务区块链之间的跨链交易,并且,第二业务节点需要对中继节点传输过来的共识签名集合以及目标默克尔树根同时验证成功之后,才会执行跨链交易,提高了跨链交易的可靠性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请提供的一种跨链交互的场景示意图;
图3是本申请提供的一种基于区块链的跨链交易方法的流程示意图;
图4是本申请提供的一种数据交互的场景示意图;
图5是本申请提供的一种数据验证执行的场景示意图;
图6是本申请提供的一种基于区块链的跨链交易方法的流程示意图;
图7是本申请提供的一种跨链交互的场景示意图;
图8是本申请提供的一种基于区块链的跨链交易方法的流程示意图;
图9是本申请提供的一种基于区块链的跨链交易装置的结构示意图;
图10是本申请提供的一种基于区块链的跨链交易装置的结构示意图;
图11是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及区块链相关技术。其中,区块链是指一套去中心化、具备分布式存储特点的基础架构,具体是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,能够安全存储有先后关系的、能在系统内进行验证的数据,并以密码学方式保证数据不可篡改和不可伪造。一条区块链中可以存在多个区块链节点,该多个区块链节点之间可以相互进行通信,请参见下述内容描述。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括第二业务区块链100a、中继节点集群101a和第一业务区块链102a。其中,第二业务区块链100a中可以包括多个区块链节点,该多个区块链节点之间可以相互进行数据交互,该多个区块链节点可以包括节点a1、节点a2、……和节点ai等i个节点。中继节点集群101a可以包括多个中继节点,该多个区块链节点之间可以相互进行数据交互,该多个中继节点可以包括中继节点b1、中继节点b2、……和中继节点bj等j个中继节点。第一业务区块链102a中可以包括多个区块链节点,该多个区块链节点之间可以相互进行数据交互,该多个区块链节点可以包括节点c1、节点c2、……和节点ck等k个节点。
更多的,第一业务区块链102a中的一个区块链节点、第二业务区块链100a中的一个区块链节点、或者中继节点集群101a中的一个中继节点,可以由服务器构成,也可以由终端设备构成。其中,用于构成区块链节点或者中继节点的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。用于构成区块链节点或者中继节点的终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等智能终端。
下面以第二业务区块链100a中的节点a1、中继节点集群101a中的中继节点b1以及第一业务区块链中的节点c1之间的数据交互为例,进行本申请实施例的具体描述。
本申请主要描述了两条不同的区块链中的节点之间可以进行跨链交互,因此下面就以第二业务区块链100a中的节点a1与第一业务区块链102a中的节点c1之间所实现的跨链交互过程为例进行说明。
请一并参见图2,图2是本申请提供的一种跨链交互的场景示意图。如图2所示,节点a1可以为发起跨链交易的节点,节点c1可以为接受跨链交易的节点。换句话说,节点a1所在的第二业务区块链100a可以为发起跨链交易的源链(起点),节点c1所在的第一业务区块链102a可以为跨链交易的目的链(终点)。
由于节点a1为发起跨链交易的节点,因此,当节点a1想要发起针对目标交易数据的跨链交易时,可以生成针对该目标交易数据的跨链交易数据包100b,该跨链交易数据包可以包括目标交易数据所属区块的区块高度、目标默克尔树根、共识签名集合101b以及目标交易数据。
其中,跨链交易数据包100b中的目标默克尔树根就为目标交易数据所属区块的默克尔树根,跨链交易数据包100b的共识签名集合101b中可以包括多个共识签名,该多个共识签名可以包括共识签名1、共识签名2、……和共识签名n,n的取值根据实际应用场景决定,对此不做限制。共识签名集合101b中的共识签名,是由第二业务链100a中的共识节点对跨链交易数据包100b中除共识签名集合101b之外的数据共识通过之后所得到的,一个共识节点对应于一个共识签名。
中继节点b1可以定时间隔地询问节点a1是否有创建新的跨链交易数据包,如果没有,则此次询问结束。若中继节点b1询问到节点a1创建有新的跨链交易数据包,例如创建有此处的跨链交易数据包100b,则中继节点b1可以向节点a1拉取跨链交易数据包100b,同时,中继节点b1还会向节点a1拉取针对跨链交易数据包100b中的目标默克尔树根的树根证明信息103b,该树根证明信息103b可以为用于生成目标默克尔树根的路径信息,该路径信息所在的路径为目标交易数据所属叶子节点所在的路径。即中继节点b1可以向节点a1拉取框102b中的跨链交易数据包100b以及树根证明信息103b。其中,中继节点b1向节点a1拉取跨链交易数据包100b和树根证明信息103b的具体过程,还可以参见下述图3对应的实施例中的描述。
中继节点b1可以将拉取到的跨链交易数据包100b和树根证明信息103b发送给节点c1。节点c1可以对跨链交易数据包100b中的共识签名集合101b进行验证,还可以根据树根证明信息103b对目标默克尔树根进行验证,即节点c1会对框104b中的共识签名集合101b和目标默克尔树根105b进行验证。当节点c1对共识签名集合101b和目标默克尔树根105b验证成功之后,节点c1就可以执行与目标交易数据相关联的交易业务(即执行框106b中的操作)。该目标交易数据可以指节点a1和节点c1之间进行交互的任意数据。其中,节点c1验证共识签名集合101b和目标默克尔树根105b的具体过程,也可以参见下述图3对应的实施例中的描述。
至此即实现了第二业务区块链100a中的节点a1与第一业务区块链102a中的节点c1之间的跨链数据交互。
采用本申请所提供的方法,可以基于中继节点来实现两条不同的区块链之间的数据交互,并且,跨链交易的目的链需要对针对目标交易数据的目标默克尔树根以及共识签名集合验证通过后,才会执行与目标交易数据相关联的交易业务,这也保证了交易的可靠性。
请参见图3,图3是本申请提供的一种基于区块链的跨链交易方法的流程示意图。如图3所示,该方法可以包括:
步骤S101,获取中继节点发送的针对目标交易数据的跨链交易数据包和树根证明信息;跨链交易数据包和树根证明信息是由第二节点发送给中继节点的;第一节点属于第一业务区块链;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
具体的,本申请实施例的执行主体可以是第一节点,第一节点可以是第一业务区块链中的任意一个区块链节点,第一业务区块链可以是任意一条区块链。一个区块链节点可以由一个或者多个计算机设备构成,该计算机设备可以是终端设备,也可以是服务器,因此第一节点可以是由一个或者多个计算机设备所构成。
第一节点可以获取到中继节点所发送的针对目标交易数据的跨链交易数据包和树根证明信息。中继节点向第一节点发送的跨链交易数据包和树根证明信息,是由第二节点发送给中继节点的。第二节点可以是第二业务区块链中的任意一个区块链节点,例如可以选取第二业务区块链中的某个区块链节点作为提案节点,该提案节点就是用于生成跨链交易数据包的区块链节点,可以将该提案节点作为第二节点。第二业务区块链可以是任意一条区块链。第二业务区块链与第一业务区块链不是同一条区块链。例如上述图2对应实施例中节点c1可以为第一节点,节点a1可以为第二节点。
其中,中继节点可以是能提供中继服务的任意设备或者计算机程序。中继节点可以不属于第一业务区块链,也可以不属于第二业务区块链。可以在中继节点和第一节点之间配置rbc(无线承载控制)接口,即可实现中继节点与第一节点之间的相互访问。可以在中继节点和第二节点之间也配置rbc(无线承载控制)接口,即可实现中继节点与第二节点之间的相互访问。中继节点的数量可以是多个(至少两个)。
请参见图4,图4是本申请提供的一种数据交互的场景示意图。如图4所示,中继节点集群中可以包括中继节点1、中继节点2、中继接点3和中继节点4,该中继节点1、中继节点2、中继接点3和中继节点4可以相互连接通信。第一业务区块链中可以包括节点1、节点2、节点3、节点4和节点5,该节点1、节点2、节点3、节点4和节点5可以相互连接通信。第二业务区块链中可以包括节点6、节点7、节点8、节点9和节点10,该节点6、节点7、节点8、节点9和节点10可以相互连接通信。
因此,上述第一节点可以为第一业务区块链的节点1、节点2、节点3、节点4和节点5中的任意一个节点。第二节点可以为第二业务区块链的节点6、节点7、节点8、节点9和节点10中的任意一个节点。第一节点和第二节点可以通过中继节点集群中的中继节点1、中继节点2、中继接点3和中继节点4中的任意一个中继节点实现跨链交易。
其中,第二节点想要向第一节点发起针对目标交易数据的跨链交易时,就可以生成针对目标交易数据的跨链交易数据包。可以将目标交易数据在第二业务区块链中所在的区块,称之为目标交易数据所属的区块。该跨链交易数据包中可以包括目标交易数据所属区块的区块高度、默克尔树根以及针对跨链交易数据包的共识签名集合。
可以将目标交易数据所属区块中的默克尔树根,称之为目标默克尔树根。上述共识签名集合中可以包括多个共识签名,该多个共识签名是由第二业务区块链中的多个共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所生成的,一个共识节点可以生成一个共识签名。
因此,当第二节点生成上述跨链交易数据包之后,中继节点就可以在第二节点处获取到该跨链交易数据,此外,中继节点还可以向第二节点获取到针对目标默克尔树根的树根证明信息。该树根证明信息就可以是目标交易数据所属区块的默克尔树中,目标交易数据的哈希值所属的叶子节点所在的路径的路径信息。可以理解的是,若该树根证明信息是真实有效的,则可以通过该树根证明信息反向生成目标默克尔树根。
上述过程即为,中继节点可以向第二节点获取到针对目标交易数据的跨链交易数据以及树根证明信息。中继节点可以将获取到的跨链交易数据和树根证明信息发送给第一节点,第一节点就获取到了针对目标交易数据的跨链交易数据包和树根证明信息。
步骤S102,根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
具体的,第一节点获取到跨链交易数据包和树根证明信息之后,就可以对跨链交易数据包中的共识签名集合以及目标默克尔树根进行验证,请参见下述内容描述。
其中,第一节点验证目标默克尔树根的过程可以为:
第一节点可以根据树根证明信息生成一个默克尔树根,可以将第一节点根据树根证明信息所生成的默克尔树根,称之为待验证默克尔树根。第一节点可以对该待验证默克尔树根和目标默克尔树根进行对比,当对比出待验证默克尔树根与目标默克尔树根相同时,就可以确定对目标默克尔树根验证成功。当第一节点对比出待验证默克尔树根与目标默克尔树根不相同时,就可以确定对目标默克尔树根验证失败,对目标默克尔树根验证失败时,表明跨链交易数据包不可信,就可以丢弃该跨链交易数据包,无需再进行当前的跨链交易。
其中,第一节点验证共识签名集合的过程可以为:
共识签名集合中可以包括多个(至少两个)共识签名,第一节点可以对共识签名集合中的每个共识签名的合法性进行验证。共识签名集合中可以包括共识节点gi对应的共识签名,i为小于或者等于第二业务区块链中所有共识节点的总数量的正整数,共识节点gi可以是第二业务区块链中的任意一个共识节点。由于第一节点验证每个共识签名的合法性的原理都是相同的,因此此处以验证共识节点gi的合法性为例进行说明,请参见下述内容描述。
每个共识签名可以是使用所属共识节点的私钥以及第一节点的公钥进行双重加密的。而每个共识节点(第二业务区块链中的共识节点)的公钥可以是公开的,因此,第一节点可以存储有或者可以获取到第二业务区块链中的每个共识节点的公钥(可以称为节点公钥)。
因此,可以理解的是,第一节点中可以存储有公钥数据集,该公钥数据集中可以存储有第二业务区块链中的每个共识节点的节点公钥。第一节点可以从公钥数据集中获取到共识节点gi所属的节点公钥。第一节点可以使用共识节点gi所属的节点公钥以及第一节点自己的私钥,对共识节点gi所属的共识签名进行解密,即可得到对共识节点gi所属的共识签名进行解密后的数据,可以将对共识节点gi所属的共识签名进行解密后的数据称之为解密签名数据。
其中,跨链交易数据包中还可以包括对共识节点gi所属的共识签名加密之前的原始数据(即未加密的数据),可以将共识节点gi所属的共识签名加密之前的原始数据称之为共识节点gi对应的共识签名所属的原始签名数据。
第一节点可以对共识节点gi对应的共识签名所属的解密签名数据以及原始签名数据进行对比,当第一节点对比出共识节点gi对应的共识签名所属的解密签名和原始签名数据相同时,则可以确定共识节点gi对应的共识签名具备合法性。当第一节点对比出共识节点gi对应的共识签名所属的解密签名和原始签名数据不相同时,则可以确定共识节点gi对应的共识签名不具备合法性。
通过对共识节点gi所属的共识签名进行合法性验证相同的原理,第一节点可以对共识签名集合中的每个共识签名的合法性进行验证。第一节点可以将共识签名集合中验证出的具备合法性的共识签名,作为合法共识签名。
第一节点可以统计所有合法共识签名的签名数量,当该签名数量大于或者等于共识通过数量阈值时,就可以确定对共识签名集合验证成功。当该签名数量小于共识通过数量阈值时,就可以确定对共识签名集合验证失败。该共识通过数量阈值可以根据实际应用场景自行设定,例如,该共识通过数量阈值可以等于第二业务区块链中所有共识节点的总数量的2/3。
可选的,上述中继节点可以有多个,每个中继节点都可以向第二节点获取到针对目标交易数据的跨链交易数据包以及树根证明信息,每个中继节点都可以将获取到的跨链交易数据包以及树根证明信息发送给第一节点。这可以保证当某个或者少数几个中继节点出现故障时,第一节点也可以正常获取到其他没有发生故障的中继节点所发送的跨链交易数据包以及树根证明信息。
因此,为了防止第一节点重复获取到多个中继节点发送的跨链交易数据包以及树根证明信息,第一节点可以在跨链交易数据包中获取到目标交易数据所属区块的区块高度,第一节点可以根据该区块高度查询第一业务区块链中是否存在当前获取到的跨链交易数据包。可以理解的是,若第一节点获取到跨链交易数据包,对跨链交易数据包进行存储时,可以是将跨链交易数据包、该跨链交易数据包对应的区块高度(即目标交易数据所属区块的区块高度)以及第二业务区块链的区块链标识关联存储的,因此通过区块高度和第二业务区块链的区块链标识,就可以在第一业务区块链中查询到是否存储有对应的跨链交易数据包。
当第一节点根据第二业务区块链的区块链标识和当前获取到的跨链交易数据包中的区块高度,查询到第一业务区块链中不存在当前获取到的跨链交易数据包时,第一节点才会根据上述的过程,对该跨链交易数据包中的共识签名集合以及目标默克尔树根进行验证。
而当第一节点根据第二业务区块链的区块链标识和当前获取到的跨链交易数据包中的区块高度,查询到第一业务区块链中存在当前获取到的跨链交易数据包时,第一节点可以丢弃当前获取到的中继节点所发送的跨链交易数据包,保留已经存储有的跨链交易数据包即可,而不需要再对当前获取到的跨链交易数据包中的共识签名集合和目标默克尔树根进行验证。
步骤S103,当对共识签名集合和目标默克尔树根验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务;
具体的,当第一节点对共识签名集合和目标默克尔树根均验证成功时,第一节点还可以获取针对跨链交易数据包的数据执行状态信息,该数据执行状态信息可以是未执行状态信息,或者可以是已执行状态信息。该未执行状态信息表示第一节点还没有执行与该跨链交易数据包中的目标交易数据相关联的交易业务,该已执行状态信息表示第一节点已经执行了与该跨链交易数据包中的目标交易数据相关联的交易业务。
当第一节点获取到的数据执行状态信息为未执行状态信息时,第一节点就可以执行与跨链交易数据包中的目标交易数据相关联的交易业务。当第一节点获取到的数据执行状态信息为已执行状态信息时,表明第一节点已经存储有当前获取到的跨链交易数据包,并且也已经执行了与目标交易数据相关联的交易业务,第一节点就可以将当前获取到的跨链交易数据包丢弃,无需再重复执行与目标交易数据相关联的交易业务。
其中,目标交易数据可以指第一节点与第二节点之间进行交互的任意数据。第一节点执行与目标交易数据相关联的交易业务,可以指对目标交易数据所执行的相关联的任意操作。例如,对目标交易数据进行编辑存储上链的操作业务,或者是根据目标交易数据对某个账户的余额进行增减的操作业务等。
请参见图5,图5是本申请提供的一种数据验证执行的场景示意图。第一节点100c可以对共识签名集合101c进行验证。该共识签名集合101c中可以包括共识签名1、共识签名2、……和共识签名n,n的数值根据实际应用场景决定。
首先,第一节点100c可以对共识签名集合101c中的每个共识签名的合法性进行验证,即可筛选出共识签名集合101c中具有合法性的共识签名,即筛选出框102c中的多个共识签名,框102c中的多个共识签名即为合法共识签名。
第一节点100c可以统计框102c中的多个共识签名的签名数量,当该签名数量大于或者等于共识通过数量阈值时,第一节点100c可以得到结论103c,结论103c即为对共识签名集合101c验证成功。
接着,第一节点100c可以根据树根证明信息104c生成待验证默克尔树根105c。第一节点100c可以对待验证默克尔树根105c和目标默克尔树根106c进行对比,当对比结果为对比结果107c,即对比出待验证默克尔树根105c和目标默克尔树根106c相同时,第一节点100c可以得到结论108c。结论108c即为对目标默克尔树根验证成功。
其中,上述第一节点100c对共识签名集合101c和目标默克尔树根108c进行验证时,不分验证的先后顺序。
当第一节点100c得到上述结论103c和结论108c时,第一节点100c就可以执行操作109c,操作109c即为执行与目标交易数据相关联的业务服务。
采用本申请所提供的方法,可以通过中继节点实现第一节点与第二节点之间的跨链交易,并通过对共识签名集合以及目标默克尔树根进行验证的过程,保证了跨链交易的可靠性。
请参见图6,图6是本申请提供的一种基于区块链的跨链交易方法的流程示意图,如图6所示,该方法可以包括:
步骤S201,向第二节点获取针对目标交易数据的跨链交易数据包和树根证明信息;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
具体的,本申请实施例中的执行主体可以是中继节点,中继节点可以向第二节点获取到针对目标交易数据的跨链交易数据包以及树根证明信息。其中,第二节点属于第二业务区块链。跨链交易数据中包括目标交易数据所属区块的目标默克尔树根以及共识签名集合。共识签名集合中的共识签名,是在第二业务区块链中的共识节点对跨链交易数据中除共识签名集合之外的数据共识通过后所得到的,一个共识节点可以生成一个共识签名。该共识签名可以为共识节点对跨链交易数据中除共识签名集合之外的数据进行投票时,投票通过的签名。
其中,对中继节点、第二节点、跨链交易数据包和树根证明信息的具体描述,还可以参见上述步骤S101中的描述,此处不再进行赘述。
其中,中继节点向第二节点获取跨链交易数据包和树根证明信息的过程可以是:
中继节点可以向第二节点发送针对跨链交易数据包的创建询问信息,中继节点向第二节点发送针对跨链交易数据包的创建询问信息,就是为了询问第二节点当前是否有创建跨链交易数据包。例如,中继节点可以按照时间周期,定时向第二节点发送针对跨链交易数据包的创建询问信息,例如每隔1秒向第二节点发送一次创建询问信息。
第二节点可以根据获取到的创建询问信息查询自己是否有创建跨链交易数据包(即是否有创建新的跨链交易数据包),若第二节点查询没有创建跨链交易数据包,则可以向中继节点返回一个未创建提示信息,就无需再执行后续的操作。若第二节点查询到创建有跨链交易数据包,则可以向中继节点返回目标交易数据的哈希值以及目标交易数据所属区块的区块高度。可以将目标交易数据的哈希值称之为目标哈希值。
可选的,中继节点可以有多个,本申请实施例中的执行主体可以为任意一个中继节点。为了以防不同中继节点之间重复向第一节点发送跨链交易数据包和树根证明信息,每个中继节点在获取到第二节点返回的目标交易数据所属区块的区块高度和目标哈希值之后,都可以先根据获取到的目标交易数据所属区块的区块高度、以及第二业务区块链的区块链标识,向第一节点查询第一业务区块链中是否已经存储有针对目标交易数据的跨链交易数据包。其中,对第一节点的描述也请参见上述图3对应的实施例中的描述。
可以理解的是,第一节点在存储获取到针对目标交易数据的跨链交易数据包时,都可以将该跨链交易数据包、目标交易数据所属区块的区块高度、以及该跨链交易数据包的来源链(即第二业务区块链)的区块链标识进行关联存储。
因此,通过目标交易数据所属区块的区块高度、以及第二业务区块链的区块链标识,可以查询到第一业务区块链中是否存储有针对目标交易数据的跨链交易数据包。
若中继节点向第一节点查询到第一业务区块链中存在(即存储有)针对目标交易数据的跨链交易数据包时,表明其他中继节点已经将跨链交易数据包发送给第一节点了,当前的中继节点就可以不用再向第二节点获取跨链交易数据包以及树根证明信息。
若中继节点(即当前的中继节点)向第一节点查询到第一业务区块链中不存在(即未存储有)针对目标交易数据的跨链交易数据包时,中继节点就可以根据目标交易数据所属区块的区块高度向第二节点拉取针对目标交易数据的跨链交易数据包,并可以根据获取到的目标哈希值向第二节点拉取到树根证明信息,该树根证明信息就可以为默克尔树中目标哈希值这一叶子节点所在的路径信息。
可选的,多个中继节点之间可以是按照顺序依次排列的,具体的排序规则可以根据实际应用场景进行设置。可以将当前作为本申请实施例的执行主体的中继节点之外的中继节点,且为当前作为本申请实施例的执行主体的中继节点的后一个中继节点,称之为作为执行主体的中继节点的相邻中继节点。
此处将作为执行主体的中继节点统称为中继节点。若中继节点发生故障,向第二节点获取跨链交易数据包和树根证明信息失败时,中继节点可以生成数据获取失败消息。中继节点可以将该数据获取失败消息发送给相邻中继节点。使得相邻中继节点可以根据该数据获取失败消息,得知中继节点获取跨链交易数据包和树根证明信息失败时,相邻中继节点可以向第二节点获取跨链交易数据包和树根证明信息。
相邻中继节点可以将获取到的跨链交易数据包和树根证明信息再给到中继节点,使得中继节点可以继续执行下述步骤S202-步骤S203中所描述的内容,或者下述步骤S202-步骤S203中所描述的内容也可以直接由相邻中继节点来执行。
步骤S202,根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
具体的,中继节点也可以根据跨链交易数据包中的共识签名集合所包括的共识签名的合法性和数量,对共识签名集合进行验证,并根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证。
其中,中继节点对共识签名集合和目标默克尔树根的验证过程,与上述图3对应的实施例中第一节点对共识签名集合和目标默克尔树根的验证过程相同,此处不再进行赘述。
由于中继节点在对共识签名集合进行验证的过程中,有可能会使用到第一节点的节点私钥,因此中继节点在对共识签名集合进行验证的过程中,可以向第一节点获取到第一节点的节点私钥,以实现对共识签名集合中的共识签名的合法性的验证。
步骤S203,当对共识签名集合和目标默克尔树根验证成功时,将跨链交易数据包和树根证明信息发送给第一节点,以使第一节点在对共识签名集合和树根证明信息验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务;第一节点属于第一业务区块链;
具体的,当中继节点对共识签名集合和目标默克尔树根验证成功时,中继节点可以将跨链交易数据包和树根证明信息发送给第一节点。可选的,中继节点可以根据第一业务区块链所指示的数据格式,对跨链交易数据包和树根证明信息进行封装,得到封装数据包,该封装数据包中就包括跨链交易数据包和树根证明信息。因此,中继节点可以将该封装数据包发送给第一节点,以实现将跨链交易数据包和树根证明信息发送给第一节点。其中,第一业务区块链所指示的数据格式就是第一业务区块链可以支持的数据格式,也就是第一业务区块链中的区块链节点可以支持的数据格式。
第一节点在获取到跨链交易数据包和树根证明信息之后,也可以对该跨链交易数据包中的目标默克尔树根和共识签名集合进行验证。此处第一节点对跨链交易数据包中的目标默克尔树根和共识签名集合进行验证的具体过程,可以参见上述图3对应的实施例中第一节点对跨链交易数据包中的目标默克尔树根和共识签名集合进行验证的过程,此处也不再进行赘述。
当第一节点对跨链交易数据包中的目标默克尔树根和共识签名集合进行验证成功之后,就可以执行与跨链交易数据包中的目标交易数据相关联的交易业务。由于目标交易数据可以是第一节点与第二节点在进行跨链数据交互的任意数据,例如目标交易数据可以是第二节点同步给第一节点的数据资料,或者目标交易数据可以是第二节点同步给第一节点针对某个账户的账户变动数据等。
请参见图7,图7是本申请提供的一种跨链交互的场景示意图。如图7所示,①:中继节点100d可以定时向第二节点101d发送创建询问信息。②:若第二节点101d根据创建询问信息,检测到没有创建跨链交易数据包(实际上,为没有创建新的跨链交易数据包),则第二节点101d可以向中继节点发送未创建消息,当前跨链交易结束。③:若第二节点101d根据创建询问信息,检测到自己已经创建了跨链交易数据包(实际上,为创建了新的跨链交易数据包),则第二节点101d可以向中继节点返回目标交易数据所属区块的区块高度以及目标交易数据的目标哈希值。
④:中继节点100d可以根据区块高度,向第一节点102d查询第一业务区块链中是否存储有包括该区块高度的跨链交易数据包。⑤:第一节点102d若查询到第一业务区块链中不存在所查询的跨链交易数据包时,第一节点102d可以向中继节点返回不存在消息,以告知中继节点100d第一业务区块链中还未存储所查询的跨链交易数据包。
⑥:中继节点100d在获取到第一节点102d发送的不存在消息之后,就可以向第二节点101d拉取针对目标交易数据的跨链交易数据包和树根证明信息。⑦:中继节点100d可以将拉取到的跨链交易数据包和树根证明信息发送给第一节点102d。第一节点可以执行操作103d,即对中继节点所发送的跨链交易数据包中的目标默克尔树根和共识签名集合进行验证。通过对跨链交易数据包中的目标默克尔树根和共识签名集合进行验证,第一节点可以执行操作104d或者执行操作105d。
其中,执行操作104d,即为当对跨链交易数据包中的目标默克尔树根和共识签名集合验证成功时,第一节点就可以执行与目标交易数据相关联的交易业务。执行操作105d,即为当对跨链交易数据包中的目标默克尔树根和共识签名集合验证失败时,第一节点就可以丢弃中继节点所发送的跨链交易数据包,不执行与目标交易数据相关联的交易业务。
其中,可以理解的是,上述图3对应的申请实施例中所提供的方法与图6对应的申请实施例中所提供的方法,实际上为同一方法,只是图3对应的申请实施例中是以第一节点为执行主体,图6对应的申请实施例中是以中继节点为执行主体,因此,图3对应的申请实施例中所描述的内容,都可以与图6对应的申请实施例中所描述的内容结合起来。
通过本申请所提供的方法,中继节点也可以先查询第一业务区块链中是否存在跨链交易数据包,结合上上述图3对应的实施例中,第一节点自己也会查询第一业务区块链中是否存在跨链交易数据包,这双重保证了第一节点不会重复处理同一个跨链交易数据包。此外,不仅第一节点可以对共识签名集合和目标默克尔树根进行验证,中继节点也可以对共识签名集合和目标默克尔树根进行验证,这也双重保证了第一节点与第二节点之间的跨链交易的可靠性。
请参见图8,图8是本申请提供的一种基于区块链的跨链交易方法的流程示意图,如图8所示,该方法可以包括:
步骤S301,第二节点创建针对目标交易数据的跨链交易数据包;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点对跨链交易数据包共识通过后所得到的签名;
具体的,本申请所提供的跨链交易系统中可以包括第二节点、中继节点和第一节点。首先,第二节点在需要对第一节点发起针对目标交易数据的跨链交易时,第二节点可以创建针对目标交易数据的跨链交易数据包。对第一节点、第二节点、中继节点、以及跨链交易数据包的具体描述,都可以参见上述图3对应的申请实施例中的描述。
其中,第二节点获取跨链交易数据包中的共识签名集合的过程可以为:
第二节点可以获取共识数据,该共识数据包括跨链交易数据包中除共识签名集合之外的数据,可以将共识数据理解为初始的跨链交易数据包,初始的跨链交易数据包中不包括共识签名集合,但可以包括跨链交易数据包中除共识签名集合之外的所有数据。
第二节点可以将共识数据广播给第二业务区块链中的每个共识节点,该每个共识节点都可以对该共识数据进行共识,当共识节点对该共识数据共识通过(即投票通过)后,就可以生成针对该共识数据的共识签名。当共识节点对该共识数据共识不通过时,可以无需生成该共识签名。一个共识节点可以生成一个共识签名。
共识节点在生成共识签名之后,可以将所生成的共识签名给到第二节点。第二节点可以根据所有共识节点中对共识数据共识通过的共识节点所生成的共识签名,生成共识签名集合。该共识签名集合中就包括对共识数据共识通过的共识节点所生成的共识签名。
步骤S302,中继节点向第二节点获取跨链交易数据包和针对目标默克尔树根的树根证明信息;第一节点属于第一业务区块链;
具体的,第二节点创建跨链交易数据包之后,中继节点可以向第二节点获取到该跨链交易数据包以及针对目标默克尔树根的树根证明信息。中继节点向第二节点获取跨链交易数据包和树根证明信息的过程可以参见上述图6对应的实施例中的描述。
步骤S303,中继节点将跨链交易数据包和树根证明信息发送给第一节点;
具体的,中继节点可以将获取到的跨链交易数据包和树根证明信息发送给第一节点。中继节点在将获取到的跨链交易数据包和树根证明信息发送给第一节点之前,也可以先查询第一业务区块链中是否已经存在有跨链交易数据包,若中继节点查询到第一业务区块链中已经存在有跨链交易数据包,则可以不再向第一节点发送跨链交易数据包和树根证明信息。若中继节点查询到第一业务区块链中不存在有跨链交易数据包,则可以向第一节点发送跨链交易数据包和树根证明信息。
步骤S304,第一节点根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
具体的,第一节点获取到中继节点发送的跨链交易数据包和树根证明信息之后,可以对该跨链交易数据包中的目标默克尔树根和共识签名集合进行验证。此处第一节点对跨链交易数据包中的目标默克尔树根和共识签名集合进行验证的具体过程,可以参见上述图3对应的实施例中第一节点对跨链交易数据包中的目标默克尔树根和共识签名集合进行验证的过程,此处也不再进行赘述。
步骤S305,当第一节点对共识签名集合和目标默克尔树根验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务;
具体的,当第一节点对共识签名集合均验证成功时,第一节点就可以执行与跨链交易数据包中的目标交易数据相关联的交易业务。
可选的,上述中继节点可以有多个,每个中继节点都可以用于向第二节点获取跨链交易数据包和树根证明信息,并可以将获取到的跨链交易数据包和树根证明信息发送给第一节点。
可以理解的是,上述图3对应的申请实施例中所提供的方法、图6对应的申请实施例中所提供的方法、与图8对应的申请实施例中所提供的方法,实际上为同一方法,只是图8对应的申请实施例中是以第一节点、中继节点和第二节点共同作为执行主体,因此,图3对应的申请实施例中所描述的内容和图6对应的申请实施例中所描述的内容,都可以与图8对应的申请实施例中所描述的内容结合起来。
通过本申请所提供的方法,可以通过中继节点实现第一节点与第二节点之间可靠的跨链交易。
请参见图9,图9是本申请提供的一种基于区块链的跨链交易装置的结构示意图。该跨链交易装置1可以应用于第一节点,该跨链交易装置1可以用于执行上述图3对应的实施例中所描述的各个步骤,该跨链交易装置1可以包括:获取模块11、验证模块12和执行模块13;
获取模块11,用于获取中继节点发送的针对目标交易数据的跨链交易数据包和树根证明信息;跨链交易数据包和树根证明信息是由第二节点发送给中继节点的;第一节点属于第一业务区块链;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
验证模块12,用于根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
执行模块13,用于当对共识签名集合和目标默克尔树根验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务。
其中,获取模块11、验证模块12和执行模块13的具体功能实现方式请参见图3对应的实施例中的步骤S101-步骤S103,这里不再进行赘述。
其中,共识签名集合中包括至少两个共识签名;
验证模块12,包括:合法性验证单元121、第一集合验证单元122和第二集合验证单元123;
合法性验证单元121,用于对至少两个共识签名的合法性进行验证,将验证出的具备合法性的共识签名确定为合法共识签名,统计合法共识签名的签名数量;至少两个共识签名中的一个共识签名是由第二业务区块链中的一个共识节点所生成;
第一集合验证单元122,用于当签名数量大于或等于共识通过数量阈值时,确定对共识签名集合验证成功;
第二集合验证单元123,用于当合法签名数量小于共识通过数量阈值时,确定对共识签名集合验证失败。
其中,合法性验证单元121、第一集合验证单元122和第二集合验证单元123的具体功能实现方式请参见图3对应的实施例中的步骤S102,这里不再进行赘述。
其中,至少两个共识签名包括共识节点gi对应的共识签名;i为小于或等于第二业务区块链中的共识节点的总数量的正整数;跨链交易数据包中还包括共识节点gi对应的共识签名所属的原始签名数据;
合法性验证单元121,包括:公钥获取子单元1211、解密子单元1212、第一签名验证子单元1213和第二签名验证子单元1214;
公钥获取子单元1211,用于从公钥数据集中获取共识节点gi所属的节点公钥;
解密子单元1212,用于基于共识节点gi所属的节点公钥和第一节点的节点私钥,对共识签名集合中共识节点gi对应的共识签名进行解密,得到解密签名数据;
第一签名验证子单元1213,用于验证当解密签名数据与原始签名数据相同时,确定共识节点gi对应的共识签名具备合法性;
第二签名验证子单元1214,用于当解密签名数据与原始签名数据不相同时,确定共识节点gi对应的共识签名不具备合法性。
其中,公钥获取子单元1211、解密子单元1212、第一签名验证子单元1213和第二签名验证子单元1214的具体功能实现方式请参见图3对应的实施例中的步骤S102,这里不再进行赘述。
其中,验证模块12,包括:树根生成单元124、第一树根对比单元125和第二树根对比单元126;
树根生成单元124,用于根据树根证明信息生成待验证默克尔树根;
第一树根对比单元125,用于对比待验证默克尔树根和目标默克尔树根,当对比出待验证默克尔树根和目标默克尔树根相同时,确定对目标默克尔树根验证成功;
第二树根对比单元126,用于当对比出待验证默克尔树根和目标默克尔树根不相同时,丢弃跨链交易数据包,确定对目标默克尔树根验证失败。
其中,树根生成单元124、第一树根对比单元125和第二树根对比单元126的具体功能实现方式请参见图3对应的实施例中的步骤S102,这里不再进行赘述。
其中,执行模块13,包括:状态获取单元131、执行单元132和丢弃单元133;
状态获取单元131,用于当对共识签名集合和目标默克尔树根验证成功时,获取针对跨链交易数据包的数据执行状态信息;数据执行状态信息为未执行状态信息或已执行状态信息;
执行单元132,用于当获取到的数据执行状态信息为未执行状态信息时,执行与跨链交易数据包中的目标交易数据相关联的交易业务;
丢弃单元133,用于当获取到的数据执行状态信息为已执行状态信息时,丢弃跨链交易数据包。
其中,状态获取单元131、执行单元132和丢弃单元133的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
其中,上述装置1还包括:高度获取模块14、第一查询模块15和第二查询模块16;
高度获取模块14,用于从跨链交易数据包中获取目标交易数据所属区块的区块高度;
第一查询模块15,用于当根据第二业务区块链的区块链标识和区块高度,查询到第一业务区块链中不存在跨链交易数据包时,执行根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据中的目标默克尔树根进行验证的步骤;
第二查询模块16,用于当根据区块链标识和区块高度,查询到第一业务区块链中存在跨链交易数据包时,丢弃中继节点发送的跨链交易数据包。
其中,高度获取模块14、第一查询模块15和第二查询模块16的具体功能实现方式请参见图3对应的实施例中的步骤S102,这里不再进行赘述。
本申请可以由第二节点创建针对目标交易数据的跨链交易数据包;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根和针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名是在第二业务区块链的共识节点对跨链交易数据包共识通过后得到的;接着,中继节点可以向第二节点获取跨链交易数据包和针对目标默克尔树根的树根证明信息,将跨链交易数据包和树根证明信息发送给第一节点;第一节点属于第一业务区块链;第一节点可以根据共识签名集合的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证。当第一节点对共识签名集合和目标默克尔树根验证成功时,就可以执行与目标交易数据相关联的交易业务。由此可见,本申请提出的装置可以由中继节点打通第一业务区块链与第二业务区块链之间的跨链交易,并且,第二业务节点需要对中继节点传输过来的共识签名集合以及目标默克尔树根同时验证成功之后,才会执行跨链交易,提高了跨链交易的可靠性。
请参见图10,图10是本申请提供的一种基于区块链的跨链交易装置的结构示意图。该跨链交易装置2可以应用于中继节点,该跨链交易装置2可以用于执行上述图6对应的实施例中所描述的各个步骤,该跨链交易装置2可以包括:中继获取模块21、中继验证模块22和发送执行模块23;
中继获取模块21,用于向第二节点获取针对目标交易数据的跨链交易数据包和树根证明信息;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根、以及针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名,是在第二业务区块链中的共识节点,对跨链交易数据包中除共识签名集合之外的数据共识通过后所得到的签名;
中继验证模块22,用于根据共识签名集合中的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证;
发送执行模块23,用于当对共识签名集合和目标默克尔树根验证成功时,将跨链交易数据包和树根证明信息发送给第一节点,以使第一节点在对共识签名集合和树根证明信息验证成功时,执行与跨链交易数据包中的目标交易数据相关联的交易业务;第一节点属于第一业务区块链。
其中,中继获取模块21、中继验证模块22和发送执行模块23的具体功能实现方式请参见图6对应的实施例中的步骤S201-步骤S203,这里不再进行赘述。
其中,中继获取模块21,包括:询问信息发送单元211、返回信息获取单元212和查询获取单元213;
询问信息发送单元211,用于向第二节点发送针对跨链交易数据包的创建询问信息;
返回信息获取单元212,用于获取第二节点根据创建询问信息所返回的目标交易数据的目标哈希值、以及目标交易数据所属区块的区块高度;
查询获取单元213,用于当根据区块高度和第二业务区块链的区块链标识,查询到第一业务区块链中不存在跨链交易数据包时,根据区块高度向第二节点获取跨链交易数据包,根据目标哈希值向第二节点获取树根证明信息。
其中,询问信息发送单元211、返回信息获取单元212和查询获取单元213的具体功能实现方式请参见图6对应的实施例中的步骤S201,这里不再进行赘述。
其中,发送执行模块23,包括:封装单元231和封装包发送单元232;
封装单元231,用于根据第一业务区块链所指示的数据格式,对跨链交易数据包和树根证明信息进行封装,得到封装数据包;
封装包发送单元232,用于将封装数据包发送给第一节点。
其中,封装单元231和封装包发送单元232的具体功能实现方式请参见图6对应的实施例中的步骤S203,这里不再进行赘述。
其中,中继获取模块21,包括:失败消息生成模块214和失败消息发送模块215;
失败消息生成模块214,用于当中继节点向第二节点获取跨链交易数据包和树根证明信息失败时,生成数据获取失败消息;
失败消息发送模块215,用于将数据获取失败消息同步至相邻中继节点,以使相邻中继节点根据数据获取失败消息,向第二节点获取跨链交易数据包和树根证明信息。
其中,失败消息生成模块214和失败消息发送模块215的具体功能实现方式请参见图6对应的实施例中的步骤S201,这里不再进行赘述。
本申请可以由第二节点创建针对目标交易数据的跨链交易数据包;第二节点属于第二业务区块链;跨链交易数据包中包括目标交易数据所属区块的目标默克尔树根和针对跨链交易数据包的共识签名集合;共识签名集合中的共识签名是在第二业务区块链的共识节点对跨链交易数据包共识通过后得到的;接着,中继节点可以向第二节点获取跨链交易数据包和针对目标默克尔树根的树根证明信息,将跨链交易数据包和树根证明信息发送给第一节点;第一节点属于第一业务区块链;第一节点可以根据共识签名集合的共识签名的合法性和数量对共识签名集合进行验证,根据树根证明信息对跨链交易数据包中的目标默克尔树根进行验证。当第一节点对共识签名集合和目标默克尔树根验证成功时,就可以执行与目标交易数据相关联的交易业务。由此可见,本申请提出的装置可以由中继节点打通第一业务区块链与第二业务区块链之间的跨链交易,并且,第二业务节点需要对中继节点传输过来的共识签名集合以及目标默克尔树根同时验证成功之后,才会执行跨链交易,提高了跨链交易的可靠性。
请参见图11,图11是本申请提供的一种计算机设备的结构示意图。如图11所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文图3和图6中任一个所对应实施例中对基于区块链的跨链交易方法的描述。应当理解,本申请中所描述的计算机设备1000,也可执行前文图9所对应实施例中对基于区块链的跨链交易装置1的描述、以及前文图10所对应实施例中对基于区块链的跨链交易装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的基于区块链的跨链交易装置1和跨链交易装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3和图6中任一个所对应实施例中对基于区块链的跨链交易方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖范围。
Claims (15)
1.一种基于区块链的跨链交易方法,其特征在于,由第一节点执行所述方法,所述方法包括:
获取中继节点发送的针对目标交易数据的跨链交易数据包和树根证明信息;所述跨链交易数据包和所述树根证明信息是由第二节点发送给所述中继节点的;所述第一节点属于第一业务区块链;所述第二节点属于第二业务区块链;所述跨链交易数据包中包括所述目标交易数据所属区块的目标默克尔树根、以及针对所述跨链交易数据包的共识签名集合;所述共识签名集合中的共识签名,是在所述第二业务区块链中的共识节点,对所述跨链交易数据包中除所述共识签名集合之外的数据共识通过后所得到的签名;
根据所述共识签名集合中的共识签名的合法性和数量对所述共识签名集合进行验证,根据所述树根证明信息对所述跨链交易数据包中的所述目标默克尔树根进行验证;
当对所述共识签名集合和所述目标默克尔树根验证成功时,确定所述跨链交易数据包中的所述目标交易数据属于共识通过的合法数据,执行与所述目标交易数据相关联的交易业务。
2.根据权利要求1所述的方法,其特征在于,所述共识签名集合中包括至少两个共识签名;所述根据所述共识签名集合中的共识签名的合法性和数量对所述共识签名集合进行验证,包括:
对至少两个共识签名的合法性进行验证,将验证出的具备合法性的共识签名确定为合法共识签名,统计所述合法共识签名的签名数量;所述至少两个共识签名中的一个共识签名是由所述第二业务区块链中的一个共识节点所生成;
当所述签名数量大于或等于共识通过数量阈值时,确定对所述共识签名集合验证成功;
当所述合法签名数量小于所述共识通过数量阈值时,确定对所述共识签名集合验证失败。
3.根据权利要求2所述的方法,其特征在于,所述至少两个共识签名包括共识节点gi对应的共识签名;i为小于或等于第二业务区块链中的共识节点的总数量的正整数;所述跨链交易数据包中还包括所述共识节点gi对应的共识签名所属的原始签名数据;
所述对至少两个共识签名的合法性进行验证,包括:
从公钥数据集中获取所述共识节点gi所属的节点公钥;
基于所述共识节点gi所属的节点公钥和所述第一节点的节点私钥,对所述共识签名集合中所述共识节点gi对应的共识签名进行解密,得到解密签名数据;
当所述解密签名数据与所述原始签名数据相同时,确定所述共识节点gi对应的共识签名具备合法性;
当所述解密签名数据与所述原始签名数据不相同时,确定所述共识节点gi对应的共识签名不具备合法性。
4.根据权利要求1所述的方法,其特征在于,所述根据所述树根证明信息对所述跨链交易数据包中的所述目标默克尔树根进行验证,包括:
根据所述树根证明信息生成待验证默克尔树根;
对比所述待验证默克尔树根和所述目标默克尔树根,当对比出所述待验证默克尔树根和所述目标默克尔树根相同时,确定对所述目标默克尔树根验证成功;
当对比出所述待验证默克尔树根和所述目标默克尔树根不相同时,丢弃所述跨链交易数据包,确定对所述目标默克尔树根验证失败。
5.根据权利要求1所述的方法,其特征在于,所述当对所述共识签名集合和所述目标默克尔树根验证成功时,确定所述跨链交易数据包中的所述目标交易数据属于共识通过的合法数据,执行与所述目标交易数据相关联的交易业务,包括:
当对所述共识签名集合和所述目标默克尔树根验证成功时,确定所述跨链交易数据包中的所述目标交易数据属于共识通过的合法数据,获取针对所述跨链交易数据包的数据执行状态信息;所述数据执行状态信息为未执行状态信息或已执行状态信息;
当获取到的所述数据执行状态信息为所述未执行状态信息时,执行与所述跨链交易数据包中的所述目标交易数据相关联的交易业务;
当获取到的所述数据执行状态信息为所述已执行状态信息时,丢弃所述跨链交易数据包。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述跨链交易数据包中获取所述目标交易数据所属区块的区块高度;
当根据所述第二业务区块链的区块链标识和所述区块高度,查询到所述第一业务区块链中不存在所述跨链交易数据包时,执行所述根据所述共识签名集合中的共识签名的合法性和数量对所述共识签名集合进行验证,根据所述树根证明信息对所述跨链交易数据中的所述目标默克尔树根进行验证的步骤;
当根据所述区块链标识和所述区块高度,查询到所述第一业务区块链中存在所述跨链交易数据包时,丢弃所述中继节点发送的所述跨链交易数据包。
7.一种基于区块链的跨链交易方法,其特征在于,由中继节点执行所述方法,所述方法包括:
向第二节点获取针对目标交易数据的跨链交易数据包和树根证明信息;所述第二节点属于第二业务区块链;所述跨链交易数据包中包括所述目标交易数据所属区块的目标默克尔树根、以及针对所述跨链交易数据包的共识签名集合;所述共识签名集合中的共识签名,是在所述第二业务区块链中的共识节点,对所述跨链交易数据包中除所述共识签名集合之外的数据共识通过后所得到的签名;
根据所述共识签名集合中的共识签名的合法性和数量对所述共识签名集合进行验证,根据所述树根证明信息对所述跨链交易数据包中的所述目标默克尔树根进行验证;
当对所述共识签名集合和所述目标默克尔树根验证成功时,将所述跨链交易数据包和所述树根证明信息发送给第一节点,以使所述第一节点在对所述共识签名集合和所述树根证明信息验证成功时,确定所述跨链交易数据包中的所述目标交易数据属于共识通过的合法数据,执行与所述目标交易数据相关联的交易业务;所述第一节点属于第一业务区块链。
8.根据权利要求7所述的方法,其特征在于,所述向第二节点获取针对目标交易数据的跨链交易数据包和树根证明信息,包括:
向所述第二节点发送针对所述跨链交易数据包的创建询问信息;
获取所述第二节点根据所述创建询问信息所返回的所述目标交易数据的目标哈希值、以及所述目标交易数据所属区块的区块高度;
当根据所述区块高度和所述第二业务区块链的区块链标识,查询到所述第一业务区块链中不存在所述跨链交易数据包时,根据所述区块高度向所述第二节点获取所述跨链交易数据包,根据所述目标哈希值向所述第二节点获取所述树根证明信息。
9.根据权利要求7所述的方法,其特征在于,所述将所述跨链交易数据包和所述树根证明信息发送给第一节点,包括:
根据所述第一业务区块链所指示的数据格式,对所述跨链交易数据包和所述树根证明信息进行封装,得到封装数据包;
将所述封装数据包发送给所述第一节点。
10.根据权利要求7所述的方法,其特征在于,所述向第二节点获取针对目标交易数据的跨链交易数据包和树根证明信息,包括:
当所述中继节点向所述第二节点获取所述跨链交易数据包和所述树根证明信息失败时,生成数据获取失败消息;
将所述数据获取失败消息同步至相邻中继节点,以使所述相邻中继节点根据所述数据获取失败消息,向所述第二节点获取所述跨链交易数据包和所述树根证明信息。
11.一种基于区块链的跨链交易方法,其特征在于,包括:
第二节点创建针对目标交易数据的跨链交易数据包;所述第二节点属于第二业务区块链;所述跨链交易数据包中包括所述目标交易数据所属区块的目标默克尔树根、以及针对所述跨链交易数据包的共识签名集合;所述共识签名集合中的共识签名,是在所述第二业务区块链中的共识节点,对所述跨链交易数据包中除所述共识签名集合之外的数据共识通过后所得到的签名;
中继节点向所述第二节点获取所述跨链交易数据包和针对所述目标默克尔树根的树根证明信息,将所述跨链交易数据包和所述树根证明信息发送给第一节点;所述第一节点属于第一业务区块链;
第一节点根据所述共识签名集合中的共识签名的合法性和数量对所述共识签名集合进行验证,根据所述树根证明信息对所述跨链交易数据包中的所述目标默克尔树根进行验证;
当所述第一节点对所述共识签名集合和所述目标默克尔树根验证成功时,确定所述跨链交易数据包中的所述目标交易数据属于共识通过的合法数据,执行与所述目标交易数据相关联的交易业务。
12.根据权利要求11所述的方法,其特征在于,所述中继节点的数量为至少两个,每个中继节点均用于执行所述向所述第二节点获取所述跨链交易数据包和针对所述目标默克尔树根的树根证明信息,将所述跨链交易数据包和所述树根证明信息发送给第一节点的步骤。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述第二节点获取共识数据;所述共识数据包括所述跨链交易数据包中除所述共识签名集合之外的数据;
所述第二节点将所述共识数据广播至所述第二业务区块链中的至少两个共识节点,以使所述至少两个共识节点对所述共识数据进行共识,当对所述共识数据共识通过后,得到针对所述共识数据的共识签名;
所述第二节点根据所述至少两个共识节点中对所述共识数据共识通过的共识节点所属的共识签名,生成所述共识签名集合。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-13中任一项所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-13任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110216705.7A CN112837160B (zh) | 2020-12-04 | 2020-12-04 | 基于区块链的跨链交易方法、装置和计算机可读存储介质 |
CN202011406487.5A CN112200682B (zh) | 2020-12-04 | 2020-12-04 | 基于区块链的跨链交易方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011406487.5A CN112200682B (zh) | 2020-12-04 | 2020-12-04 | 基于区块链的跨链交易方法、装置和计算机可读存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110216705.7A Division CN112837160B (zh) | 2020-12-04 | 2020-12-04 | 基于区块链的跨链交易方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112200682A CN112200682A (zh) | 2021-01-08 |
CN112200682B true CN112200682B (zh) | 2021-03-09 |
Family
ID=74034494
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011406487.5A Active CN112200682B (zh) | 2020-12-04 | 2020-12-04 | 基于区块链的跨链交易方法、装置和计算机可读存储介质 |
CN202110216705.7A Active CN112837160B (zh) | 2020-12-04 | 2020-12-04 | 基于区块链的跨链交易方法、装置和计算机可读存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110216705.7A Active CN112837160B (zh) | 2020-12-04 | 2020-12-04 | 基于区块链的跨链交易方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN112200682B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112396423B (zh) * | 2021-01-20 | 2021-04-13 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置、设备及存储介质 |
CN113190622B (zh) * | 2021-03-16 | 2022-08-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112804354B (zh) * | 2021-03-19 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 跨链进行数据传输的方法、装置、计算机设备和存储介质 |
CN113673991A (zh) * | 2021-03-30 | 2021-11-19 | 支付宝(杭州)信息技术有限公司 | 跨链数据处理方法和装置 |
CN112804360B (zh) * | 2021-03-30 | 2021-07-06 | 支付宝(杭州)信息技术有限公司 | 提供跨链隐私数据的方法和装置 |
CN113300837B (zh) * | 2021-04-25 | 2022-07-26 | 从法信息科技有限公司 | 一种基于区块证明的跨链验证方法、装置和电子设备 |
CN113179272B (zh) * | 2021-04-28 | 2022-02-25 | 爱云保(上海)科技有限公司 | 基于智能合约的区块链跨链交互方法、装置和计算机可读存储介质 |
CN113206744B (zh) * | 2021-04-29 | 2024-04-02 | 杭州趣链科技有限公司 | 跨链交易监管方法、装置、设备和存储介质 |
CN113179273A (zh) * | 2021-04-29 | 2021-07-27 | 杭州丽冠科技有限公司 | 基于区块链侧链的区块头验证方法、装置和计算机可读存储介质 |
CN113328997B (zh) * | 2021-05-10 | 2023-05-12 | 东软集团股份有限公司 | 联盟链跨链系统及方法 |
CN113395354B (zh) * | 2021-06-30 | 2022-11-29 | 中国农业银行股份有限公司 | 基于区块链的合约调用方法和合约调用系统 |
CN113572825B (zh) * | 2021-07-09 | 2023-03-21 | 中国科学院计算技术研究所 | 面向中继链跨链架构的接入控制与资源访问控制方法及系统 |
CN113657900B (zh) * | 2021-07-13 | 2024-03-22 | 中国人民银行数字货币研究所 | 一种跨链交易验证方法、系统以及跨链交易系统 |
CN113570479B (zh) * | 2021-08-03 | 2023-12-12 | 贝壳找房(北京)科技有限公司 | 一种房产交易数据的区块链传输方法、系统及存储介质 |
CN113704271A (zh) * | 2021-09-03 | 2021-11-26 | 杭州复杂美科技有限公司 | 默克尔树生成方法、非法节点识别方法、设备和存储介质 |
CN114095497B (zh) * | 2021-09-30 | 2024-04-19 | 网络通信与安全紫金山实验室 | 面向云网场景的基于区块链的资源使用量证明方法和系统 |
CN113743944B (zh) * | 2021-11-04 | 2022-03-29 | 中国信息通信研究院 | 跨链消息可靠传递方法、装置以及电子设备 |
CN114401268A (zh) * | 2021-11-24 | 2022-04-26 | 远光软件股份有限公司 | 一种跨链数据共享的方法、系统、设备和可读存储介质 |
CN114301912A (zh) * | 2021-12-23 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 基于区块链的信息交互方法和装置 |
CN114422520B (zh) * | 2021-12-31 | 2024-04-02 | 支付宝(杭州)信息技术有限公司 | 跨链交互方法及装置 |
CN114760288B (zh) * | 2022-03-18 | 2024-02-06 | 国网四川省电力公司天府新区供电公司 | 一种基于区块链的文件跨链传输方法 |
CN114677137A (zh) * | 2022-03-30 | 2022-06-28 | 网易(杭州)网络有限公司 | 区块链跨链方法、系统及装置、电子设备、存储介质 |
CN114844904B (zh) * | 2022-04-29 | 2024-03-29 | 蚂蚁区块链科技(上海)有限公司 | 用于跨区块链交互的系统及方法 |
CN114579595B (zh) * | 2022-05-06 | 2022-08-12 | 中国信息通信研究院 | 数据写入方法和装置、计算机可读存储介质、电子设备 |
CN116308368B (zh) * | 2023-05-24 | 2023-07-18 | 国网区块链科技(北京)有限公司 | 一种中继区块链跨链数据安全存储方法、装置及相关设备 |
CN116827957B (zh) * | 2023-08-30 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 基于多区块链的信息处理方法、装置、设备以及介质 |
CN116886444B (zh) * | 2023-09-05 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 跨链数据处理方法、装置、计算机、存储介质及程序产品 |
CN117478300B (zh) * | 2023-12-27 | 2024-03-01 | 湖南天河国云科技有限公司 | 基于节点确定的跨链共识方法、装置和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109919615A (zh) * | 2019-03-01 | 2019-06-21 | 上海分布信息科技有限公司 | 基于区块链的跨链数据交互方法及跨链数据交互系统 |
CN111416808A (zh) * | 2020-03-13 | 2020-07-14 | 财付通支付科技有限公司 | 跨区块链的数据互存方法、装置、设备及存储介质 |
US10764034B2 (en) * | 2017-10-16 | 2020-09-01 | North Peak Resources Ltd. | Method and system for facilitating data transfer between blockchains |
CN111769957A (zh) * | 2020-09-02 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 区块链跨链查询方法、装置、设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108711052B (zh) * | 2018-05-18 | 2021-04-30 | 电子科技大学 | 一种基于区块链的信息验证系统 |
US11177962B2 (en) * | 2019-02-05 | 2021-11-16 | Visa International Service Association | Optimizations for verification of interactions system and method |
US11336451B2 (en) * | 2019-06-28 | 2022-05-17 | Advanced New Technologies Co., Ltd. | Cross-blockchain resource transmission |
CN111107136A (zh) * | 2019-12-05 | 2020-05-05 | 上海中信信息发展股份有限公司 | 一种基于ipfs的区块链跨链中继方法 |
CN111431903B (zh) * | 2020-03-25 | 2022-08-09 | 北京新创智链科技有限公司 | 一种跨链中继方法、装置以及计算机可读存储介质 |
CN111415161B (zh) * | 2020-04-27 | 2024-03-19 | 财付通支付科技有限公司 | 基于区块链的数据验证方法、装置及计算机可读存储介质 |
-
2020
- 2020-12-04 CN CN202011406487.5A patent/CN112200682B/zh active Active
- 2020-12-04 CN CN202110216705.7A patent/CN112837160B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10764034B2 (en) * | 2017-10-16 | 2020-09-01 | North Peak Resources Ltd. | Method and system for facilitating data transfer between blockchains |
CN109919615A (zh) * | 2019-03-01 | 2019-06-21 | 上海分布信息科技有限公司 | 基于区块链的跨链数据交互方法及跨链数据交互系统 |
CN111416808A (zh) * | 2020-03-13 | 2020-07-14 | 财付通支付科技有限公司 | 跨区块链的数据互存方法、装置、设备及存储介质 |
CN111769957A (zh) * | 2020-09-02 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 区块链跨链查询方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
BitXHub:基于侧链中继的异构区块链互操作平台;叶少杰 等;《计算机科学》;20200630;294-302 * |
COSMOS白皮书;跨链技术践行者;《CSDN博客》;20190617;1-25 * |
Also Published As
Publication number | Publication date |
---|---|
CN112837160A (zh) | 2021-05-25 |
CN112837160B (zh) | 2022-09-27 |
CN112200682A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112200682B (zh) | 基于区块链的跨链交易方法、装置和计算机可读存储介质 | |
US11496577B2 (en) | Broker-based bus protocol and multi-client architecture | |
CN112926982B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN111681003B (zh) | 资源跨链转移方法、装置、计算机设备以及存储介质 | |
CN113691597B (zh) | 区块链合约部署方法、装置、设备以及存储介质 | |
US11917018B2 (en) | Broker-based bus protocol and multi-client architecture | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
EP4216077A1 (en) | Blockchain network-based method and apparatus for data processing, and computer device | |
CN110287654A (zh) | 使用硬件信任根的媒体客户端装置鉴权 | |
EP3698518A1 (en) | Primary and secondary blockchain device | |
CN113141365B (zh) | 分布式微服务数据传输的方法、装置、系统和电子设备 | |
CN110096894A (zh) | 一种基于区块链的数据匿名共享系统及方法 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
US20240073045A1 (en) | Blockchain-based data processing method and apparatus, device, medium, and product | |
CN109450643B (zh) | Android平台上基于native服务实现的签名验签方法 | |
CN115549984A (zh) | 跨链交易方法、装置、设备和存储介质 | |
EP3200388B1 (en) | User permission check system | |
US20240134987A1 (en) | Digital shadows for remote attestation of vehicle software | |
CN116980155A (zh) | 区块链网络的数据处理方法、装置、产品、设备和介质 | |
CN117014176A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN115730936A (zh) | 区块链网络的数据处理方法、装置、计算机设备和介质 | |
CN117395264A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN116205649A (zh) | 数据处理方法以及相关产品 | |
WO2024088912A1 (en) | Digital shadows for remote attestation of vehicle software | |
CN116781268A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40038127 Country of ref document: HK |