一种部署有中心化系统的区块链网络
本申请要求在2019年2月26日提交中国专利局、申请号为201910141900.0、发明名称为“基于公链的子链搭建及应用部署方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及区块链技术领域,尤其涉及一种部署有中心化系统的区块链网络。
背景技术
区块链技术的主要任务,是按照去中心化的系统要求,基于公众共识的方式,创建一个相对客观的抗抵赖数字环境。基于区块链技术,可以保证网络信息的真实性,例如,区块链网络中发生一笔交易,网络中的节点会根据交易信息生成记载交易内容的区块数据,并将区块数据进行全网广播,网络中的其他节点同时存储区块数据,形成不可更改的区块链。
出于对交易的监管、控制等目的,当前交易系统中仍然需要部署中心化系统。例如,针对货币兑换交易或跨境交易,需要部署作为金融服务商的银行节点,银行节点可以对每一个交易进行监管,以避免非法交易,维持金融系统的稳定性。基于此,从很长的一段时间来看,中心化系统不会,也不应该马上被去中心化的区块链系统所替代。因此,通常的做法是,通过约定的机制,在不颠覆现有中心化系统的基础上,将中心化系统部署到区块链网络中。
为了将中心化系统部署在区块链系统中,可以根据区块链系统建立一个中心监测管理平台。在管理平台中,可以对区块链系统交易产生的区块数据进行验证,也达到监控的目的。这种方式本质上是建立一个全网规模的管理平台,其部署工作量巨大,并且需要在区块链系统建设初期即确定好管理平台的管理机制和节点权限,严重影响区块链系统的建设速度。
还可以将中心化系统作为区块链系统中的一个节点,以减少网络部署的工作量,加快区块链系统的建设速度。即,中心化系统可以和区块链任何节点一样,进行交易验证以及保存区块数据。然而,根据区块链技术的交易机制,中心化系统节点需要在交易发起后,根据接收到的广播区块数据对交易进行验证,使得中心化系统仅仅是交易的验证者。最终交易是否能够完成,中心化系统不能起到控制作用,因此,这种方式无法实现中心化系统对交易的有效监管,具有局限性。
发明内容
本申请提供了一种部署有中心化系统的区块链网络,以解决传统区块链网络部署工作量大,以及无法对交易进行有效监管的问题。
本申请提供一种部署有中心化系统的区块链网络,包括:公链、中心化系统以及上线到公链网络的子链,所述子链由公链网络中的部分节点,和至少一个中心化系统节点组成;所述子链节点配置有所属公链网络和子链网络的智能合约,以完成公链和子链对应的区块链交易;
所述中心化系统节点中配置有中心化服务操作单元;以在所述中心化系统节点同步完成子链交易的区块数据后,通过所述中心化服务操作单元检查对应交易是否需要触发外部交易;
所述子链被进一步配置为:如果需要触发外部交易,向中心化系统发送外部交易请求,以及接收所述中心化系统返回的请求响应;以及根据所述请求响应执行智能合约并向所述中心化系统反馈合约执行结果。
可选的,所述公链网络中的部分节点被配置为测试网络,公链网络中的节点可开发子链合约;公链网络中的部分节点和至少一个中心化系统节点通过执行子链合约,组成子链网络;
所述子链被配置为:通过投票合约,发起投票交易,以及在公链网络中广播所述投票交易;
所述公链被配置为:通过测试网络对子链网络实施兼容性测试;根据投票交易反馈投票结果,以及根据投票结果生成子链节点候选列表;如果反馈的投票结果满足预设投票要求,将所述子链节点候选列表中的节点与公链节点对接,完成上线。
可选的,如果所述子链网络有独立的证通机制,所述子链被进一步配置为:在完成上线前,向公链转账预设数量的子链证通和公链证通;
所述公链被进一步配置为:根据所述子链证通数量和当前公链网络中的全部公链证通数量,生成初始兑换比率;以及在公链网络节点和子链网络节点中存储所述初始兑换比率。
可选的,所述智能合约包括公链合约和子链合约;所述子链网络具有独立的子链合约;
所述公链被配置为:根据所述公链合约定义子链合约;向作为子链的公链节点配置所述子链合约;以及向作为子链节点的中心化系统节点同步所述子链合约和公链合约。
可选的,所述中心化系统内置管理程序,用于生成服务组件;作为子链的中心化系统节点安装有所述服务组件;所述服务组件包括对接所述中心化系统的服务端口;
所述中心化系统通过所述服务端口与子链网络的智能合约对接,以完成中心化服务配置。
可选的,所述子链被进一步配置为:
提取当前交易的区块数据摘要;
根据所述摘要查询交易发起节点地址和交易目标节点地址;
判断所述交易发起节点和所述交易目标节点是否位于中心化系统内;
如果所述交易发起节点和所述交易目标节点均位于所述中心化系统内,确定对应交易不需要触发外部交易;
如果所述交易发起节点或所述交易目标节点不位于所述中心化系统内,确定对应交易需要触发外部交易。
可选的,所述子链被进一步配置为:
如果所述交易发起节点和所述交易目标节点均不位于所述中心化系统内;或者,对应交易不需要触发外部交易,所述中心化系统存储对应的区块数据。
可选的,所述子链被进一步配置为:
获取当前中心化系统的节点地址列表;
根据所述节点地址列表,匹配所述交易发起节点地址和交易目标节点地址;
如果在所述节点地址列表中匹配到所述交易发起节点地址和/或交易目标节点地址,确定所述交易发起节点地址和/或交易目标节点位于所述中心化系统内。
可选的,作为子链的中心化系统节点由所述中心化系统节点内部推荐产生;或者,由子链网络节点经投票选举产生;或者,由所述中心化系统节点内部推荐,并经过所述子链网络节点投票确认产生。
可选的,作为子链的所述中心化系统节点被配置为在接收到请求响应后,根据所述请求响应同步检查对应交易和子链合约;转化所述请求响应,触发所述子链合约执行对应交易;根据子链合约的执行结果,更改区块数据中的交易状态,以及向所述中心化系统反馈所述执行结果。
由以上技术方案可知,本申请提供一种部署有中心化系统的区块链网络,包括:公链、中心化系统以及子链。其中,子链由公链网络中的部分节点,和至少一个中心化系统节点组成;实际应用中,可通过在子链节点配置所属公链网络和子链网络的智能合约,完成公链和子链对应的区块链交易;中心化系统节点中配置有中心化服务操作单元;在中心化系统节点同步完成子链交易的区块数据后,检查对应交易是否需要触发外部交易。如果需要触发外部交易,向中心化系统发送外部交易请求,以及接收中心化系统返回的请求响应;以及根据请求响应执行智能合约并向中心化系统反馈合约执行结果。
本申请通过中心化系统节点和部分公链节点构建子链的方式,可以将中心化系统快速部署到区块链网络,并按照区块链网络的交易形式完成对应的交易。所述区块链网络可在保证中心化系统对交易监管能力的基础上,通过执行智能合约的方式完成区块数据的校核和存储,解决中心化系统在区块链网络中无法对交易进行有效监管的问题。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种部署有中心化系统的区块链网络结构示意图;
图2为本申请一种部署有中心化系统的区块链网络交易示意图;
图3为本申请确地当前交易是否需要触发外部交易的流程示意图;
图4为本申请判断交易发起节点和目标节点是否位于中心化系统内的流程示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
在本申请提供的技术方案中,区块链网络是指具有去中心化应用架构的点对点(P2P)网络,所述区块链网络能够进行分布式存储、公共共识、数字加密、交易记账以及验证。即涵盖了分布式技术、密码学、P2P网络架构以及各种可能被应用的共识算法的交易平台。区块链或区块链数据是指在区块链网络中发生交易时,根据交易信息生成的记账信息,即多笔具体的交易组成一个区块,多个区块形成一条有序区块链。
区块链网络中,包括相互建立点对点网络连接的节点,每一个节点都配置有相应的共识机制,如智能合约,并且具有足够的运算能力,以进行交易验证和记账程序。节点上还具有符合某种统一标准的接口规范,以实现通过接口规范接入更多的节点或者其他类型的区块链网络。
本申请中,公链、中心化系统以及子链都是由多个节点组成的网络,即公链网络、中心化系统网络以及子链网络,在本申请提供的实施例中,除另有说明外,所述公链、中心化系统以及子链皆指代宏观概念上的网络,而并非对应网络中的单一节点。本申请中公链可作为区块链网络的底层协议,为区块链搭建分布式数据存储空间、网络传输环境、交易和计算通道,利用加密算法保证网络安全,通过共识机制和激励机制实现节点网络的正常运行。公链提供的API接口可供开发者调用,以开发符合公链生态的应用。
所述子链是一个相对于公链的网络,一般由公链中的部分节点和/或新增的节点组合而成。应当理解的是,子链相对于公链仅仅为在功能上的一种扩展,并非公链的下属网络,即两者并不存在父子关系。子链可以依托于公链的软件架构,复用公链的数据网络,共享数据存储。
所述中心化系统具有广义性,指代处于某种功能性目的而搭建的网络,例如当前网络销售系统、银行监管服务系统、公共职能部门建立的系统等。在中心化系统中,各节点所具有权限和功能不完全相同,一般拥有多层管理架构,节点拥有的权限越高,越能够监管网络中的交易。
参见图1,为本申请一种部署有中心化系统的区块链网络结构示意图。由图1、图2可知,本申请提供一种部署有中心化系统的区块链网络,包括:公链、中心化系统以及上线到公链网络的子链。其中,子链上线到公链网络是指子链已接入公链网络,并且已通过公链网络的兼容性测试,能够执行智能合约以在子链之内,以及在子链和公链之间进行基于区块链形式的交易。
为了实现将中心化系统快速部署到区块链网络中,所述子链由公链网络中的部分节点,和至少一个中心化系统节点组成。实际应用中,公链中的部分节点可以被主观选取或者被随机配置,确定为子链节点。显然子链节点中自然包括了公链节点的功能,并且能够按照公链的交易标准完成交易的发起、转账、验证、存储等过程。为了达到特定的功能目的,作为子链的公链节点还可以通过执行子链合约,定义新的交易形式。即所述子链节点配置有所属公链网络和子链网络的智能合约,以完成公链和子链对应的区块链交易。
中心化系统中的至少一个节点作为子链节点参与区块链交易,需要对作为子链的中心化系统节点进行软件配置,应用测试和硬件改造,以便中心化系统节点能够按照区块链的标准完成交易。由于作为子链节点后,中心化系统的节点既在子链网络这个区块链网络中,又在中心化系统这个传统网络中,因此作为子链的中心化系统需要进行较为深度的功能配置。因此,为了尽可能减小对节点的改造工作量,本申请中可以尽量少的将中心化系统的节点作为子链节点。例如,实际应用中可以仅将一个中心化系统节点作为子链节点进行配置。
由于区块链交易不同于传统交易,需要对交易产生的数据进行不断的加密、广播、解密、验证以及存储,因此作为子链的节点需要具有相应的硬件配置,以能够在短时间内完成区块数据的处理。而公链网络本身即是一种区块链网络,相应其节点硬件配置原本即满足了区块链的硬件配置要求。但中心化系统中的节点则未必能够满足区块链要求,因此,在确定中心化系统作为子链的节点前,还需要对节点硬件配置进行验证或者测试,以避免硬件因素影响后续交易操作。
进一步地,为了将中心化系统中的节点确定为子链节点,在本申请的部分实施例中,作为子链的中心化系统节点由所述中心化系统节点内部推荐产生;或者,由子链网络节点经投票选举产生;或者,由所述中心化系统节点内部推荐,并经过所述子链网络节点投票确认产生。需要说明的是,在本实施例中,能够参与中心化系统节点选定的子链网络节点可以是已经建立好的子链网络,也可以是确定作为子链的公链网络节点。作为子链的中心化系统节点产生方式,可以根据实际网络配置情况和应用环境预设规则,进行调整,本申请优选由所述中心化系统节点内部推荐,并经过所述子链网络节点投票确认产生。
另外,由于中心化系统中的节点具有多种权限,原则上任何满足硬件需求的节点都可以作为子链节点,只是在作为子链的中心化系统节点没有响应交易权限时,将对应的数据转发给权限较高的节点,也能够完成相应权限下的操作。但是由于在监管等操作下,节点本身满足权限,可以更快速的完成监管,因此可以优先选择中心化系统中具有权限较高的节点作为子链节点。
作为子链的所述中心化系统节点中配置有中心化服务操作单元。中心化服务操作单元是根据中心化服务应用程序而拓展出的适用于区块链交易的程序,以在所述中心化系统节点同步完成子链交易的区块数据后,通过所述中心化服务操作单元检查对应交易是否需要触发外部交易。
实际应用中,中心化服务操作单元可以完成多种中心化服务操作,例如对交易进行监管、验证、过滤、强制停止等操作,还可以根据实际交易确定交易中的参考标准,例如兑换比率、交易额等。在本申请中,子链中一个交易的发生,需要交易发起方在子链网络中广播交易对应的数据,以形成区块数据并在各个节点中进行同步,以及分布式存储。通过中心化服务可以在所述中心化系统节点同步完成子链交易的区块数据后,对交易的数据进行检查,确定当前交易是否需要触发外部交易。
本申请中,是否需要触发外部交易是指当前交易是否需要有子链网络以外的节点参与,或者当前交易是否由中心化系统中的节点和中心化系统以外的节点来参与完成。如果当前交易需要子链网络以外的节点参与,则确定当前交易需要触发外部交易。
具体的,如图3所示,可以通过以下步骤确地当前交易是否需要触发外部交易:
S101:提取当前交易的区块数据摘要;
S102:根据所述摘要查询交易发起节点地址和交易目标节点地址;
S103:判断所述交易发起节点和所述交易目标节点是否位于中心化系统内;
S104:如果所述交易发起节点和所述交易目标节点均位于所述中心化系统内,确定对应交易不需要触发外部交易;
S105:如果所述交易发起节点或所述交易目标节点不位于所述中心化系统内,确定对应交易需要触发外部交易。
实际应用中,区块数据摘要相对于区块数据本身的数据量要小的多,区块数据的摘要包含了能够表征当前交易的基本信息,例如:交易发起方、交易目标方、交易内容、交易时间、交易金额等,通过读取区块数据摘要中的这些信息,可以直接确定交易的发起方和目标方。根据实际的摘要表现形式不同,交易发起方和交易目标方的具体表现形式也不同,例如可以是对应节点的地址信息,或者交易节点的所属网络描述信息。
以节点地址信息为例,在获取交易发起方和目标方的信息,即交易发起节点地址和交易目标节点地址后,可以通过分析该地址,确定该地址是否在当前中心化系统内。具体判断形式可以为地址区间判断或者地址表匹配等方式。如果交易发起节点和交易目标节点均位于中心化系统内,确定对应交易不需要触发外部交易;如果交易发起节点或交易目标节点不位于中心化系统内,确定对应交易需要触发外部交易。
进一步地,如图4所示,可以通过以下步骤判断所述交易发起节点和所述交易目标节点是否位于中心化系统内:
S1031:获取当前中心化系统的节点地址列表;
S1032:根据所述节点地址列表,匹配所述交易发起节点地址和交易目标节点地址;
S1033:如果在所述节点地址列表中匹配到所述交易发起节点地址和/或交易目标节点地址,确定所述交易发起节点地址和/或交易目标节点位于所述中心化系统内。
本实施例中,可以在中心化系统节点或者所建立的子链网络中存储有节点地址列表,节点地址列表中存储有所属网络中所有节点的地址信息,例如中心化系统中共200个节点,每个节点的地址信息都统计在节点地址列表中。实际应用中,节点地址列表可以在每个节点中都有存储,也可以仅在作为子链的中心化系统节点中有存储。在中心化系统节点同步完成区块数据后,可以在节点地址列表中,匹配当前交易发起节点和交易目标节点的地址是否在节点地址列表中,以分别确定当前交易发起节点和交易目标节点是否在节点地址列表中,以致确定当前交易的发起节点或目标节点是否位于中心化系统中。
需要说明的是,在本申请提供的技术方案中,如果交易发起节点和交易目标节点均不在当前中心化系统中,则可以确定当前中心化系统中的节点未参与实际交易,因此当前中心化系统并不会对交易进行监管。即如果所述交易发起节点和所述交易目标节点均不位于所述中心化系统内;或者,对应交易不需要触发外部交易,所述中心化系统存储对应的区块数据。对于这种情况,作为子链的中心化系统节点可以仅对区块数据进行同步和存储,即充当正常区块链交易的节点角色即可。
可见在本申请中,作为子链的所述中心化系统节点被配置为在接收到请求响应后,根据所述请求响应同步检查对应交易和子链合约;转化所述请求响应,触发所述子链合约执行对应交易;根据子链合约的执行结果,更改区块数据中的交易状态,以及向所述中心化系统反馈所述执行结果。
本申请提供的技术方案中,所述子链被进一步配置为:如果需要触发外部交易,向中心化系统发送外部交易请求,以及接收所述中心化系统返回的请求响应;根据所述请求响应执行智能合约并向所述中心化系统反馈合约执行结果。实际应用中,如果当前交易需要触发外部交易,子链中的节点可以通过向中心化系统节点或整个中心化系统广播请求响应,请求响应中可以包含针对当前交易的对应处理方式或者交易结果。
例如,当前交易结果为证通兑换,交易发起节点为子链中的任一个节点,而交易目标节点为中心化系统中的节点,交易证通数量为10token。当发生交易时,作为交易发起节点的子链节点以及子链中的其他节点,可按照区块链交易形式生成区块数据,并进行广播,作为子链节点的中心化系统节点在接收到区块数据后,可以对交易发起节点地址和交易目标节点地址进行判断,确定交易发起节点不位于中心化系统中,需要触发外部交易,此时作为子链的中心化系统节点可以向中心化系统发送外部交易请求。
中心化系统再针对外部交易请求进行必要的有效性验证,如兑换比率是否合理、交易双方是否合法、应缴纳的运行费用金额等,最后返回请求响应。请求响应可以包括允许交易、阻止交易以及调整交易等,返回请求响应后,子链中的节点(包括作为子链节点的中心化系统节点和其他节点)根据请求响应执行智能合约,完成交易。例如,中心化系统返回的请求响应为允许交易,交易目标节点则通过执行智能合约,向交易发起节点交易10token。而如果中心化系统返回的请求响应为阻止交易,则交易双方的交易被阻止,此时子链中的节点可以在区块数据中标记交易失败,但区块数据仍进行分布式存储,以形成完整的区块链数据,完成记账流程。
可见,在本申请提供的技术方案中,通过建立子链的方式,可以将中心化系统上线到区块链网络。上线到区块链网络后,中心化系统仍然能够保持原本的监管等中心化服务功能,同时,通过子链的区块链网络,还可以将发生的交易进行区块链交易转化,从而使交易即得到中心化系统的监管,又具有区块链交易的抗抵赖效果,提高交易的安全性,并且减少功能部署的任务量。
由于在将公链的部分节点和中心化系统的部分节点作为子链后,需要子链满足相应的功能才能够上线到公链网络,因此在本申请的部分实施例中,所述公链网络中的部分节点被配置为测试网络,公链网络中的节点可开发子链合约;公链网络中的部分节点和至少一个中心化系统节点通过执行子链合约,组成子链网络;
相应的,所述子链被配置为:通过投票合约,发起投票交易,以及在公链网络中广播所述投票交易;所述公链被配置为:通过测试网络对子链网络实施兼容性测试;根据投票交易反馈投票结果,以及根据投票结果生成子链节点候选列表;如果反馈的投票结果满足预设投票要求,将所述子链节点候选列表中的节点与公链节点对接,完成上线。
进一步地,所述智能合约包括公链合约和子链合约;所述子链网络具有独立的子链合约;所述公链被配置为:根据所述公链合约定义子链合约;向作为子链的公链节点配置所述子链合约;以及向作为子链节点的中心化系统节点同步所述子链合约和公链合约。
实际应用中,子链合约通过公链网络中的节点进行创建,并存储在每一个公链节点中。确定作为子链的公链节点后,节点执行子链合约而组成子链网络。组成子链网络后,公链中的测试网络将对子链网络进行兼容性测试,以确定其符合区块链网络交易的要求。实际应用中,测试网络对子链进行的测试还可以包括子链合约有效性,可靠性,安全性测试;子链继承公链能力测试(区块,交易,合约,账号的查询,创建,验证等功能);子链与公链双向交易能力测试(公链向子链交易,子链向公链交易);子链安全性沙盒测试,对于公链没有影响;如果子链对接第三方系统或传统中心化网络,则需要进行并发和重复测试等。
完成并通过兼容性测试的子链还可以通过执行投票合约,向整个公链网络发起一个投票合约,以通过公链中的节点投票决定是否同意子链上线。即公链中的节点可以根据投票交易反馈投票结果,以及根据投票结果生成子链节点候选列表;如果反馈的投票结果满足预设投票要求,将所述子链节点候选列表中的节点与公链节点对接,完成上线。
进一步地,如果所述子链网络有独立的证通机制,所述子链被进一步配置为:在完成上线前,向公链转账预设数量的子链证通和公链证通;
所述公链被进一步配置为:根据所述子链证通数量和当前公链网络中的全部公链证通数量,生成初始兑换比率;以及在公链网络节点和子链网络节点中存储所述初始兑换比率。实际应用中,如果子链具有不同公链的独立证通机制,为实现后续跨链交易,还需要向公链转账预设数量的子链证通和公链证通,以使公链能够根据所述子链证通数量和当前公链网络中的全部公链证通数量,生成初始兑换比率。在后续网络运维过程中,这个兑换比率会根据公链和子链对应的证通交易数量和余量进行不断更新,以保证各证通的价值。
实际应用中,为了使中心化系统在子链中依然能够保持中心化服务能力,所述中心化系统内置管理程序,用于生成服务组件;作为子链的中心化系统节点安装有所述服务组件;所述服务组件包括对接所述中心化系统的服务端口;所述中心化系统通过所述服务端口与子链网络的智能合约对接,以完成中心化服务配置。
由以上技术方案可知,本申请提供一种部署有中心化系统的区块链网络,包括:公链、中心化系统以及子链。其中,子链由公链网络中的部分节点,和至少一个中心化系统节点组成;实际应用中,可通过在子链节点配置所属公链网络和子链网络的智能合约,完成公链和子链对应的区块链交易;中心化系统节点中配置有中心化服务操作单元;在中心化系统节点同步完成子链交易的区块数据后,检查对应交易是否需要触发外部交易。如果需要触发外部交易,向中心化系统发送外部交易请求,以及接收中心化系统返回的请求响应;以及根据请求响应执行智能合约并向中心化系统反馈合约执行结果。
本申请通过中心化系统节点和部分公链节点构建子链的方式,可以将中心化系统快速部署到区块链网络,并按照区块链网络的交易形式完成对应的交易。所述区块链网络可在保证中心化系统对交易监管能力的基础上,通过执行智能合约的方式完成区块数据的校核和存储,解决中心化系统在区块链网络中无法对交易进行有效监管的问题。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。