本申请要求在2019年2月26日提交中国专利局、申请号为201910141989.7、发明名称为“基于区块链的高并发快速交易及验证方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
发明内容
本申请提供了一种基于区块链的分区交易方法及系统,以解决区块链交易效率低的问题。
第一方面,本申请提供一种基于区块链的分区交易方法,包括:
交易发起节点广播待验证交易,所述待验证交易包括指定的验证方式信息;
维护节点根据指定的验证方式信息,定位验证网络,以及向所述验证网络广播所述待验证交易;所述验证网络为全网络或与所述指定验证方式信息对应的子网络;
验证网络中的验证节点对所述待验证交易实施验证和记账,以及,根据验证通过的交易生成区块链数据。
可选的,所述验证方式信息为交易发起节点指定的交易验证范围,包括全网络验证和分区网络验证;所述交易发起节点广播待验证交易的步骤,还包括:
交易发起节点获取待验证交易的交易类型,所述交易类型包括大宗交易和小额交易;
交易发起节点根据所述交易类型生成指定验证方式信息;
如果所述交易类型为大宗交易,生成包含全网络验证的指定验证方式信息;
如果所述交易类型为小额交易,生成包含分区网络验证的指定验证方式信息。
可选的,如果所述交易类型为小额交易,所述方法还包括:
交易发起节点根据待验证交易广播查询交易;
接收到所述查询交易的分区网络节点,判断所属分区网络是否支持所述待验证交易;
如果所述分区网络支持所述待验证交易,向所述交易发起节点反馈所述分区网络标识信息;
交易发起节点将所述标识信息,添加至所述指定验证方式信息内。
可选的,如果所述验证网络为子网络,所述方法还包括:向全网络节点同步所述区块链数据。
可选的,如果所述验证网络为全网络,所述方法还包括:
全网络中的验证节点存储所生成的区块链数据,以及在全网络范围内广播所述区块链数据;
全网络中的参与节点存储所述区块链数据。
第二方面,本申请还提供一种基于区块链的分区交易方法,包括:
交易发起节点广播待验证交易;
公链网络中的维护节点根据所述待验证交易,判断交易类型;所述交易类型包括大宗交易和小额交易;
如果所述交易类型为小额交易,向所述待验证交易对应的分区网络广播所述待验证交易;
分区网络中的验证节点对所述待验证交易实施验证和记账,以根据所述待验证交易生成区块链数据;
所述分区网络向全网络节点同步所述区块链数据。
可选的,如果所述交易类型为大宗交易,所述方法还包括:
公链网络中的维护节点向全网络广播所述待验证交易;
全网络中的验证节点对所述待验证交易实施验证和记账,以根据所述待验证交易生成区块链数据。
可选的,所述维护节点中存储有当前网络分区策略表,公链网络中的维护节点根据所述待验证交易,判断交易类型的步骤,包括:
维护节点调用所述分区策略表;
在所述分区策略表中匹配能够满足所述待验证交易的分区网络,提取匹配的分区网络中的全部验证节点地址;
根据所述验证节点地址,向全部所述验证节点广播所述待验证交易。
第三方面,本申请还提供一种基于区块链的分区交易系统,包括由多个节点建立的区块链网络,所述区块链网络中的部分节点被配置为验证节点,多个验证节点组成验证网络;验证网络被划分形成多个子网络;所述区块链网络中的部分节点被配置为维护节点;所述区块链网络中的任一节点可作为交易发起节点;
所述交易发起节点被配置为:广播待验证交易,所述待验证交易包括指定的验证方式信息;
所述维护节点被配置为:根据指定的验证方式信息,定位验证网络,以及向所述验证网络广播所述待验证交易;所述验证网络为全网络或与所述指定验证方式信息对应的子网络;
所述验证网络中的验证节点被配置为:对所述待验证交易实施验证和记账,以及,根据验证通过的交易生成区块链数据。
第四方面,本申请提供一种基于区块链的分区交易系统,包括由多个节点组成的公链,以及连接所述公链的接入链;所述公链中的部分节点被配置为维护节点,所述公链中的部分节点被配置为验证节点;多个验证节点组成验证网络,验证网络被划分形成多个分区网络;所述公链和接入链中的任一节点可作为交易发起节点;
所述交易发起节点被配置为:广播待验证交易;
所述公链网络中的维护节点被配置为:根据所述待验证交易,判断交易类型;所述交易类型包括大宗交易和小额交易;如果所述交易类型为小额交易,向所述待验证交易对应的分区网络广播所述待验证交易;
所述分区网络中的验证节点被配置为:对所述待验证交易实施验证和记账,以根据所述待验证交易生成区块链数据;以及向全网络节点同步所述区块链数据。
由以上技术方案可知,本申请提供一种基于区块链的分区交易方法及系统,所述方法先由交易发起节点广播待验证交易,所述待验证交易包括指定的验证方式信息,再由维护节点根据指定的验证方式信息,定位验证网络,并向所述验证网络广播所述待验证交易,其中,所述验证网络为全网络或与所述指定验证方式信息对应的子网络。最后,验证网络中的验证节点对所述待验证交易实施验证和记账,以及,根据验证通过的交易生成区块链数据。所述方法可以根据不同的交易类型,分别进行全网络验证和分区网络验证两种方式,从而在处理特定类型交易时,可以通过分区网络进行快速验证,并在验证完成后全网络同步区块链数据,提高交易效率。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
在本申请提供的技术方案中,区块链网络是指具有去中心化应用架构的点对点(P2P)网络,所述区块链网络能够进行分布式存储、公共共识、数字加密、交易记账以及验证。即涵盖了分布式技术、密码学、P2P网络架构以及各种可能被应用的共识算法的交易平台。区块链或区块链数据是指在区块链网络中发生交易时,根据交易信息生成的记账信息,即多笔具体的交易组成一个区块,多个区块形成一条有序区块链。
区块链网络中,包括相互建立点对点网络连接的节点,每一个节点都配置有相应的共识机制,如智能合约,并且具有足够的运算能力,以进行交易验证和记账程序。节点上还具有符合某种统一标准的接口规范,以实现通过接口规范接入更多的节点或者其他类型的区块链网络。
本申请中,所述交易具有广义性,不是指传统意义上的“商品买卖”、“物品交换”,而是指区块链网络上的某种数据操作内容或操作结果,例如,在网络上某个区块链节点A发起一个某型号通信设备性能的查询请求a,所述查询请求a对于承担查询服务的区块链节点B来说就是一笔交易。同理。节点B将查询得到的该型号通信设备的性能表b发送给节点A也是一笔交易。信息A、a和信息B、b作为交易信息会被写入区块链的数据块中。
参见图1,为本申请一种基于区块链的分区交易方法流程示意图。由图1可知,本申请第一方面提供一种基于区块链的分区交易方法,包括以下步骤:
S11:交易发起节点广播待验证交易,所述待验证交易包括指定的验证方式信息。
实际应用中,交易发起节点可以是当前交易平台上的任何节点,在发生交易时,作为交易发起方的节点,即交易发起节点,可以根据交易需求触发生成一个交易,这个交易中包含了交易发起节点的信息,交易目标节点的信息以及交易的具体内容等。交易生成后,交易发起节点可以在网络中将交易进行广播,以使网络中的验证节点可以对该交易进行验证后,生成区块链数据。本申请中,从交易发起节点广播出去的交易由于还未被验证节点所验证,因此成为待验证节点。
为了快速完成交易的验证,本申请提供的技术方案中,在待验证交易中可以包含该交易指定的验证方式信息。由于在传统交易应用中,区块链交易的验证需要进行全网络验证,因此,在本申请提供的方案中,待验证交易需要包含这种全网络验证的方式;而作为快速验证的一种方式,在本申请中,待验证交易内还可以包含子网络验证,即通过交易平台中的部分节点完成验证即可。因此,为了完成相应的子网络验证,本申请中需要对应用的网络进行划分,形成多个子网络(或分区网络)。
本申请中,子网络的划分方式可以参考多种形式。例如,子网络可以按照地域进行划分,这种划分方式主要针对全球性的交易平台,如果交易发起节点和交易目标节点相距距离较近,或者同属于一个地区或相邻的地区,在进行交易时,可以在广播的待验证交易中指定验证方式为所在地区对应的子网络。
还可以根据交易的重要程度和节点的硬件情况对网络进行划分,由于越是重要的交易,其加密算法越复杂,相应解密过程的计算量也越大。因此,在实际应用中,可以将硬件配置较好的节点专门分区在同一个子网络,以通过硬件配置快速完成解密和验证。
还可以根据交易的类型进行划分,交易的类型可以包括行业、交易方式等。例如,按照行业进行子网络的划分,即同一行业内的交易验证过程被同一个子网络内的验证节点进行验证;又例如,交易方式为证通兑换的可以在同一子网络进行验证;交易方式为信息交换的可以在同一个子网络进行验证。
在本申请的部分实施例中,如图2所示,所述验证方式信息为交易发起节点指定的交易验证范围,包括全网络验证和分区网络验证;所述交易发起节点广播待验证交易的步骤,还包括以下步骤:
S111:交易发起节点获取待验证交易的交易类型,所述交易类型包括大宗交易和小额交易;
S112:交易发起节点根据所述交易类型生成指定验证方式信息;
S113:如果所述交易类型为大宗交易,生成包含全网络验证的指定验证方式信息;
S114:如果所述交易类型为小额交易,生成包含分区网络验证的指定验证方式信息。
本实施例中,交易类型包括涉及到全球范围的大宗交易,如国与国、地区与地区、组织与组织之间的交易,则其对交易效率的要求并不高,而对于交易的安全性和可靠性的要求较高,这样的交易可以指定进行全网络验证,以提高验证的安全性和可靠性。交易类型还包括涉及到个人与个人之间的小额交易,而对于小额交易,其交易更注重交易的效率,而参与验证的节点数量满足一定数量即可,因此可以指定验证方式为分区网络验证方式。
需要说明的是,在本申请提供的技术方案中,所述交易类型包括但不限于上述大宗交易和小额交易。实际应用中,还可以实际应用情况,进一步划分交易类型,例如,按照交易额度划分的:大额交易和小额交易;按照交易实时性划分的:即时交易,延期交易,或其他约定方式的交易等;按照交易内容划分的:转账交易(兑换交易),支付交易,智能合约交易,期权交易,期货交割交易等以及按照交易参与方进行划分的:机构交易,组织交易以及个人交易。
实际应用中,可以根据不同的交易类型指定交易的验证范围,即确定交易是全网验证还是分区网络验证。只要交易过程中,是根据不同交易类型采用不同范围进行验证的交易,都属于本申请的保护范围。
进一步地,为了后续定位进行同步验证的子网络,在本申请的部分实施例中,如图3所示,如果所述交易类型为小额交易,所述方法还包括:
S115:交易发起节点根据待验证交易广播查询交易;
S116:接收到所述查询交易的分区网络节点,判断所属分区网络是否支持所述待验证交易;
S117:如果所述分区网络支持所述待验证交易,向所述交易发起节点反馈所述分区网络标识信息;
S118:交易发起节点将所述标识信息,添加至所述指定验证方式信息内。
由以上步骤可知,交易发起节点可以在广播待验证交易前,根据获悉交易类型,如果其交易类型为小额交易,即在后续验证中通过子网络进行验证的交易,可以通过广播一个查询交易来确定能够满足该交易的子网络地址。当查询交易被广播后,接收到该查询交易的任意一个分区网络节点可以根据该查询交易进行响应,确定其所在的分区网络是否能够对该交易进行验证。
网络节点如果确定所在的分区网络能够满足该交易,则向交易发起节点反馈分区网络对应的标识信息。所述标识信息,可以是网络对应的地址信息,或者根据地址信息按照特定方式转化成的定位标识等。
本实施例中,由于验证网络中的节点数量较多,当查询交易被广播后,可能有多个节点都接收到了该交易,为了防止重复进行信息处理,提高效率,在本申请中,一个节点在接收到查询交易后,可以向同一个分区网络中的其他节点广播一个停止反馈指令,使该分区网络中的其他节点在接收到该停止反馈指令后,可以停止对该查询交易作出反应。为了进一步提高处理效率,可以让最先接收到查询交易的节点广播停止反馈指令。
另外,也可以在验证网络中定义一个专门用于反馈所述分区网络标识信息的查询节点,即在当前网络接收到查询交易后,普通的验证节点不对该查询交易作出反应,而只有查询节点才可以针对该查询交易反馈当前分区网络的标识信息。以此来避免所有节点都作出反应而造成的信息冗余。为了提高信息反馈的效率,可以将靠近验证网络接口位置处的节点配置为查询节点,以使查询节点能够较早的接收到该查询交易。需要说明的是,为了防止查询节点遭到非法侵害,以及数据处理量过多造成网络拥堵,实际应用中,哪个节点作为查询节点可以是随机的,也可以在多个节点中周期性变化。从而避免黑客定向攻击查询节点,使节点遭到非法侵害,并且能够均衡节点的运算能力。
S12:维护节点根据指定的验证方式信息,定位验证网络,以及向所述验证网络广播所述待验证交易;所述验证网络为全网络或与所述指定验证方式信息对应的子网络。
本申请提供的技术方案中,所述维护节点仅仅是对处理所述待验证交易的节点的统称,即根据指定的验证方式信息定位验证网络的节点被称为维护节点,维护节点可以网络平台中被预先指定的节点,也可以是最先接收到待处理交易的节点,还可以是交易发起节点本身,实际适应哪种节点作为维护节点可以根据实际网络划分情况自行确定。
实际应用中,作为维护节点的节点可以有多个,而根据指定验证方式信息定位验证网络的节点可以为多个节点中的一个,也可以由多个节点上共同的网络应用来完成。在定位验证网络之后,可以将待验证交易向定位的验证网络定向进行广播。由于在本申请中,指定的验证方式信息中包括全网络验证和子网络验证,因此,在这一步骤中,广播的验证网络包括全网络和指定验证方式信息中指定的子网络。即:如果指定的验证方式为全网络验证,则向全网络进行广播;如果指定的验证方式为子网络验证,则向指定的子网络广播待验证交易。
S13:验证网络中的验证节点对所述待验证交易实施验证和记账,以及,根据验证通过的交易生成区块链数据。
本申请中,待验证交易通过维护节点转发广播后,可以通过验证网络中的节点对待验证交易进行同步验证,并在验证通过后形成区块数据,并进行记账,完成分布式存储。具体的同步验证方式可以与现有的验证方式相同,但分布存储方式与现有存储方式存在差异,即在本申请的部分实施例中,如果所述验证网络为子网络,所述方法还包括:
S14:向全网络节点同步所述区块链数据。
本申请方案中,由于验证所占用的节点资源和时间消耗均较长,并且验证通过的数量满足一定要求后,即代表该交易对应的数据具有意义,因此在本申请中验证过程可以通过子网络进行代替,而分布式存储过程对于交易的进行没有直接影响,其消耗的时间较长也没有其他明显弊端。但为了使记账数据能够得到全网共识,以提高其抗抵赖效果,因此在实际应用中,在子网络中生成区块链数据后,还需要向全网络节点同步生成的区块链数据,以进行全网范围的分布式存储。
本实施例通过同步区块链数据的方式可以减少对验证的时间,同时在全网络节点中均存储有生成的区块链数据,因此,其抗抵赖效果与传统区块链交易的抗抵赖效果相同。即本实施例在满足抗抵赖效果的前提下,可以提高交易效率。
相应的,如图4所示,如果所述验证网络为全网络,所述方法还包括:
S15:全网络中的验证节点存储所生成的区块链数据,以及在全网络范围内广播所述区块链数据;
S16:全网络中的参与节点存储所述区块链数据。
本实施例中,全网络中的节点可以预先被划分为多种角色,包括验证节点、维护节点、参与节点等。当进行全网络验证的交易生成区块链数据后,验证节点首先要对所生成的区块链数据进行存储。同时,验证节点还可以在全网络范围内针对该区块链数据进行广播,使全网络范围内的所有参与节点都能够接收到该区块链数据,并将区块链数据进行存储,从而提高分布式存储的覆盖面,保证区块链数据拥有良好的抗抵赖效果。
基于上述分区交易方法,如图5所示,本申请还提供一种基于区块链的分区交易系统,包括由多个节点建立的区块链网络,其中,所述区块链网络中的部分节点被配置为验证节点,多个验证节点组成验证网络;验证网络被划分形成多个子网络;所述区块链网络中的部分节点被配置为维护节点;所述区块链网络中的任一节点可作为交易发起节点;
所述交易发起节点被配置为:广播待验证交易,所述待验证交易包括指定的验证方式信息;
所述维护节点被配置为:根据指定的验证方式信息,定位验证网络,以及向所述验证网络广播所述待验证交易;所述验证网络为全网络或与所述指定验证方式信息对应的子网络;
所述验证网络中的验证节点被配置为:对所述待验证交易实施验证和记账,以及,根据验证通过的交易生成区块链数据。
由以上技术方案可知,本申请提供一种基于区块链的分区交易方法及系统,所述方法先由交易发起节点广播待验证交易,所述待验证交易包括指定的验证方式信息,再由维护节点根据指定的验证方式信息,定位验证网络,并向所述验证网络广播所述待验证交易,其中,所述验证网络为全网络或与所述指定验证方式信息对应的子网络。最后,验证网络中的验证节点对所述待验证交易实施验证和记账,以及,根据验证通过的交易生成区块链数据。所述方法可以根据不同的交易类型,分别进行全网络验证和分区网络验证两种方式,从而在处理特定类型交易时,可以通过分区网络进行快速验证,并在验证完成后全网络同步区块链数据,提高交易效率。
在本申请的第二方面,还提供另一种基于区块链的分区交易方法,如图6所示,包括以下步骤:
S21:交易发起节点广播待验证交易。
本实施例中,交易发起节点广播的待验证交易中可以不对验证方式进行指定,而通过维护节点对广播的待验证交易的交易类型进行判断,以根据交易类型确定进行验证的方式。
S22:公链网络中的维护节点根据所述待验证交易,判断交易类型;所述交易类型包括大宗交易和小额交易。
实际应用中,待验证交易必然包括交易发起节点信息、交易目标节点信息以及交易的摘要,维护节点可以提取这些信息判断待验证交易的交易类型。其中,交易类型包括大宗交易和小额交易。同理,大宗交易可以是发生在全球范围内的国与国、地区与地区、组织与组织(联盟与联盟)之间的交易,小额交易则可以是发生在小范围内的个人与个人、个人与小组织、小组织与小组织(公司与公司)之间的交易。实际待验证交易是大宗交易或是小额交易可以在待验证交易中指定,可以通过交易摘要以及发起节点信息和交易目标节点信息间接判断获得。
在本申请提供的技术方案中,可以在交易平台中预先定义一个公链网络,公链网络可以提供交易的基础功能,具有各功能的交易平台可以作为接入链接入到公链网络内。维护者节点可以作为公链中的部分节点,验证网络也可以由公链网络中的部分节点组成,也可以由接入链的部分节点组成,还可以由公链和接入链的节点共同组成。
需要说明的是,本申请以公链中的维护节点作为示例进行交易类型的判断,实际应用中,还可以不预先定义公链网络,而直接通过交易平台中的节点作为维护节点,其本质上的数据处理过程基本相同,都属于本申请的保护范围。
进一步地,所述维护节点中存储有当前网络分区策略表,如图7所示,公链网络中的维护节点根据所述待验证交易,判断交易类型的步骤,包括:
S221:维护节点调用所述分区策略表;
S222:在所述分区策略表中匹配能够满足所述待验证交易的分区网络,提取匹配的分区网络中的全部验证节点地址;
S223:根据所述验证节点地址,向全部所述验证节点广播所述待验证交易。
由以上步骤可知,为了便于对子网络进行快速定位,可以在维护节点中内置分区策略表,分区策略表中记载有当前交易平台中全部验证网络的分区策略,可以通过标识信息指示每个分区网络对应支持的验证功能。通过调用分区策略表,可以在分区策略表中匹配能够满足待验证交易的分区网络,并获得该分区网络中所有验证节点的地址,从而根据获取的节点地址,向验证节点广播该验证交易。为了提高广播的效率,实际应用中可以采用一对多同步广播的方式。
S23:如果所述交易类型为小额交易,向所述待验证交易对应的分区网络广播所述待验证交易。
本实施例中,如果交易类型为小额交易,则其可以满足通过子网络进行快速验证的条件,因此可以向分区网络广播待验证交易。子网络中的验证节点可以针对待验证交易进行验证,以生成区块链数据,即:
S24:分区网络中的验证节点对所述待验证交易实施验证和记账,以根据所述待验证交易生成区块链数据。
本实施例中,维护节点在确定交易类型为小额交易后,可以通过提取交易摘要中记载的信息,对交易所对应的验证网络情况进行判断,以便定位符合待验证交易的子网络。例如,所述待验证交易为证通兑换,则通过提取交易摘要信息后,可以确定该交易需要负责证通兑换功能的子网络进行验证,因此可以向兑换功能的子网络广播该待验证交易。另外,实际应用中,可以根据实际应用环境,进一步细分子网络。例如,同样是兑换交易,可以根据交易摘要中提取的兑换双方证通类型,进一步确定更符合对应要求的子网络进行验证。
S25:所述分区网络向全网络节点同步所述区块链数据。
在分区网络生成区块链数据后,为了提高分布式存储的范围,可以在全网络范围内对区块链数据进行同步,提高区块链数据的抗抵赖效果。
在本申请的部分实施例中,如图6所示,如果所述交易类型为大宗交易,所述方法还包括以下步骤:
S26:公链网络中的维护节点向全网络广播所述待验证交易;
S27:全网络中的验证节点对所述待验证交易实施验证和记账,以根据所述待验证交易生成区块链数据。
基于上述分区交易方法,本申请提供一种基于区块链的分区交易系统,如图8所示,包括由多个节点组成的公链,以及连接所述公链的接入链;所述公链中的部分节点被配置为维护节点,所述公链中的部分节点被配置为验证节点;多个验证节点组成验证网络,验证网络被划分形成多个分区网络;所述公链和接入链中的任一节点可作为交易发起节点;
所述交易发起节点被配置为:广播待验证交易;
所述公链网络中的维护节点被配置为:根据所述待验证交易,判断交易类型;所述交易类型包括大宗交易和小额交易;如果所述交易类型为小额交易,向所述待验证交易对应的分区网络广播所述待验证交易;
所述分区网络中的验证节点被配置为:对所述待验证交易实施验证和记账,以根据所述待验证交易生成区块链数据;以及向全网络节点同步所述区块链数据。
由以上技术方案可知,本申请提供一种基于区块链的分区交易方法及系统,所述方法先由交易发起节点广播待验证交易;再通过公链网络中的维护节点根据所述待验证交易,判断交易类型;所述交易类型包括大宗交易和小额交易;如果所述交易类型为小额交易,向所述待验证交易对应的分区网络广播所述待验证交易;再通过分区网络中的验证节点对所述待验证交易实施验证和记账,以根据所述待验证交易生成区块链数据;最后由所述分区网络向全网络节点同步所述区块链数据。所述方法可以根据不同的交易类型,分别进行全网络验证和分区网络验证两种方式,从而在处理特定类型交易时,可以通过分区网络进行快速验证,并在验证完成后全网络同步区块链数据,提高交易效率。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。