CN108492108A - 区块链跨链通信方法、系统和计算机可读存储介质 - Google Patents
区块链跨链通信方法、系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN108492108A CN108492108A CN201810270127.3A CN201810270127A CN108492108A CN 108492108 A CN108492108 A CN 108492108A CN 201810270127 A CN201810270127 A CN 201810270127A CN 108492108 A CN108492108 A CN 108492108A
- Authority
- CN
- China
- Prior art keywords
- chain
- transaction information
- block
- account
- article
- 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
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
- 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
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种区块链跨链通信方法、系统和计算机可读存储介质,该方法包括:接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则;根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置;接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置;接入前置基于第二条链反馈的成功信息,反馈跨链通信成功的提示信息至客户端。本发明通过多个链进行通信,链可以拓展,因此可支持海量数据服务,并且系统性能也得到提升。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链跨链通信方法、系统和计算机可读存储介质。
背景技术
现有区块链主要有公有链、联盟链、私有链之分,公有链如比特币、以太坊等,公有链以POW(Proof Of Work,工作量证明)作为共识算法,也有比特股等以POS(Proof ofStake,POS基于权益证明)作为共识算法。
其中,公有链通常是单链模式运行,目前存在交易吞吐量较小,交易确认延迟时间太长等性能问题。联盟链方面,例如Fabric、Corda等,采用拜占庭容错算法进行共识,或者引入可信机构进行共识授信,相比公有链,联盟链在性能上有较大提升,但仍然存证无法支持海量服务的需求。
显然,现有的区块链中存在以下缺陷:
1)现有区块链模型,无法支持海量服务;
2)常用区块链架构,单条链的性能瓶颈就是整个业务的性能瓶颈,而且单条链增加节点无法带来性能提升,也无法支撑金融级业务。
发明内容
本发明的主要目的在于提供一种区块链跨链通信方法、系统和计算机可读存储介质,旨在解决现有区块链的区块链跨链通信方式,无法支持海量数据,并且性能容易受限的技术问题。
为实现上述目的,本发明提供一种区块链跨链通信方法,应用于区块链并行架构,所述区块链并行架构包括多条链,所述区块链跨链通信方法包括:
接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则;
根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置;
所述接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置;
所述接入前置基于第二条链反馈的成功信息,反馈跨链通信成功的提示信息至客户端。
可选地,所述接入前置根据转入账户的路由规则确定第二条链的步骤之前,所述方法还包括:
所述接入前置从第一条链中获取执行交易操作的存在证明;
所述将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置的步骤包括:
将交易信息和存在证明发送给第二条链,以供第二条链验证所述存在证明,在验证通过后,根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置。
可选地,所述接入前置从第一条链中获取执行交易操作的存在证明的步骤包括:
接入前置获取第一次请求返回的交易信息的哈希值,根据交易信息的哈希值在第一条链中查找包含所述交易信息的区块;
在所述区块的块头中获取区块哈希值,以及参与共识的节点所组成的节点公钥列表;
在所述区块的块体中获取参与共识的节点的签名列表;
在所述区块的块头中获取所述交易信息关联的树根,并在所述树根获取交易信息的兄弟节点;
将块头、区块哈希值、节点公钥列表、签名列表、树根、兄弟节点、交易信息的哈希值和交易信息作为执行交易操作的存在证明。
可选地,所述签名列表由节点用私钥对区块哈希值进行签名得到。
可选地,所述第二条链验证所述存在证明的方式包括:
从所述存在证明中提取出节点公钥列表、区块哈希值、签名列表、交易信息的哈希值、兄弟节点、树根;
验证提取的节点公钥列表是否与第二条链中的节点公钥列表一致;
采用区块哈希值对签名列表恢复出节点的公钥,判断恢复出的公钥是否在节点公钥列表中;
根据交易信息的哈希值和兄弟节点对树根进行验证,以判断验证的树根是否为存在证明中的树根;
比较交易信息的哈希值是否与交易信息计算出的哈希值一致。
可选地,所述接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链的步骤之后,所述方法还包括:
若接收到第二条链反馈的失败信息,则接入前置向第一条链发起一笔增款的冲正交易,并反馈跨链交易失败信息至客户端。
可选地,所述接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则的步骤包括:
接入前置接收到客户端发送的交易信息时,在所述交易信息中确定转出账户和转入账户;
在区块链网络中查询转入账户和转出账户的路由规则。
可选地,所述接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则的步骤之前,所述方法还包括:
将用户账户按照预设的性能模型,拆分成多个分组;
将每个分组作为一条链。
此外,为实现上述目的,本发明还提供一种区块链跨链通信系统,所述区块链跨链通信系统包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的区块链跨链通信程序,所述区块链跨链通信程序被所述处理器执行时实现如上文所述的区块链跨链通信方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链跨链通信程序,所述区块链跨链通信程序被处理器执行时实现如上文所述的区块链跨链通信方法的步骤。
本发明提出的区块链跨链通信方法,接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则,然后根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置,接着接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置,在两条链都成功执行交易操作之后,接入前置反馈跨链通信成功的提示信息至客户端,使得区块链的通信是通过跨链方式实现,由于多个链进行通信,链可以拓展,因此可支持海量数据服务,并且不再局限于单链的性能瓶颈,使得系统性能也得到提升。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图;
图2为本发明区块链跨链通信方法第一实施例的流程示意图;
图3为图2中步骤S10的细化流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,现有的区块链架构仅仅是单链模式,单条链的性能瓶颈就是整个业务的性能瓶颈,单条链增加节点无法带来性能提升,也无法支撑金融级业务,此外,现有的区块链架构也没有利用传统分布式架构的优点,因此无法支持海量数据服务。
基于现有技术存在的问题,本发明实施例的解决方案主要是:接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则,然后根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置,接着接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置,在两条链都成功执行交易操作之后,接入前置反馈跨链通信成功的提示信息至客户端。以解决现有的跨链通信方式,无法支持海量数据,并且性能容易受限的问题。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的区块链跨链通信系统的结构示意图。
本发明实施例的区块链跨链通信系统可以是PC、便携计算机,也可以是服务器、虚拟机设备等设备。
如图1所示,该区块链跨链通信系统可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口(例如用于连接有线键盘、有线鼠标等)、无线接口(例如用于连接无线键盘、无线鼠标)。网络接口1004可选的可以包括标准的有线接口(用于连接有线网络)、无线接口(如WI-FI接口,用于连接无线网络)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的跨链通信系统结构并不构成对跨链通信系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及区块链跨链通信程序。其中,操作系统是管理和控制区块链跨链通信系统与软件资源的程序,支持网络通信模块、用户接口模块、区块链跨链通信程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。
在图1所示的区块链跨链通信系统中,所述区块链跨链通信系统通过处理器1001调用存储器1005中存储的区块链跨链通信程序,以实现以下步骤:
接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则;
根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置;
所述接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置;
所述接入前置基于第二条链反馈的成功信息,反馈跨链通信成功的提示信息至客户端。
进一步地,所述接入前置根据转入账户的路由规则确定第二条链的步骤之前,所述区块链跨链通信系统通过处理器1001调用存储器1005中存储的区块链跨链通信程序,还实现以下步骤:
所述接入前置从第一条链中获取执行交易操作的存在证明;
所述将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置的步骤包括:
将交易信息和存在证明发送给第二条链,以供第二条链验证所述存在证明,在验证通过后,根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置。
进一步地,所述区块链跨链通信系统通过处理器1001调用存储器1005中存储的区块链跨链通信程序,还实现接入前置从第一条链中获取执行交易操作的存在证明的步骤:
接入前置获取第一次请求返回的交易信息的哈希值,根据交易信息的哈希值在第一条链中查找包含所述交易信息的区块;
在所述区块的块头中获取区块哈希值,以及参与共识的节点所组成的节点公钥列表;
在所述区块的块体中获取参与共识的节点的签名列表;
在所述区块的块头中获取所述交易信息关联的树根,并在所述树根获取交易信息的兄弟节点;
将块头、区块哈希值、节点公钥列表、签名列表、树根、兄弟节点、交易信息的哈希值和交易信息作为执行交易操作的存在证明。
进一步地,所述签名列表由节点用私钥对区块哈希值进行签名得到。
进一步地,所述第二条链验证所述存在证明的方式包括:
从所述存在证明中提取出节点公钥列表、区块哈希值、签名列表、交易信息的哈希值、兄弟节点、树根;
验证提取的节点公钥列表是否与第二条链中的节点公钥列表一致;
采用区块哈希值对签名列表恢复出节点的公钥,判断恢复出的公钥是否在节点公钥列表中;
根据交易信息的哈希值和兄弟节点对树根进行验证,以判断验证的树根是否为存在证明中的树根;
比较交易信息的哈希值是否与交易信息计算出的哈希值一致。
进一步地,所述接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链的步骤之后,所述区块链跨链通信系统通过处理器1001调用存储器1005中存储的区块链跨链通信程序,还实现以下步骤:
若接收到第二条链反馈的失败信息,则接入前置向第一条链发起一笔增款的冲正交易,并反馈跨链交易失败信息至客户端。
进一步地,所述区块链跨链通信系统通过处理器1001调用存储器1005中存储的区块链跨链通信程序,还实现接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则的步骤:
接入前置接收到客户端发送的交易信息时,在所述交易信息中确定转出账户和转入账户;
在区块链网络中查询转入账户和转出账户的路由规则。
基于上述区块链跨链通信系统的硬件结构,提出本发明区块链跨链通信方法的各个实施例。
参照图2,图2为本发明区块链跨链通信方法第一实施例的流程示意图。
在本实施例中,所述区块链跨链通信方法包括:
步骤S10,接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则;
步骤S20,根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置;
步骤S30,所述接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置;
步骤S40,所述接入前置基于第二条链反馈的成功信息,反馈跨链通信成功的提示信息至客户端。
在本实施例中,所述区块链跨链通信方法可选应用于区块链跨链通信系统,所述区块链跨链通信系统可选为图1所述的系统。该区块链跨链通信方式运行在区块链并行架构中,本实施例中所述的区块链并行架构包括多条链,具体的链数目不做限定,投入足够的资源,则可根据业务需求拓展区块链并行架构下的链。
在本实施例中,所述步骤S10之前,所述方法还包括:
步骤A,将用户账户按照预设的性能模型,拆分成多个分组;
步骤B,将每个分组作为一条链。
在区块链网络中,存在多个用户账户与商户账户进行通信的过程,在通信过程中,为了提高通信效率,按照预设的性能模型将各个用户账户进行分组,具体的性能模型不做限定,按照实际需要设置,按照性能模型,可将多个用户账户分成多个组,每一组即可组成一条链。通过多条链,实现在区块链并行架构中的跨链通信。
以下详细介绍本实施例中逐步实现区块链跨链通信方法的各个步骤:
步骤S10,接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则;
在本实施例中,客户端是用户终端,可选为PC端或移动终端,接入前置也可称为代理前置,接入前置是位于节点前面的服务模块,通过该接入前置,可以实现客户端对区块链的调用。
在本实施例中,先由客户端对交易进行打包,其中,该交易是从第一条链中的账户A向第二条链的账户B进行一笔转账X的交易,因此,客户端对交易进行打包,得到的交易信息就是[A->B,X],在客户端得到交易信息之后,客户端将该交易信息发送给接入前置。
接入前置接收到客户端发送的交易信息时,先查询转入账户和转出账户的路由规则,其中,参照图3,所述步骤S10包括:
步骤S11,接入前置接收到客户端发送的交易信息时,在所述交易信息中确定转出账户和转入账户;
步骤S12,在区块链网络中查询转入账户和转出账户的路由规则。
即,接入前置接收到客户端发送的交易信息时,先在所述交易信息中确定转出账户和转入账户,上文已经提及,交易信息是[A->B,X],其中,账户A表示转出账户,账户B表示转入账户,因此,根据交易信息即可确定转出账户和转入账户,在确定转出账户和转入账户之后,接入前置在区块链网络中查询该转出账户和转入账户的路由规则,本实施例中,转出账户和路由规则已经事先设置好的,若转出账户是第一条链中的账户,那么转出账户的路由规则对应的路由对象就是第一条链,同理,若转入账户是第二条链中的账户,那么转入账户的路由规则对应的路由对象就是第二条链。
步骤S20,根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置;
在本实施例中,接入前置查询出转入账户和转出账户的路由规则之后,先根据转出账户的路由规则确定第一条链,然后接入前置将接收到的交易信息发送至第一条链中,由第一条链根据交易信息执行交易操作,其中,第一条链根据交易信息执行交易操作,实际上是执行对账户A扣款X的操作,在执行成功后,第一条链将交易信息再返回给接入前置,需要说明的是,第一条链根据交易信息执行完交易操作之后,会在该交易信息中标注,以表示该交易信息在第一条链的部分已经执行完毕了,若接入前置发给第一条链的交易信息是T,那么,第一条链返回给接入前置的交易信息就为T’。
应当理解,若第一条链执行交易操作时执行失败,则不再返回交易信息至接入前置,因此,接入前置也不再执行后续的操作过程。
步骤S30,所述接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置;
接入前置接收到第一条链返回的交易信息之后,根据事先查询的转入账户的路由规则,确定第二条链,接着再将第一条链返回的交易信息发送给第二条链,此时该交易信息为上文所述的T’。
当第二条链接收到接入前置发送的交易信息T’之后,根据交易信息执行交易操作,其中,第二条链根据交易信息执行交易操作,实际上是执行对账户B加款X的操作,在执行成功后第二条链反馈成功信息至接入前置。
步骤S40,所述接入前置反馈跨链通信成功的提示信息至客户端。
当接入前置接收到第二条链反馈的接入成功信息之后,该接入前置液会反馈跨链通信成功的提示信息至客户端,告知区块链跨链通信成功。
可以理解,若第二条链执行交易操作时执行失败,则返回执行失败的提示信息至接入前置,因此,接入前置也反馈跨链失败信息至客户端,以告知区块链跨链通信失败。
本实施例提出的区块链跨链通信方法,接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则,然后根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置,接着接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置,在两条链都成功执行交易操作之后,接入前置反馈跨链通信成功的提示信息至客户端,使得区块链的通信是通过跨链方式实现,由于多个链进行通信,链可以拓展,因此可支持海量数据服务,并且不再局限于单链的性能瓶颈,使得系统性能也得到提升。
进一步地,基于第一实施例提出本发明区块链跨链通信方法的第二实施例。
区块链跨链通信方法的第二实施例与区块链跨链通信方法的第一实施例的区别在于,所述步骤S30之前,所述方法还包括:
步骤C,所述接入前置从第一条链中获取执行交易操作的存在证明;
所述步骤S30包括:
将交易信息和存在证明发送给第二条链,以供第二条链验证所述存在证明,在验证通过后,根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置。
在分布式架构中,为了使业务能够平行扩展,可通过数据库的分库或者互联网的分SET(集合)模型来实现,跨库或跨SET的调用通常是由一个复杂的联机交易来完成,这种联机交易通常采用消息中间件以及数据库事务等手段。但是现有的区块链架构没有解决链与链之间的安全通信问题,即,在区块链的跨链通信过程中,不仅要考虑通信可靠性,还要考虑安全性。因此,本实施例中,在接入前置根据转入账户的路由规则确定第二条链之前,需要从第一条链中获取执行交易操作的存在证明,其中,所述步骤C包括:
步骤C1,接入前置获取第一次请求返回的交易信息的哈希值,根据交易信息的哈希值在第一条链中查找包含所述交易信息的区块;
步骤C2,在所述区块的块头中获取区块哈希值,以及参与共识的节点所组成的节点公钥列表;
步骤C3,在所述区块的块体中获取参与共识的节点的签名列表;
步骤C4,在所述区块的块头中获取所述交易信息关联的树根,并在所述树根获取交易信息的兄弟节点;
步骤C5,将块头、区块哈希值、节点公钥列表、签名列表、树根、兄弟节点、交易信息的哈希值和交易信息作为执行交易操作的存在证明。
即,接入前置先获取第一次请求返回的交易信息的哈希值,本实施例中,哈希值的计算方式与现有的计算方式一致,此处不做赘述。在接入前置获取到交易信息的哈希值之后,根据交易信息的哈希值在第一条链中查找包含该交易信息的区块,应当理解,第一条链中存储有各个区块,每个区块包含有交易信息,并且交易信息也对应有哈希值,因此接入前置根据交易信息的哈希值,即可查找到包含该交易信息的区块。
在查找到区块之后,接入前置在区块的块头中获取区块哈希值,区块哈希值存储在块头中,接入前置可直接获取,此时,接入前置还在块头中获取参与共识的节点组成的节点公钥列表,该节点公钥列表中存储了参与网络共识的节点的公钥。
此外,接入前置还可在区块的块体中获取参与共识的节点的签名列表,需要说明的是,所述签名列表由参与共识的节点用私钥对区块哈希值进行签名得到,即,参与共识的节点采用其私钥对区块哈希值进行签名,以得到节点的签名,多个节点的签名即可组成签名列表。
此外,接入前置还可在区块的块头中获取交易信息的树根,所述树根可选为默克尔树根,应当理解,默克尔树根是交易信息对应的节点与另一个节点组成的树根,该另一个节点是交易信息所在节点的兄弟节点,因此,接入前置在区块中获取到交易信息的树根之后,即根据该树根获取到兄弟节点。之后,接入前置将块头、区块哈希值、节点公钥列表、签名列表、树根、兄弟节点、交易信息的哈希值和交易信息作为执行交易操作的存在证明。
接入前置获取到存在证明之后,可在发送交易信息至第二条链的同时,发送获取到的存在证明,该存在证明可证明第一条链确定执行了交易信息的交易操作过程。
第二条链接收到交易信息和存在证明之后,先验证所述存在证明,在验证通过后,才根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置;
其中,所述“第二条链验证所述存在证明”的方式包括:
从所述存在证明中提取出节点公钥列表、区块哈希值、签名列表、交易信息的哈希值、兄弟节点、树根;
验证提取的节点公钥列表是否与第二条链中的节点公钥列表一致;
采用区块哈希值对签名列表恢复出节点的公钥,判断恢复出的公钥是否在节点公钥列表中;
根据交易信息的哈希值和兄弟节点对树根进行验证,以判断验证的树根是否为存在证明中的树根;
比较交易信息的哈希值是否与交易信息计算出的哈希值一致。
即,第二条链先从接收到的存在证明中提取出节点公钥列表、区块哈希值、签名列表、交易信息的哈希值、兄弟节点和树根,在提取出这各项信息之后,对各项信息进行验证,具体地,第二条链验证节点公钥列表是否与第二条链中的节点公钥列表一致。需要说明的是,在区块链并行架构中,每条链都是相同的参与机构,因此具有相同的共识节点,在节点公钥列表应当是一致的。那么,在第二条链对节点公钥列表的验证过程中,若检测到交易信息中的节点公钥列表与第二条链中的节点公钥列表一致,才对该节点公钥列表验证成功,若验证不一致,说明对该节点公钥列表验证失败。
此外,第二条链采用区块哈希值对签名列表恢复出节点的公钥,在恢复出节点的公钥之后,判断恢复出的所有公钥是否都在节点公钥列表中,若检测到恢复出的所有公钥都在节点公钥列表中,表示签名列表验证成功。需要说明的是,上述的节点公钥列表和签名列表的验证过程,相当于是验证第一条链中是否存在区块,并且该区块是否在第一条链中被共识并且确认已经上链存储。
此外,第二条链还需要交易信息的哈希值和兄弟节点对树根进行验证,以判断验证的树根是否为存在证明中的树根。需要说明的是,该步骤的验证是证明第一条链中的区块存在该交易信息。
之后,第二条链再比较交易信息的哈希值是否与交易信息计算出的哈希值一致,若一致,可证明交易信息的内容未被篡改。
需要说明的是,第二条链对存在证明进行上述的验证,在验证通过后,第二条链才根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置,其中,第二条链根据交易信息执行交易操作的过程在第一实施例中已经详述,此处不做赘述。
在本实施例中,由接入前置获取到第一条链的执行交易信息的存在证明,以将该存在证明连同交易信息发送给第二条链,由第二条链对该存在证明进行验证,并在验证无误后才执行交易信息的交易操作,通过存在证明的验证,提高了跨链通信的可靠性和安全性。
进一步地,基于第一或第二实施例提出本发明区块链跨链通信方法的第三实施例。
区块链跨链通信方法的第三实施例与区块链跨链通信方法的第一或第二实施例的区别在于,步骤S30之后,所述方法还包括:
步骤D,若接收到第二条链反馈的失败信息,则接入前置向第一条链发起一笔增款的冲正交易,并反馈跨链交易失败信息至客户端。
在本实施例中,接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链之后,若接收到第二条链反馈的失败信息,说明第二条链执行交易操作的过程失败,此时,接入前置向第一条链发起增款的冲正交易,并反馈跨链失败的信息至客户端,以通知客户端区块链的跨链通信失败。
在本发明的技术方案中,具有以下优点:
区块链的并行计算架构,支持业务平行扩展;
通过跨链通信的协议,以及区块链的跨链通信支持验证,提高了跨链通信的可靠性和安全性。
本发明进一步提供一种计算机可读存储介质。
所述计算机可读存储介质上存储有区块链跨链通信程序,所述区块链跨链通信程序被处理器执行时实现如上文所述的区块链跨链通信方法的步骤。
计算机可读存储介质执行的具体实施方式与上文区块链跨链通信方法的内容一致,此处不做赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区块链跨链通信方法,其特征在于,应用于区块链并行架构,所述区块链并行架构包括多条链,所述区块链跨链通信方法包括:
接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则;
根据转出账户的路由规则确定第一条链,并将接收到的交易信息发送给第一条链,以供第一条链根据交易信息执行交易操作,并在执行成功后返回至接入前置;
所述接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置;
所述接入前置基于第二条链反馈的成功信息,反馈跨链通信成功的提示信息至客户端。
2.如权利要求1所述的区块链跨链通信方法,其特征在于,所述接入前置根据转入账户的路由规则确定第二条链的步骤之前,所述方法还包括:
所述接入前置从第一条链中获取执行交易操作的存在证明;
所述将交易信息发送给第二条链,以供第二条链根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置的步骤包括:
将交易信息和存在证明发送给第二条链,以供第二条链验证所述存在证明,在验证通过后,根据交易信息执行交易操作,并在执行成功后反馈成功信息至接入前置。
3.如权利要求2所述的区块链跨链通信方法,其特征在于,所述接入前置从第一条链中获取执行交易操作的存在证明的步骤包括:
接入前置获取第一次请求返回的交易信息的哈希值,根据交易信息的哈希值在第一条链中查找包含所述交易信息的区块;
在所述区块的块头中获取区块哈希值,以及参与共识的节点所组成的节点公钥列表;
在所述区块的块体中获取参与共识的节点的签名列表;
在所述区块的块头中获取所述交易信息关联的树根,并在所述树根获取交易信息的兄弟节点;
将块头、区块哈希值、节点公钥列表、签名列表、树根、兄弟节点、交易信息的哈希值和交易信息作为执行交易操作的存在证明。
4.如权利要求3所述的区块链跨链通信方法,其特征在于,所述签名列表由节点用私钥对区块哈希值进行签名得到。
5.如权利要求4所述的区块链跨链通信方法,其特征在于,所述第二条链验证所述存在证明的方式包括:
从所述存在证明中提取出节点公钥列表、区块哈希值、签名列表、交易信息的哈希值、兄弟节点、树根;
验证提取的节点公钥列表是否与第二条链中的节点公钥列表一致;
采用区块哈希值对签名列表恢复出节点的公钥,判断恢复出的公钥是否在节点公钥列表中;
根据交易信息的哈希值和兄弟节点对树根进行验证,以判断验证的树根是否为存在证明中的树根;
比较交易信息的哈希值是否与交易信息计算出的哈希值一致。
6.如权利要求1所述的区块链跨链通信方法,其特征在于,所述接入前置根据转入账户的路由规则确定第二条链,并将交易信息发送给第二条链的步骤之后,所述方法还包括:
若接收到第二条链反馈的失败信息,则接入前置向第一条链发起一笔增款的冲正交易,并反馈跨链交易失败信息至客户端。
7.如权利要求1所述的区块链跨链通信方法,其特征在于,所述接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则的步骤包括:
接入前置接收到客户端发送的交易信息时,在所述交易信息中确定转出账户和转入账户;
在区块链网络中查询转入账户和转出账户的路由规则。
8.如权利要求1-7任一项所述的区块链跨链通信方法,其特征在于,所述接入前置接收到客户端发送的交易信息时,查询转入账户和转出账户的路由规则的步骤之前,所述方法还包括:
将用户账户按照预设的性能模型,拆分成多个分组;
将每个分组作为一条链。
9.一种区块链跨链通信系统,其特征在于,所述区块链跨链通信系统包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的区块链跨链通信程序,所述区块链跨链通信程序被所述处理器执行时实现如权利要求1至8中任一项所述的区块链跨链通信方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有区块链跨链通信程序,所述区块链跨链通信程序被处理器执行时实现如权利要求1至8任一项所述的区块链跨链通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810270127.3A CN108492108B (zh) | 2018-03-29 | 2018-03-29 | 区块链跨链通信方法、系统和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810270127.3A CN108492108B (zh) | 2018-03-29 | 2018-03-29 | 区块链跨链通信方法、系统和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108492108A true CN108492108A (zh) | 2018-09-04 |
CN108492108B CN108492108B (zh) | 2021-04-23 |
Family
ID=63316701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810270127.3A Active CN108492108B (zh) | 2018-03-29 | 2018-03-29 | 区块链跨链通信方法、系统和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108492108B (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109525397A (zh) * | 2018-10-12 | 2019-03-26 | 南京邮电大学 | 一种面向sdn网络流规则安全保障的区块链及方法 |
CN109639751A (zh) * | 2018-10-16 | 2019-04-16 | 平安科技(深圳)有限公司 | 区块链节点监控方法、装置、系统及计算机存储介质 |
CN109660354A (zh) * | 2018-12-12 | 2019-04-19 | 深圳市网心科技有限公司 | 一种基于区块链的通信方法、装置、系统及介质 |
CN109727040A (zh) * | 2019-01-28 | 2019-05-07 | 杭州复杂美科技有限公司 | 数据发布方法、数据调用方法、设备和存储介质 |
CN109886661A (zh) * | 2019-01-16 | 2019-06-14 | 深圳壹账通智能科技有限公司 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
CN110019103A (zh) * | 2018-10-16 | 2019-07-16 | 陕西医链区块链集团有限公司 | 一种基于区块链的跨链系统和跨链实现方法 |
CN110489420A (zh) * | 2019-08-14 | 2019-11-22 | 深圳前海微众银行股份有限公司 | 一种基于区块链的数据处理方法及装置 |
CN110520884A (zh) * | 2018-12-13 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 基于可信执行环境的链外智能合约服务 |
CN110532801A (zh) * | 2019-08-29 | 2019-12-03 | 深圳市网心科技有限公司 | 基于多区块链间的通信方法、装置、客户端及存储介质 |
CN110692078A (zh) * | 2018-10-10 | 2020-01-14 | 王成 | 基于区块链的交易数据处理方法、设备和存储介质 |
CN111010441A (zh) * | 2019-12-18 | 2020-04-14 | 深圳市网心科技有限公司 | 一种区块链跨链方法、系统及电子设备 |
CN111046109A (zh) * | 2019-12-27 | 2020-04-21 | 深圳市网心科技有限公司 | 一种跨链任务处理方法、装置、设备及可读存储介质 |
WO2020134615A1 (zh) * | 2018-12-27 | 2020-07-02 | 阿里巴巴集团控股有限公司 | 跨链存证方法及访问方法、装置、电子设备 |
CN111489256A (zh) * | 2019-01-25 | 2020-08-04 | 京东数字科技控股有限公司 | 用于多链区块链系统中的跨链处理方法、设备及系统 |
CN111523892A (zh) * | 2020-04-23 | 2020-08-11 | 深圳前海微众银行股份有限公司 | 一种区块链的跨链交易方法及装置 |
CN111597228A (zh) * | 2020-05-13 | 2020-08-28 | 山大地纬软件股份有限公司 | 一种提高区块链扩展性的多链系统及方法 |
CN111640017A (zh) * | 2020-05-06 | 2020-09-08 | 深圳前海微众银行股份有限公司 | 一种应用于联盟链跨链转账的交易正确性验证方法及装置 |
CN112184204A (zh) * | 2020-09-30 | 2021-01-05 | 银盛支付服务股份有限公司 | 一种基于数据路由规则、分库分表的数据操作方法及系统 |
CN112529556A (zh) * | 2020-12-14 | 2021-03-19 | 上海樊迪信息技术有限公司 | 一种证券划账登记方法及系统 |
CN112651724A (zh) * | 2020-04-28 | 2021-04-13 | 北京邮电大学 | 跨链交互方法、装置和系统 |
CN113874246A (zh) * | 2019-05-31 | 2021-12-31 | Abb瑞士股份有限公司 | 使用区块链为电动车辆(ev)充电的方法和系统 |
CN114519078A (zh) * | 2022-04-19 | 2022-05-20 | 北京理工大学 | 一种基于区块链的跨链可信查询方法及系统 |
CN114782043A (zh) * | 2021-08-05 | 2022-07-22 | 北京天德科技有限公司 | 一种基于多链的安全交易系统及安全交易方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960388A (zh) * | 2017-03-01 | 2017-07-18 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 跨区块链的数字资产流转的方法和装置 |
WO2017176093A1 (ko) * | 2016-04-07 | 2017-10-12 | 주식회사 라이프시맨틱스 | 블록체인 기반 의료데이터전송시스템, 방법 및 프로그램 |
CN107742210A (zh) * | 2017-10-13 | 2018-02-27 | 布比(北京)网络技术有限公司 | 一种不同区块链间的跨链转账系统和方法 |
-
2018
- 2018-03-29 CN CN201810270127.3A patent/CN108492108B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017176093A1 (ko) * | 2016-04-07 | 2017-10-12 | 주식회사 라이프시맨틱스 | 블록체인 기반 의료데이터전송시스템, 방법 및 프로그램 |
CN106960388A (zh) * | 2017-03-01 | 2017-07-18 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 跨区块链的数字资产流转的方法和装置 |
CN107742210A (zh) * | 2017-10-13 | 2018-02-27 | 布比(北京)网络技术有限公司 | 一种不同区块链间的跨链转账系统和方法 |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110692078A (zh) * | 2018-10-10 | 2020-01-14 | 王成 | 基于区块链的交易数据处理方法、设备和存储介质 |
CN109525397A (zh) * | 2018-10-12 | 2019-03-26 | 南京邮电大学 | 一种面向sdn网络流规则安全保障的区块链及方法 |
CN109525397B (zh) * | 2018-10-12 | 2021-05-28 | 南京邮电大学 | 一种面向sdn网络流规则安全保障的区块链及方法 |
CN109639751A (zh) * | 2018-10-16 | 2019-04-16 | 平安科技(深圳)有限公司 | 区块链节点监控方法、装置、系统及计算机存储介质 |
CN109639751B (zh) * | 2018-10-16 | 2021-12-21 | 平安科技(深圳)有限公司 | 区块链节点监控方法、装置、系统及计算机存储介质 |
CN110019103A (zh) * | 2018-10-16 | 2019-07-16 | 陕西医链区块链集团有限公司 | 一种基于区块链的跨链系统和跨链实现方法 |
CN110019103B (zh) * | 2018-10-16 | 2024-02-09 | 陕西医链区块链集团有限公司 | 一种基于区块链的跨链系统和跨链实现方法 |
CN109660354A (zh) * | 2018-12-12 | 2019-04-19 | 深圳市网心科技有限公司 | 一种基于区块链的通信方法、装置、系统及介质 |
CN110520884B (zh) * | 2018-12-13 | 2023-09-29 | 创新先进技术有限公司 | 基于可信执行环境的链外智能合约服务 |
CN110520884A (zh) * | 2018-12-13 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 基于可信执行环境的链外智能合约服务 |
WO2020134615A1 (zh) * | 2018-12-27 | 2020-07-02 | 阿里巴巴集团控股有限公司 | 跨链存证方法及访问方法、装置、电子设备 |
CN109886661A (zh) * | 2019-01-16 | 2019-06-14 | 深圳壹账通智能科技有限公司 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
CN111489256B (zh) * | 2019-01-25 | 2023-06-23 | 京东科技控股股份有限公司 | 用于多链区块链系统中的跨链处理方法、设备及系统 |
CN111489256A (zh) * | 2019-01-25 | 2020-08-04 | 京东数字科技控股有限公司 | 用于多链区块链系统中的跨链处理方法、设备及系统 |
CN109727040A (zh) * | 2019-01-28 | 2019-05-07 | 杭州复杂美科技有限公司 | 数据发布方法、数据调用方法、设备和存储介质 |
CN113874246A (zh) * | 2019-05-31 | 2021-12-31 | Abb瑞士股份有限公司 | 使用区块链为电动车辆(ev)充电的方法和系统 |
CN113874246B (zh) * | 2019-05-31 | 2024-04-23 | Abb电动汽车有限责任公司 | 使用区块链为电动车辆(ev)充电的方法和系统 |
CN110489420A (zh) * | 2019-08-14 | 2019-11-22 | 深圳前海微众银行股份有限公司 | 一种基于区块链的数据处理方法及装置 |
CN110532801A (zh) * | 2019-08-29 | 2019-12-03 | 深圳市网心科技有限公司 | 基于多区块链间的通信方法、装置、客户端及存储介质 |
CN111010441A (zh) * | 2019-12-18 | 2020-04-14 | 深圳市网心科技有限公司 | 一种区块链跨链方法、系统及电子设备 |
CN111046109A (zh) * | 2019-12-27 | 2020-04-21 | 深圳市网心科技有限公司 | 一种跨链任务处理方法、装置、设备及可读存储介质 |
CN111046109B (zh) * | 2019-12-27 | 2023-09-15 | 深圳市迅雷网络技术有限公司 | 一种跨链任务处理方法、装置、设备及可读存储介质 |
CN111523892B (zh) * | 2020-04-23 | 2021-07-27 | 深圳前海微众银行股份有限公司 | 一种区块链的跨链交易方法及装置 |
CN111523892A (zh) * | 2020-04-23 | 2020-08-11 | 深圳前海微众银行股份有限公司 | 一种区块链的跨链交易方法及装置 |
CN112651724A (zh) * | 2020-04-28 | 2021-04-13 | 北京邮电大学 | 跨链交互方法、装置和系统 |
CN111640017A (zh) * | 2020-05-06 | 2020-09-08 | 深圳前海微众银行股份有限公司 | 一种应用于联盟链跨链转账的交易正确性验证方法及装置 |
CN111640017B (zh) * | 2020-05-06 | 2024-05-28 | 深圳前海微众银行股份有限公司 | 一种应用于联盟链跨链转账的交易正确性验证方法及装置 |
CN111597228B (zh) * | 2020-05-13 | 2023-06-20 | 山大地纬软件股份有限公司 | 一种提高区块链扩展性的多链系统及方法 |
CN111597228A (zh) * | 2020-05-13 | 2020-08-28 | 山大地纬软件股份有限公司 | 一种提高区块链扩展性的多链系统及方法 |
CN112184204A (zh) * | 2020-09-30 | 2021-01-05 | 银盛支付服务股份有限公司 | 一种基于数据路由规则、分库分表的数据操作方法及系统 |
CN112529556A (zh) * | 2020-12-14 | 2021-03-19 | 上海樊迪信息技术有限公司 | 一种证券划账登记方法及系统 |
CN114782043A (zh) * | 2021-08-05 | 2022-07-22 | 北京天德科技有限公司 | 一种基于多链的安全交易系统及安全交易方法 |
CN114519078B (zh) * | 2022-04-19 | 2022-08-09 | 北京理工大学 | 一种基于区块链的跨链可信查询方法及系统 |
CN114519078A (zh) * | 2022-04-19 | 2022-05-20 | 北京理工大学 | 一种基于区块链的跨链可信查询方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108492108B (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108492108A (zh) | 区块链跨链通信方法、系统和计算机可读存储介质 | |
CN108492183B (zh) | 区块链的账户交易方法、系统和计算机可读存储介质 | |
CN107846278B (zh) | 智能合约处理方法及装置 | |
CN110597925B (zh) | 一种基于区块链的跨链数据处理方法及装置 | |
CN108776929A (zh) | 基于区块链数据库的账单处理方法、系统和可读存储介质 | |
CN112073269B (zh) | 区块链网络测试方法、装置、服务器及存储介质 | |
CN109075964A (zh) | 支持用于区块验证的多个单向函数的区块链 | |
CN109660356A (zh) | 数据上链方法、装置、设备及计算机可读存储介质 | |
CN108022090B (zh) | 虚拟账户管理方法、设备、系统及可读存储介质 | |
CN110659906B (zh) | 票据信息处理方法、相关设备及介质 | |
CN112527912B (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
CN109146490A (zh) | 区块生成方法、装置和系统 | |
CN111507717B (zh) | 数据处理方法、装置、区块节点及计算机可读存储介质 | |
KR20190068799A (ko) | 서비스 존 기반의 계층적 합의 방법 및 장치 | |
CN115859343A (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
CN110930152B (zh) | 一种基于区块链的数据处理方法及相关设备 | |
Saldamli et al. | Improved gossip protocol for blockchain applications | |
CN110597922A (zh) | 数据处理方法、装置、终端及存储介质 | |
US20230259938A1 (en) | Blockchain-based data processing method and apparatus, device, readable storage medium and computer program product | |
CN109886810B (zh) | 众包交易方法及系统、可读存储介质和终端 | |
CN112035350B (zh) | 针对区块链系统的测试方法、装置及计算机设备 | |
CN111444090B (zh) | 区块链中的合约测试方法、装置、电子设备及存储介质 | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
CN110955724A (zh) | 基于区块链的数据处理方法、装置、节点设备及存储介质 | |
CN112766998A (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 |