基于公链的交易方法及区块链***
本申请要求在2018年8月28日提交中国专利局、申请号为201810986825.3、发明名称为“区块链标准应用模型及其应用方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于公链的交易方法及区块链***。
背景技术
区块链技术是一种去中心化的***思想,能通过公众共识的方式,创建一个相对客观的抗抵赖数字环境。区块链技术可以保证网络信息一经发布即不可更改,例如,区块链网络中发生一笔交易,区块链网络中的节点会在生成的区块中记载该笔交易的内容,并将区块数据进行全网广播,网络中的其他节点以同步或异步的方式存储该区块数据,形成不可更改的区块链。
其中,所述交易具有广义性,不是指传统意义上的“商品买卖”、“物品交换”,而是指区块链网络上的某种或某个数据操作内容或操作结果,例如,在网络上某个区块链节点A发起一个某型号通信设备性能的查询请求a,所述查询请求a对于承担查询服务的区块链节点B来说就是一笔交易。同理。节点B将查询得到的该型号通信设备的性能表b发送给节点A也是一笔交易。信息A、a和信息B、b作为交易信息会被写入区块链的数据区块中。
现有基于区块链的交易方法,仅可局限于同一个区块链网络内,即多为区块链网络中节点与节点之间的交易,并且每种区块链网络以独有的虚拟货币作为交易媒介。例如基于比特币的交易方法仅适用于比特币区块链网络,以比特币(Bitcoin)作为交易虚拟货币;基于以太坊(Etherum)的交易方法只适用于以太坊区块链网络,以以太币作为交易虚拟货币。随着区块链网络技术是发展,越来越多的区块链网络被建立,例如行业链、联盟链以及私链,等等,以实现特定领域内的实际应用。
可见,现有的区块链网络之间基本是相互独立的,不同链之间没有统一有效的机制来通讯和交互。而每种区块链因其应用场景的不同,可提供不同的能力集,区块链网络的内生性决定了不同链提供的能力集之间无法进行对接,即造成数据和应用孤岛效应,限制基于区块链交易方法的应用。
发明内容
本申请提供了一种基于公链的交易方法及区块链***,以解决传统交易方法不支持跨链交易,限制基于区块链交易方法应用的问题。
一方面,本申请提供一种基于公链的交易方法,包括:
交易发起链向公链发起包含服务类型信息的查询交易;
公链根据查询交易中的服务类型信息,查询接入公链网络的交易目标链;
公链向交易发起链返回符合服务类型信息的交易目标链信息,交易目标链信息包括目标链地址,交易方式以及交易条件;
交易发起链根据交易方式和交易条件向公链发起服务交易;
公链传递服务交易至交易目标链;
交易目标链验证交易条件,以及在验证合格后根据接收到的服务交易向公链返回服务内容;
公链传递服务内容至交易发起链。
可选的,交易发起链向公链发起包含服务类型信息的查询交易的步骤包括:
交易发起链中的交易节点根据实际交易信息生成交易请求;
交易节点将交易请求在交易发起链中广播,以形成符合交易发起链的区块链记账;
结账节点将交易请求进行验证,并打包为区块数据;
记账节点将区块数据广播至其他节点,并向公链中的维护节点发起查询交易,公链提供的智能合约包括公链创建的智能合约和公共智能合约。
可选的,在交易发起链向公链发起包含服务类型信息的查询交易的步骤前,所述方法还包括:
公链向接入的公链网络的区块链网络发起合约验证信息,验证接入的区块链网络是否支持公链提供的智能合约;
公链根据是否支持智能合约的验证结果,为接入的区块链网络设置合约判断标签,包括:为接入的区块链网络对应接口节点设置合约判断标签;或者,为接入的区块链网络地址设置合约判断标签。
可选的,在公链向交易发起链返回符合服务类型信息的交易目标链信息的步骤后,如果交易发起链和交易目标链均支持公链约定的接口规范,所述方法还可以通过以下步骤向交易发起链返回服务内容:
交易发起链根据交易方式和交易条件,直接向交易目标链发起服务交易;
交易目标链验证交易条件,以及在验证合格后根据接收到的服务交易向交易发起链返回服务内容;
交易发起链和交易目标链完成交易后,向公链同步交易摘要。
可选的,在交易发起链向公链发起包含服务类型信息的查询交易的步骤还包括:
公链判断交易发起链是否支持智能合约;
如果交易发起链不支持智能合约,通过公链为交易发起链创建智能合约,或者为交易发起链配置公共智能合约;
公链根据智能合约或公共智能合约,确定交易发起链和交易目标链对应的地址。
可选的,所述交易条件包括交易目标链指定的交易证通数量,交易发起链根据交易条件向公链发起服务交易的步骤前还包括:
判断交易发起链所拥有的证通数量,是否满***易目标链指定的交易证通数量;
如果交易发起链拥有的证通数量满***易目标链指定的交易证通数量,允许交易发起链向公链发起服务交易;
如果交易发起链拥有的证通数量不满***易目标链指定的交易证通数量,向交易发起链发送提示信息,以及根据服务类型继续查询接入公链网络的其他交易目标链。
可选的,交易发起链根据交易条件向公链发起服务交易的步骤包括:交易发起链在公链上创建转账交易,以触发合约执行,转账交易中包括向交易目标链支付的指定交易证通数量。
可选的,公链传递服务交易至交易目标链的步骤包括:
公链对转账交易进行锁定,以及根据转账交易,向交易目标链发起请求交易;
交易目标链根据交易请求,向公链提供返回交易结果;
公链验证返回交易结果,如果返回交易与转账交易一致,解除转账交易的锁定状态;
公链将交易发起链支付的证通,转账至交易目标链,以及将服务内容转至交易发起链。
可选的,公链在查询接入公链网络的交易目标链之后,所述方法还包括:
公链判断交易发起链和交易目标链,是否支持直接通过公链的证通进行交易;
如果交易发起链,和/或交易目标链,不支持直接通过公链的证通进行交易,在交易发起链,和/或交易目标链对应的平行链中转换证通;
由交易发起链对应的平行链向公链发起服务交易,以及由交易目标链对应的平行链向公链返回服务内容。
另一方面,本申请还提供一种基于公链的区块链***,包括:交易发起链、公链以及交易目标链;所述交易发起链通过公链与交易目标链建立网络连接;
所述交易发起链被配置为:向公链发起包含服务类型信息的查询交易;以及,根据交易目标链的交易条件向公链发起服务交易;
所述公链被配置为:根据查询交易中的服务类型,查询接入公链网络的交易目标链;向交易发起链返回符合服务类型信息的交易目标链信息,所述交易目标链信息包括目标链地址、交易方式和交易条件;以及,传递服务交易至交易目标链,和传递服务内容至交易发起链;
所述交易目标链被配置为:验证交易条件,以及在验证合格后根据接收到的服务交易向公链返回服务内容。
由以上技术方案可知,所述方法在实际应用中,先由交易发起链向公链发起查询交易,再通过公链根据查询交易中的服务类型信息,查询接入公链网络的交易目标链;以使公链向交易发起链返回符合所述服务类型信息的交易目标链信息;交易发起链再根据交易目标链要求的交易方式和交易条件向公链发起服务交易;公链将服务交易传递至交易目标链;并且在交易目标链验证所述交易条件合格后根据接收到的服务交易向公链返回服务内容;最后公链再将服务内容传递至交易发起链,完成跨链交易。所述方法通过公链网络查询和传递服务交易,使交易发起链能够获得交易目标链的服务内容,在不同链网络之间完成跨链交易,提高基于区块链交易方法的应用范围。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请基于公链的交易方法流程示意图;
图2为本申请交易发起链向公链发起查询交易的流程示意图;
图3为本申请判断交易发起链是否支持智能合约的流程示意图;
图4为本申请判断交易发起链和交易目标链是否支持公链证通交易的流程示意图;
图5为本申请判断交易发起链证通数量是否符合要求的流程示意图;
图6为本申请公链对交易锁定时的交易流程示意图;
图7为本申请交易发起链和交易目标链支持公链约定的接口规范时交易流程图;
图8为本申请一种基于公链的区块链***的结构示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的***和方法的示例。
在本申请提供的技术方案中,区块链网络是指具有去中心化应用架构的点对点(P2P)网络,所述区块链网络能够进行分布式存储、公共共识、数字加密、交易记账以及验证。即涵盖了分布式技术、密码学、P2P网络架构以及各种可能被应用的共识算法的交易平台。区块链或区块链信息是指在区块链网络中发生交易时,根据交易信息生成的记账信息,即多笔具体的交易组成一个区块,多个区块形成一条有序区块链。区块链网络中,包括相互建立点对点网络连接的节点,每一个节点都配置有相应的共识机制,如智能合约,并且具有足够的运算能力,以进行交易验证和记账程序。节点上还具有符合某种统一标准的接口规范,以实现通过接口规范接入更多的节点或者其他类型的区块链网络。
在本申请中,所提及的公链、交易发起链、交易目标链以及平行链,均是指符合区块链技术的不同区块链网络。本申请中除另有说明外,公链、交易发起链、交易目标链以及平行链均是指相应的网络,即公链网络、交易发起链网络、交易目标链网络以及平行链网络。本申请提供的技术方案中,公链网络作为布置在全网的基础平台,其节点接口接入多个区块链网络,如基于公链接口规范搭建的行业链、联盟链以及私有链。每个区块链网络可以作为一个开发平台,并为其网络内部提供相应的服务。其中,公链定义和规范有标准的接口和方式,以便于其他区块链,如交易发起链和交易目标链,进行网络对接。本申请中公链具有支持跨链中介的能力,还具有去中心化的应用和智能合约化能力。
交易发起链和交易目标链是指接入公链网络中的区块链,即在本申请中,公链提供基础平台,交易发起链和交易目标链作为接入的网络,具有各自的功能和服务。交易发起链和交易目标链可以是基于公链网络标准和接口规范搭建的区块链网络,即交易发起链和交易目标链可以直接与公链网络之间进行通信和服务对接。交易发起链和交易目标链也可以是各自独立的网络,如现有的区块链网络比特币、以太坊等,或者,某些行业开发的行业链和联盟链,甚至是为了达到某种服务需求而搭建的私有链。这些现有区块链、行业链、联盟链以及私有链,一般不能直接相互交易甚至不能与公链网络之间相互交易,因此,本申请中可通过平行链来连接公链与其他网络。
平行链可以由公链网络中的部分节点组成,通过平行链可以对公链与其他不能直接交易的网络之间进行桥接。本申请中,对于不能直接交易的网络,每一个区块链网络都对应一个平行链,平行链被设置为具有对应区块链网络的完整功能,并且能够对区块链网络中的交易进行同步转化,并传递到公链网络中。因此,在本申请提供的技术方案中,平行链可以确定为对应区块链网络的镜像,而为了便于描述,对应区块链网络成为母链。在本申请中,平行链由公链网络中的部分节点组成,并且这些节点也是母链中的节点,以进行交易信息的传递。
基于上述组成部分,公链在实际应用中可提供跨链中继,完成交易验证,数据证明,资产转移和智能合约执行等工作。公链统一对外的接口规范,可使其他区块链网络能够快速接入公链网络。公链还提供基础的区块链平台能力,即快速完成方案部署和验证,完成在公链网络中的分布式存储和记账程序。另外,作为基础平台,公链还可以提供公共开发功能,从而一次性完成多个平行链智能合约协同开发和部署。
公链除了记录自己的区块链信息外,还可以用于存储相应跨链交易的信息摘要,即交易摘要。通过格式化的交易数据记录跨链交易的相关内容。同时,为了减少对公链上分布式存储空间的占用,公链在记录某些信息时,还可以通过特定的压缩算法记录第三方区块链信息。示例地,在公链中形成和存储的区块数据可以包括以下内容:区块标识(如序号、时间戳、区块hash值以及前区块hash值)、区块归属(即区块生成者)、区块其他信息(如随机值、难度值以及附加信息等)、区块权重、信息摘要(如交易树、状态树、收据树以及数据树等)、交易费用、奖励、大小等。
为了实现跨链交易,本申请提供的一种基于公链的交易方法,如图1所示,所述交易方法包括以下步骤:
S1:交易发起链向公链发起包含服务类型信息的查询交易。
本申请提供的技术方案中,交易发起链根据自身的服务需求,确定交易发起链上需要的服务类型,并以查询交易的方式发送给公链网络。由于本申请中,交易发起链也是接入公链的区块链网络,因此,此处所述的发起查询交易可以是交易发起链中的某个节点发起。交易节点发起查询交易后,交易发起链网络先对该服务交易进行判断,以确定在交易发起链网络内部是否可以完成该服务交易。
如果当前服务交易可以在所述交易发起链内部完成,则不需要向公链网络发起查询交易,即交易节点在交易发起链内部与另一个能够提供对应服务类型的节点之间完成交易,这一交易过程可以在交易发起链内部形成区块链信息,并且在交易发起链内部进行分布式存储、验证等程序。如果当前服务交易不能够在所述交易发起链内部完成,则可以通过交易发起链中的智能合约生成对应的查询交易,并向公链发起所述查询交易。显然,在发起的查询交易中必然包括服务交易中所需求的服务类型。另外,对于无法直接与公链进行交易的第三方区块链,查询交易可以通过平行链传递到公链上,以发起查询交易。
例如,接入公链网络P的区块链网络有5个,分别为区块链网络A~E,其中,网络B包含100个节点,分别记为B00~B99。在实际应用中,网络B中的节点B25需要使用100个证通Tb,兑换等价值的证通Ta,则节点B25作为交易节点,其根据需要创建查询交易并形成区块数据,查询交易中包含的服务类型为:证通兑换,节点B25可将查询交易现在网络B中进行广播,即广播至其他节点,如B24和B26,网络B中的其他节点一方面对查询交易的区块数据进行分布式存储,完成记账,另一方面可确定网络B中是否能够满足节点B25的交易请求的其他节点,即其他节点是否能够向节点B25兑换证通Ta。
如果网络B中的其他节点不能完成证通兑换,则需要将该查询交易广播给公链网络P中的节点,以便公链网络P中的节点根据该查询交易确定网络A、C、D、E是否能够向节点B25兑换证通Ta。
进一步地,如图2所示,交易发起链向公链发起包含服务类型信息的查询交易还可以进一步包括以下步骤:
S101:所述交易发起链中的交易节点根据实际交易生成交易信息;
S102:所述交易节点将所述交易信息在交易发起链中广播,以形成符合所述交易发起链的区块链记账;
S103:记账节点将交易进行验证,并加入区块数据;
S104:记账节点将区块数据广播至交易发起链其他节点,同时向公链中的维护节点发起查询交易,公链提供的智能合约包括公链创建的智能合约和公共智能合约。
由以上步骤可知,在交易节点生成交易后,可以将交易信息在交易发起链中进行广播,交易发起链根据其记账规则,将交易信息写入区块数据进行分布式存储,形成符合交易发起链的区块链记账数据。所述区块数据中记载了交易节点所发起的实际交易信息,例如:服务类型、交易数量、交易发起方、交易目标方、hash值等。在交易发起链中进行广播后,交易节点还为区块数据添加智能合约和服务类型信息。
仍以上述证通兑换的服务为例,交易节点B25在发起查询交易以后,生成包含该证通兑换服务的区块数据,再对查询交易的交易信息在网络B中进行广播,具体的广播形式可以按照网络B中的广播形式要求来确定,例如,交易节点B25可以先将区块数据广播至临近节点B24和B26,临近节点B24和B26对交易进行验证,确定交易是否合法,并对区块数据进行存储形成区块链。再由临近节点B24和B26广播至各自的临近节点,从而使网络B中的全部节点都能够对该区块数据进行验证和存储,形成符合网络B中记账规范的完整区块链数据。
本实施例中,公链提供的智能合约包括公链创建的智能合约和公共智能合约,智能合约信息用于实现能够与公链进行交易,以便发起查询交易以及后续的服务交易;服务类型信息包含必要的服务描述信息,或者公链网络中存储的服务代码信息,可以用于发起查询交易。再将添加了智能合约和服务类型信息的区块数据向公链中的维护节点广播,从而实现发起查询交易。公链网络中的维护节点可以是用于交易发起链提供接口的节点,也可以是指定的其他节点。为了便于发起查询交易,可以利用计算能力满足条件,并且与交易发起链的距离较近的节点作为维护节点,以增加区块数据的广播速度。
需要说明的是,在本申请提供的技术方案中,所述服务交易包含具体的交易内容,可以是虚拟货币兑换交易,如通过交易发起链中的证通(token)等价值兑换成交易目标链中证通;也可以是通过虚拟货币购买某种服务,如面向网络的查询服务,报告服务等。查询交易是一种特殊交易,其交易形式与普通交易形式相同,但需要特殊约定具体的交易方式,例如带有查询交易智能合约信息的交易,或者约定转账的证通数量为0的交易。
在本申请的部分实施例中,在所述交易发起链发起查询交易的步骤以前,还可以通过公链对交易发起链进行智能合约验证,确定交易发起链是否支持公链提供的智能合约。即,由所述公链向接入的所述公链网络的区块链网络发起合约验证信息,验证接入的区块链网络是否支持所述公链提供的智能合约。由于在实际应用中,每一个接入公链的区块链网络都有可能作为交易发起链,因此,本实施例中,可以在一个区块链网络接入公链后,即对其进行智能合约验证。
在进行智能合约验证后,所述公链可根据是否支持所述智能合约的验证结果,为接入的所述区块链网络设置合约判断标签。具体为:为接入的所述区块链网络对应接口节点设置合约判断标签;或者,为接入的所述区块链网络地址设置合约判断标签。其中,为接入的区块链网络对应接口节点设置合约判断标签的方式,可以在对应区块链网络作为交易发起链时,提取为接口节点设置的判断标签,从而确定当前交易发起链是否支持智能合约;而为接入的所述区块链网络地址设置合约判断标签的方式,可以同样通过提取交易发起链的地址确定对应的交易发起链是否支持智能合约。
本实施例中,对于支持智能合约的交易发起链,可以直接通过智能合约向公链发起查询交易,不需要平行链的参与;而对于不支持智能合约的交易发起链,则可以通过公链为交易发起链配置智能合约,或者采用平行链桥接的方式,将查询交易从交易节点传递到公链,其中,平行链已经配置了智能合约。因此,如图3所示,在交易发起链向公链发起查询交易之前,所述交易方法还可以包括:
S105:所述公链判断所述交易发起链是否支持智能合约;
S106:如果所述交易发起链不支持所述智能合约,通过所述公链为所述交易发起链创建智能合约,或者为所述交易发起链配置公共智能合约;
S107:所述公链根据所述智能合约或所述公共智能合约,确定交易发起链和交易目标链对应的地址。
本实施例中,公链对交易发起链是否支持智能合约的判断,可以通过公链对交易发起链上合约判断标签的提取,即通过分析合约判断标签确定是否交易发起链是否支持智能合约,也可以通过公链上的智能合约向交易发起链发起一个的特定格式的合约判断交易,并分析交易发起链返回的合约判断结果。如果交易发起链能够返回符合智能合约规范的内容,确定交易发起链支持智能合约;如果交易发起链不能返回符合智能合约规范的内容,或者未做出响应,确定交易发起链不支持智能合约。
针对支持智能合约的交易发起链,可以执行后续交易步骤,即交易发起链通过智能合约向公链发起查询交易。而针对不支持智能合约的交易发起链,可以通过公链为所述交易发起链配置智能合约,或者通过公链为交易发起链选择一个公共合约,并为交易发起链配置选择的公共合约。本实施例中,公共合约可以是应用程度较高的区块链网络所使用的合约,或者当前行业领域约定的合约规范。在对交易发起链配置了智能合约或公共智能合约后,公链还可以确定交易发起链和交易目标链的地址信息,即明确交易发起链和交易目标链,以便实施后续交易。
S2:所述公链根据所述查询交易中的服务类型信息,查询接入公链网络的交易目标链。
本申请提供的技术方案中,公链在接收到交易发起链发起的查询交易后,提取查询交易中的服务类型信息,并根据服务类型信息在公链网络中进行查询,找到能够提供所述服务类型信息对应服务的区块链网络作为交易目标链。同样,作为交易目标链的网络中也包含多个节点,即多个节点组成交易目标链。因此,交易目标链中所能够提供的服务的可以是一个或部分节点。可见,在本申请提供的技术方案中,公链查询到的结果,可以是交易目标链,也可以是交易目标链中能够提供服务的节点。在本申请提供的技术方案中,优选公链查询到的结果是交易目标链的方式,以便快速确定交易目标链,避免交易目标链不支持公链查询的情况。
本实施例中,公链在公链网络中进行交易目标链的查询,可以由公链中配置的智能合约完成,也可以由公链网络中的去中心化应用完成。具体查询过程,可以是在公链网络中存储的接入区块链网络的信息中查询。这样的查询方式,需要公链在有区块链网络接入时,通过接入节点通信,获取接入的区块链网络登记的信息,登记的信息可以包括:能够提供的服务类型,能够进行兑换的证通类型,以及进行交易的方式、交易的条件等。公链中的程序对这些登记信息与对应的网络地址进行对应存储,并在全网进行广播。
查询过程还可以通过以下形式完成,即公链在接收到查询交易后,在全网广播一次用于服务提供的交易。接入公链的区块链网络在接收到服务提供的交易后,可以针对该交易进行相应的回复,回复的信息中,可以包括交易条件和交易方式。公链选择回复最早的区块链网络作为交易目标链,或者对交易条件进行判断确定最适宜的(如需要证通数量最少的,或者交易证通流通性最好的)交易目标链。
进一步地,为了便于交易结算和完成记账程序,如图4所示,所述公链在查询接入公链网络的交易目标链之后,所述方法还包括:
S201:所述公链判断所述交易发起链和所述交易目标链,是否支持直接通过所述公链的证通进行交易;
S202:如果所述交易发起链,和/或所述交易目标链,不支持直接通过所述公链的证通进行交易,在所述交易发起链,和/或所述交易目标链对应的平行链中转换所述证通;
S203:由所述交易发起链对应的平行链向公链发起服务交易,以及由所述交易目标链对应的平行链向公链返回服务内容。
本实施例中,公链在查询到交易目标链以后,可以根据在公链中存储的信息,判断交易发起链和交易目标链之间是否支持直接通过公链证通进行交易,如果交易发起链和交易目标链可以直接通过公链证通进行交易,从而便于公链进行记账程序和检验交易结算。如果所述交易发起链,和/或所述交易目标链,不支持直接通过所述公链的证通进行交易,可以在所述交易发起链,和/或所述交易目标链对应的平行链中转换所述证通,即按照公链证通与交易发起链,和交易目标链之间的兑换比率,先将交易发起链支付的证通兑换成等价值的公链证通,再通过公链将公链证通传递至交易目标链。并且在后续的交易程序中,由平行链完成服务交易。
S3:所述公链向所述交易发起链返回符合所述服务类型信息的交易目标链信息,所述交易目标链信息包括目标链地址,交易方式以及交易条件。
公链在查询到交易目标链以后,可以获取交易目标链的地址信息以及交易方式、交易条件等信息。显然,公链可以从公链存储的登记信息中获取上述信息,也可以通过将查询交易转发给交易目标链的方式,由交易目标链一方提供该信息。为了增加查询效率,本申请优选通过公链存储的登记信息的方式获取上述信息。公链在获取到所述交易目标链信息后,可以将得到的目标链信息发送给交易发起链,以使交易发起链根据交易目标链信息确定是否与其进行交易。
本申请提供的技术方案中,所述目标链地址,为交易目标链在公链网络中的登记地址,或者,交易目标链接入公链时,提供接口的节点地址。交易方式为交易目标链设定的交易时间、区块链信息格式(模板)、支持交易的证通类型等。交易条件不仅可以包括提供服务所需要收取的指定证通数量,而且可以包括对于交易发起链的资质要求,例如所拥有的证通数量要求,交易发起链的信誉评分等。
进一步地,为了获得更加合适的交易目标链,在查询交易中还可以附带一些附加信息,例如,所能够提供的交易证通类型,所需要的服务规范,交易目标链的服务提供资质,交易证通上限等。
示例地,交易节点B25发出的查询交易在网络B中没有能够该证通兑换服务的节点时,可以通过网络B和公链网络P之间的连接节点BP(或接口节点),将该查询交易广播至公链网络P中的维护节点P01~P99,公链中的维护节点同样需要对该查询交易进行验证和分布式存储,并根据该查询交易在公链网络P上接入的其他区块链网络A、C、D、E是否能够提供该证通兑换服务。如果查询到其他区块链网络中,有能够满足该证通兑换服务的网络A,则获取到网络A在公链网络P中的地址信息,如连接节点AP的IP地址,以及网络A在公链网络P中登记的交易条件,即进行证通Tb兑换证通Ta时所要求的交易条件,如证通Tb和证通Ta的兑换比率、网络A要求的交易对手所拥有的兑换资质等。公链P中的服务节点将网络A的地址,以及网络A的交易条件,创建查询结果,并将查询结果返回给交易节点B25。
S4:所述交易发起链根据所述交易方式和交易条件向所述公链发起服务交易。
本申请提供的技术方案中,交易发起链在接收到公链返回的交易目标链信息后,可以对交易目标链信息进行分析,提取交易目标链信息中的交易方式和交易条件。其中,针对交易方式,交易发起链可以确定是否支持交易目标链提供的交易方式;而对于交易条件,可以自动或手动判断交易目标链所提出的交易条件是否能够被接受。如果能够接受交易条件,并且支持相应的交易方式,交易发起链可以按照指定交易方式,向公链发起满***易条件的服务交易。
交易发起链根据交易条件向公链发起服务交易的步骤包括:交易发起链在所述公链上创建转账交易,以触发合约执行,所述转账交易中包括向所述交易目标链支付的指定交易证通数量。
示例地,在公链网络P中的维护节点将查询结果返回给交易节点B25后,交易节点B25对返回的查询结果中交易条件和交易方式进行验证,一方面,确定交易是否符合要求即是否能够满足B25的证通兑换服务请求,另一方面可以确定交易条件是否能够被接受,例如,交易目标链A所要求的证通兑换比率是否可以被接受。上述验证过程可以通过节点B25自动判断,也可以主动选择是否接受该交易条件。此外,对返回查询结果的验证还可以包括,交易节点B25是否能够按照交易目标链A指定的交易方式进行交易。
如果交易节点B25接受该交易条件,并且能够按照交易目标链A指定的交易方式进行交易,则交易节点B25发起正式的服务交易,即向公链网络P转账100个证通Tb。需要说明的是,由于在此次跨链交易中,公链网络中的维护节点从事了相应的查询和存储操作,以及在后续的交易过程中,还会参与其他操作,如传递、价值转化、记账等,因此,在交易节点B25向公链发起正式的服务交易时,还需要向公链网络中转账特定数量公链证通以作为公链中维护节点的奖励。
进一步地,如图5所示,所述交易条件包括所述交易目标链指定的交易证通数量,所述交易发起链根据所述交易条件向公链发起服务交易的步骤前还包括:
S401:判断所述交易发起链所拥有的证通数量,是否满足所述交易目标链指定的交易证通数量;
S402:如果所述交易发起链拥有的证通数量满足所述交易目标链指定的交易证通数量,允许所述交易发起链向所述公链发起服务交易;
S403:如果所述交易发起链拥有的证通数量不满足所述交易目标链指定的交易证通数量,向所述交易发起链发送提示信息,以及根据服务类型继续查询接入公链网络的其他交易目标链。
在本实施例中,如果交易条件是交易目标链指定的交易证通数量,则公链可以对交易发起链所拥有的指定证通余额进行判断,以确定交易发起链能否满***易目标链指定的交易条件要求。对于能够满***易条件的情况,允许所述交易发起链向所述公链发起服务交易;对于不能够满***易条件的情况,可以向所述交易发起链发送提示信息,告知交易发起链,并且还可以根据服务类型继续查询接入公链网络的其他交易目标链,并重复上述过程,直至查询到满***易条件的情况。
例如,交易目标链A要求的交易条件为作为交易发起方的交易节点所拥有的证通Tb数量不少于100个,因此在发起正式服务交易前,可通过公链网络对交易节点拥有的证通Tb的数量进行判断,如果交易节点拥有的证通Tb的数量为53个,则确定为不满***易条件,此时公链网络向交易节点B25发送提示信息,如“您所拥有的证通Tb余额不足,无法完成交易”,“交易要求证通Tb数量不少于100个,您还需要47个才能完成交易”。
S5:所述公链传递所述服务交易至所述交易目标链。
本申请提供的技术方案中,交易发起链向公链发送的服务交易在公链中可以不做任何处理,仅由公链网络将服务交易传递至交易目标链。其中,公链可以对服务交易中的交易目标链的地址信息进行提取,获取交易目标链的位置,再根据交易目标链的地址将服务交易发送至交易目标链。
例如,公链网络P中的维护节点在接收到交易节点B25发起的服务交易后,对交易节点转账的100个证通Tb进行验证,并针对服务交易形成符合公链交易形式的区块数据,并对形成的区块数据在公链网络中进行广播,再将这100个证通Tb转移至网络A所对应的Tb账户中。
由于服务交易的传递依赖于公链完成,因此为了达到抗抵赖交易效果,可以公链在传递所述服务交易时,需要在公链网络内进行分布式存储,即在公链网络中记账。因此在公链传递所述服务交易时,也是一种发生在公链网络中的交易。在实际应用中,针对不同区块链网络,流通的证通类型也不同,而不同类型的证通往往不能直接进行交易。因此在本申请提供的技术方案中,公链传递所述服务交易至所述交易目标链的过程中,可以先将交易发起链支付的证通进行锁定,再向交易目标链转移等价值的公链证通,以触发交易目标链返回服务内容。
即,在本申请的部分实施例中,如图6所示,所述公链传递所述服务交易至所述交易目标链的步骤包括:
S501:所述公链对所述转账交易进行锁定,以及根据所述转账交易,向所述交易目标链发起请求交易;
S502:所述交易目标链根据所述交易请求,向所述公链提供返回交易结果;
S503:所述公链验证所述返回交易结果,如果所述返回交易结果与所述转账交易一致,解除所述转账交易的锁定状态;
S504:所述公链将所述交易发起链支付的证通,转账至所述交易目标链,以及将服务内容转至所述交易发起链。
本实施例中,公链先对转账交易进行锁定,即暂时锁定交易发起链支付的证通,再根据转账交易向交易目标链发起请求交易,其中,请求交易用于触发交易目标链返回交易,公链再对返回交易的内容进行验证,如果返回交易与转账交易一致,则解除对转账交易的锁定状态,以使所述公链将交易发起链支付的证通,转账至交易目标链,并且将服务内容转至交易发起链。通过公链对转账交易进行锁定,可以在公链网络中对交易内容进行验证,确定是否达真正符合交易规范,保障交易双方的交易权益。
S6:所述交易目标链验证所述交易条件,以及在验证合格后根据接收到的所述服务交易向公链返回服务内容。
本申请提供的技术方案中,交易目标链在接收到公链传递的服务交易后,先针对交易条件进行验证,确定服务交易是否满***易条件。例如,服务交易所支付的证通数量是否符合交易目标链需要的证通数量,交易发起链是否具有交易目标链要求的交易资质等。如果交易目标链验证交易条件合格,则根据接收到的服务交易返回相应的服务内容,即为所述交易发起链提供对应的服务。
服务内容可以是返回交易中包含具体的服务内容,例如,数据检索报告,或者兑换的另一种指定数量的证通等。而对于需要长期维持的服务内容,在返回的服务内容中可以包含相应的网络接入信息,验证码,账号等。对于需要长期维持的服务内容,公链可以不必直接参与后续的数据传递过程,只在返回服务内容时,将相应的网络接入信息,验证码,账号等信息传递给交易发起链,并且在公链中对返回的服务内容进行分布式存储,完成记账程序。
S7:所述公链传递所述服务内容至所述交易发起链。
公链在接收到交易目标链返回的服务内容后,以中继的方式将服务内容传递至交易发起链。在公链将服务内容转发到交易发起链后,即代表交易完成。例如,在公链网络P将100个证通Tb转移至网络A所对应的Tb账户中以后,公链网络在交易目标链验证通过后,从网络A所对应的Ta账户中提取等价值的证通Ta,如兑换比率为2:1,则提取50个证通Ta转账至网络B所对应的账户中,完成最终的服务交易。
在本申请的部分实施例中,如图7所示,在所述公链向所述交易发起链返回符合所述服务类型信息的交易目标链信息的步骤后,如果所述交易发起链和所述交易目标链均支持所述公链约定的接口规范,所述方法还可以通过以下步骤向所述交易发起链返回服务内容:
S8:所述交易发起链根据所述交易方式和交易条件,直接向所述交易目标链发起服务交易;
S9:所述交易目标链验证所述交易条件,以及在验证合格后根据接收到的所述服务交易向所述交易发起链返回服务内容。
在部分区块链网络***中,由于整个网络为点对点的网络,理论上任意两个节点之间均可以建立网络连接。因此,接入公链的不同区块链网络之间,可以直接进行通信交流,这样的区块链网络支持公链约定的接口规范。即,如果交易发起链和交易目标链均支持公链约定的接口规范,则在公链向所述交易发起链返回符合服务类型信息的交易目标链信息后,交易发起链可以直接提取交易目标链信息中的交易目标链地址,并根据该地址直接向交易目标链发起服务交易。
交易目标链则在接收到交易发起链发起的服务交易后,对交易条件进行验证,具体的验证内容与上述实施例的内容一致。在交易条件验证合格后,交易目标链再根据接收到的服务交易,直接向交易发起链返回交易内容,完成最终的交易。
对于上述情况,为了保证交易发起链和交易目标链之间的交易记账程序,可以在交易发起链发起服务交易时,在交易发起链内部进行一次分布式记账,并且将存储的区块数据,或者区块数据的摘要发送至公链网络中进行分布式存储;并且,在交易目标链返回服务内容时,在交易目标链中进行一次分布式记账,同时也将存储的区块数据,或者区块数据的摘要发送至公链网络中进行分布式存储。并且,在交易目标链发送存储的区块链数据或数据摘要到公链以后,公链还可以针对区块数据中的地址信息,对交易发起链和交易目标链发送的区块数据进行一致性对比,确定交易的合法性等。
本实施例与上述实施例的区别在于,公链网络仅负责相应的查询交易,即在交易发起链发起查询交易后,公链网络根据查询交易查询到交易目标链后,将交易目标链的地址信息返回给交易节点B25,交易节点B25根据目标链地址信息,直接向交易目标链A发起服务交易,即转账100个证通Tb给交易目标链A,交易目标链A中的服务节点再接收到100个证通Tb后,向交易节点B25再转账50个证通Ta,从而直接完成交易。显然,为了避免交易错误,在交易节点B25向交易目标链A转账100个证通Tb时,所形成的区块数据不仅在网络B中进行广播,还要在公链网络中进行广播,同理,在交易目标链A的服务节点向交易节点B25转账50个证通Ta时,也需要同时在交易目标链网络A和公链网络P中同步或异步进行广播。
需要说明的是,在本申请提供的技术方案中,为了描述方便,所述交易节点B25向交易目标链A转账100个证通Tb,以及交易目标链A的服务节点向交易节点B25转账50个证通Ta,是指证通或者交易结果的流转方向,并非真的将证通实体从一个链转到另一个链。在实际应用时,交易双方可以在两个网络里面都有对应的账号,而转账交易只是将证通转到对应的账号中,即100个Tb是在B网络进行交换,50个Ta是在A网络交换,通过公链传递的只是交易信息和记账数据等描述跨链交易的内容。
基于上述交易方法,本申请还提供一种基于公链的区块链***,如图8所示,所述***包括:交易发起链、公链以及交易目标链;所述交易发起链通过所述公链与所述交易目标链建立网络连接;其中,交易发起链是指作为交易发起方的区块链网络,交易目标链是指作为交易目标方的区块链网络。
为了完成跨链交易,所述交易发起链被配置为执行以下程序步骤:向公链发起包含服务类型信息的查询交易。即在跨链交易开始之初,交易发起链向公链发起查询交易,以使公链在公链网络中查询交易目标链。以及,根据所述交易目标链的交易条件向公链发起服务交易。即在公链返回符合所述服务类型信息的交易目标链信息后,向公链发起服务交易。
所述公链被配置为:根据所述查询交易中的服务类型,查询接入公链网络的交易目标链;向所述交易发起链返回符合所述服务类型信息的交易目标链信息,所述交易目标链信息包括目标链地址、交易方式和交易条件;以及,传递所述服务交易至所述交易目标链,和传递所述服务内容至所述交易发起链;
所述交易目标链被配置为:验证所述交易条件,以及在验证合格后根据接收到的所述服务交易向公链返回服务内容。此外,交易目标链还可以在公链查询到交易目标链以后,向公链提供自己的地址信息、交易方式以及交易条件。
本申请提供的技术方案中,交易发起链和交易目标链是指接入公链网络多个区块链网络中的一部分,因此接入公链网络的多个区块链网络中的任意一个都可以作为交易发起链,只要其拥有足够触发交易的证通数量。同样,每一个区块链网络也都可以作为交易目标链,只要其支持对外进行交易,并且能够提供具体的服务内容。即在本申请提供的技术方案中,所述交易发起链和交易目标链只是为了便于描述,并不对区块链网络进行限定。
需要说明的是,本申请实施例中以证通兑换的服务内容作为示例,进行方案的描述,显然对于不同形式服务内容,其交易过程与证通兑换的交易过程是相同的,仅在交易节点发起服务交易时,交易节点向公链(或交易目标链)转账指定数量的证通后,交易目标链根据服务交易返回具体的交易内容,如返回某型号通信设备性能的查询结果。
由以上技术方案可知,本申请提供一种基于公链的交易方法及区块链网络。所述方法在实际应用中,先由交易发起链向公链发起查询交易,再通过公链根据查询交易中的服务类型信息,查询接入公链网络的交易目标链;以使公链向交易发起链返回符合所述服务类型信息的交易目标链信息;交易发起链再根据交易目标链要求的交易方式和交易条件向公链发起服务交易;公链将服务交易传递至交易目标链;并且在交易目标链验证所述交易条件合格后根据接收到的服务交易向公链返回服务内容;最后公链再将服务内容传递至交易发起链,完成跨链交易。所述方法通过公链网络查询和传递服务交易,使交易发起链能够获得交易目标链的服务内容,在不同链网络之间完成跨链交易,提高基于区块链交易方法的应用范围。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。