一种基于分区共识的交易方法及系统与流程

文档序号:18064193发布日期:2019-07-03 03:17阅读:204来源:国知局
一种基于分区共识的交易方法及系统与流程

本发明涉及区块链技术领域,更具体的,涉及一种基于分区共识的交易方法及系统。



背景技术:

传统金融交易系统,如银行系统,为中心化架构,如果出现单点故障,该机构负责的用户就无法正常进行交易。

为解决上述问题,可以采用分布式账本技术,即区块链技术。现有的基于“账户余额”模式的分布式账本技术,大多采用mpt(默克尔-帕特里夏树)结构维护全量用户的账户状态,如余额信息。在打包区块时将树的根哈希值记录在区块头中,用来校验各节点维护数据的一致性。但是由于每个节点均需要维护全量用户信息构成的mpt,每笔交易均需经过所有节点共识之后才能确认,因此对各节点造成的性能压力较大,交易处理效率低,不能满足如银行等高频交易场景的需求。



技术实现要素:

有鉴于此,本发明提供了一种基于分区共识的交易方法及系统,在保证单个节点的服务故障或退出不影响全网用户的正常交易的基础上,基于分区共识机制提升分布式账本系统的交易处理效率。

为了实现上述发明目的,本发明提供的具体技术方案如下:

一种基于分区共识的交易方法,应用于基于分区共识的交易系统,所述交易系统包括多个普通节点,每个普通节点对应多个用户,根据用户的交易账号将多个普通节点划分到的不同的共识分区,所述方法包括:

当交易双方第一用户和第二用户处于同一共识分区时,共识分区接收所述第一用户发送的交易请求,共识分区内的各个节点对交易进行验证、共识后记录到区块链中;

共识分区向所述第一用户和所述第二用户发送交易成功信息。

可选的,所述方法还包括:

当所述第一用户处于第一共识分区,且所述第二用户处于第二共识分区时,所述第一共识分区接收所述第一用户发送的交易请求时,所述第一共识分区内的各个节点对交易进行验证、共识后记录到区块链中;

所述第一共识分区向所述第一用户反馈交易凭证;

所述第一用户向所述第二用户发送所述交易凭证;

所述第二用户根据所述交易凭证向所述第二共识分区发送交易请求;

所述第二共识分区对交易进行验证、共识后记录到区块链中,并向所述第二用户发送交易成功信息;

所述第二用户通知所述第一用户交易完成。

可选的,所述交易系统还包括总控节点,所述方法还包括:

各个共识分区定期将跨区交易流水信息上传到所述总控节点;

所述总控节点对跨区交易流水信息中的冲突交易进行检测,生成每个共识分区的冲突交易列表,并将所述冲突交易列表发送到相应的共识分区;

各个共识分区根据接收到的所述冲突交易列表对本地账本进行调整,并向冲突交易涉及的用户发送交易调整信息。

可选的,所述交易系统还包括总控节点,所述方法还包括:

当所述第一用户处于第一共识分区,且所述第二用户处于第二共识分区时,所述第一共识分区接收所述第一用户发送的交易请求时,所述第一共识分区内的各个节点对交易进行验证、共识后记录到区块链中;

所述第一共识分区向所述总控节点发送携带有所述第二共识分区标识的交易请求;

所述第二共识分区对交易进行验证、共识后记录到区块链中,并向所述总控节点和所述第二用户发送交易成功信息;

所述总控节点向所述第一共识分区转发交易成功信息,使所述第一共识分区向所述第一用户发送交易成功信息。

可选的,所述交易系统的每个共识分区都采用默克尔-帕特里夏树mpt结构维护各自用户的账户余额数据。

一种基于分区共识的交易系统,所述交易系统包括多个普通节点,每个普通节点对应多个用户,根据用户的交易账号将多个普通节点划分到的不同的共识分区;

当交易双方第一用户和第二用户处于同一共识分区时,共识分区用于接收所述第一用户发送的交易请求,共识分区内的各个节点对交易进行验证、共识后记录到区块链中,并向所述第一用户和所述第二用户发送交易成功信息。

可选的,当所述第一用户处于第一共识分区,且所述第二用户处于第二共识分区时,所述第一共识分区用于接收所述第一用户发送的交易请求,并当所述第一共识分区内的各个节点对交易进行验证、共识后记录到区块链中时,所述第一共识分区还用于向所述第一用户反馈交易凭证;

所述第一用户向所述第二用户发送所述交易凭证,且所述第二用户根据所述交易凭证向所述第二共识分区发送交易请求时,所述第二共识分区用于对交易进行验证、共识后记录到区块链中,并向所述第二用户发送交易成功信息,使所述第二用户通知所述第一用户交易完成。

可选的,所述交易系统还包括总控节点;

各个共识分区还用于定期将跨区交易流水信息上传到所述总控节点;

所述总控节点用于对跨区交易流水信息中的冲突交易进行检测,生成每个共识分区的冲突交易列表,并将所述冲突交易列表发送到相应的共识分区;

各个共识分区用于根据接收到的所述冲突交易列表对本地账本进行调整,并向冲突交易涉及的用户发送交易调整信息。

可选的,所述交易系统还包括总控节点;

当所述第一用户处于第一共识分区,且所述第二用户处于第二共识分区时,所述第一共识分区用于接收所述第一用户发送的交易请求,并当所述第一共识分区内的各个节点对交易进行验证、共识后记录到区块链中时,所述第一共识分区还用于向所述总控节点发送携带有所述第二共识分区标识的交易请求;

所述第二共识分区用于对交易进行验证、共识后记录到区块链中,并向所述总控节点和所述第二用户发送交易成功信息;

所述总控节点用于向所述第一共识分区转发交易成功信息,使所述第一共识分区向所述第一用户发送交易成功信息。

可选的,所述交易系统的每个共识分区都采用默克尔-帕特里夏树mpt结构维护各自用户的账户余额数据。

相对于现有技术,本发明的有益效果如下:

本发明公开的一种基于分区共识的交易方法及系统,交易系统包括多个普通节点,每个普通节点对应多个用户,根据用户的交易账号将多个普通节点划分到不同的共识分区,当交易双方处于同一个共识分区内时,通过共识分区内的各个节点对交易进行验证、共识后记录到区块链中,不需要其他共识分区参与交易,在保证单个节点的服务故障或退出不影响全网用户的正常交易的基础上,基于分区共识机制提升了分布式账本系统的交易处理效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的默克尔-帕特里夏树mpt结构示意图;

图2为本发明实施例公开的一种基于分区共识的交易方法的流程示意图;

图3为本发明实施例公开的区内交易的流程示意图;

图4为本发明实施例公开的分阶段方案中交易受理阶段的流程示意图;

图5为本发明实施例公开的分阶段方案中对账阶段的流程示意图;

图6为本发明实施例公开的同步方案中跨区交易的流程示意图;

图7为本发明实施例公开的一种基于分区共识的交易系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本实施例公开了一种基于分区共识的交易方法,应用于基于分区共识的交易系统,该交易系统包括多个普通节点,普通节点可以为银行机构或第三方支付机构,每个普通节点对应多个用户,根据用户的交易账号将多个普通节点划分到不同的共识分区。共识分区负责维护分区内每个用户的账户余额,并处理其转账交易请求。共识分区内的普通节点组成联盟链,参与分区内用户的交易共识。

具体的,基于分区共识的交易系统内各个共识分区采用mpt(merklepatriciatree,默克尔-帕特里夏树)结构维护各自用户的账户余额数据,如图1所示,默克尔-帕特里夏树中以键值对的方式维护用户余额数据,基于用户的交易账号从根节点开始索引到一个节点,该节点中保存了用户的余额数据。

当交易双方第一用户和第二用户处于同一共识分区,即区内交易时,本实施例公开的基于分区共识的交易方法具体包括以下步骤:

s101:第一用户向共识分区发送交易请求;

其中,交易内容可以为第一用户向第二用户转账等。

s102:共识分区接收第一用户发送的交易请求,共识分区内的各个节点对交易进行验证、共识后记录到区块链中;

s103:共识分区向第一用户和第二用户发送交易成功信息。

为了进一步对上述区内交易的流程进行说明,以下通过一个场景实施例进行说明。

请参阅图3,交易双方,用户a和用户b都处于分区i内,以用户a向用户b转账为例,共包含以下三个步骤:

1.用户a向分区i提交交易请求,交易内容为向用户b转账。

2.分区i接收交易请求,分区i各节点对交易进行验证、共识后记到区块链上。

3.分区i向用户a和用户b发送交易成功通知。

可见,本实施例公开的基于分区共识的交易方法,共识分区内的每个普通节点维护共识分区内的全量账本,这种分布式账本技术解决了单点服务故障影响整体服务的问题。且当交易双方处于同一个共识分区内时,通过共识分区内的各个节点对交易进行验证、共识后记录到区块链中,不需要其他共识分区参与交易,提升了分布式账本系统的交易处理效率。

当交易双方处于不同的共识分区,即跨区交易时,交易系统还包括总控节点,总控节点可以为一个权威机构,如银行总行等。对于跨区交易,按照总控节点是否同步参与交易流程,分为分阶段方案和同步方案。

其中,分阶段方案包括交易受理阶段和对账阶段,在交易受理阶段,交易双方为第一用户和第二用户,其中,第一用户处于第一共识分区,第二用户处于第二共识分区,第一共识分区接收第一用户发送的交易请求时,第一共识分区内的各个节点对交易进行验证、共识后记录到区块链中,第一共识分区向第一用户反馈交易凭证,第一用户向第二用户发送交易凭证,第二用户根据交易凭证向第二共识分区发送交易请求,第二共识分区对交易进行验证、共识后记录到区块链中,并向第二用户发送交易成功信息,第二用户通知第一用户交易完成。在对账阶段,各个共识分区定期将跨区交易流水信息上传到所述总控节点,总控节点对跨区交易流水信息中的冲突交易进行检测,生成每个共识分区的冲突交易列表,并将冲突交易列表发送到相应的共识分区,各个共识分区根据接收到的冲突交易列表对本地账本进行调整,并向冲突交易涉及的用户发送交易调整信息。

以分区i的用户a向分区ii的用户b转账为例,请参阅图4,第一阶段为交易受理阶段,共包含以下步骤:

1.用户a向分区i提交交易请求,交易内容为向用户b转账。

2.分区i接收交易请求,各节点对交易进行验证、共识后记到区块链上。

3.分区i向用户a返回交易凭证,通知其交易成功。

4.用户a向用户b发送凭证。

5.用户b向分区ii提交交易请求,交易内容接收用户a的转账。

6.分区ii接收交易请求,各节点对交易进行验证、共识后记到区块链上。

7.分区ii向用户b发送交易成功通知。

8.用户b告知用户a已收到账。

请参阅图5,第二阶段为对账阶段,共包含以下步骤:

1.分区i和ii定期将跨区交易流水上传给总控节点。

2.总控节点汇总各分区的交易流水,调整冲突交易。

3.总控节点将冲突交易列表返回至各分区。

4.各分区根据列表调整本地账本。

5.分区i和分区ii分别向用户a、用户b发送交易调整通知。

在同步方案中,交易双方为第一用户和第二用户,其中,第一用户处于第一共识分区,第二用户处于第二共识分区,第一共识分区接收第一用户发送的交易请求时,第一共识分区内的各个节点对交易进行验证、共识后记录到区块链中,第一共识分区向总控节点发送携带有第二共识分区标识的交易请求,第二共识分区对交易进行验证、共识后记录到区块链中,并向总控节点和第二用户发送交易成功信息,总控节点向第一共识分区转发交易成功信息,使第一共识分区向第一用户发送交易成功信息。

以分区i的用户a向分区ii的用户b转账为例,请参阅图6,同步方案共包含以下步骤:

1.用户a向分区i提交交易请求,交易内容为向用户b转账。

2.分区i接收交易请求,各节点对交易进行验证、共识后记到区块链上。

3.分区i向总控节点发送交易请求(收据)。

4.总控节点向分区ii转发交易请求(收据)。

5.分区ii接收交易请求,各节点对交易进行验证、共识后记到区块链上。

6.分区ii向总控节点和用户b分别发送交易成功通知。

7.总控节点向分区i转发通知(消费收据)。

8.分区i接收通知,向用户a发送交易成功通知。

可见,在跨分区方案中通过对账或总控节点直接参与的方式维护了账本的一致性。另外,对于频繁跨区交易的热点账户,可适时进行调整,将该用户的历史交易数据从原分区拷贝至新分区,由新分区接管该用户的支付服务。

基于上述实施例公开的一种基于分区共识的交易方法,本实施例对应公开了一种基于分区共识的交易系统,请参阅图7,所述交易系统包括多个普通节点,每个普通节点对应多个用户,根据用户的交易账号将多个普通节点划分到的不同的共识分区;

当交易双方第一用户和第二用户处于同一共识分区时,共识分区用于接收所述第一用户发送的交易请求,共识分区内的各个节点对交易进行验证、共识后记录到区块链中,并向所述第一用户和所述第二用户发送交易成功信息。

可选的,当所述第一用户处于第一共识分区,且所述第二用户处于第二共识分区时,所述第一共识分区用于接收所述第一用户发送的交易请求,并当所述第一共识分区内的各个节点对交易进行验证、共识后记录到区块链中时,所述第一共识分区还用于向所述第一用户反馈交易凭证;

所述第一用户向所述第二用户发送所述交易凭证,且所述第二用户根据所述交易凭证向所述第二共识分区发送交易请求时,所述第二共识分区用于对交易进行验证、共识后记录到区块链中,并向所述第二用户发送交易成功信息,使所述第二用户通知所述第一用户交易完成。

可选的,所述交易系统还包括总控节点;

各个共识分区还用于定期将跨区交易流水信息上传到所述总控节点;

所述总控节点用于对跨区交易流水信息中的冲突交易进行检测,生成每个共识分区的冲突交易列表,并将所述冲突交易列表发送到相应的共识分区;

各个共识分区用于根据接收到的所述冲突交易列表对本地账本进行调整,并向冲突交易涉及的用户发送交易调整信息。

可选的,所述交易系统还包括总控节点;

当所述第一用户处于第一共识分区,且所述第二用户处于第二共识分区时,所述第一共识分区用于接收所述第一用户发送的交易请求,并当所述第一共识分区内的各个节点对交易进行验证、共识后记录到区块链中时,所述第一共识分区还用于向所述总控节点发送携带有所述第二共识分区标识的交易请求;

所述第二共识分区用于对交易进行验证、共识后记录到区块链中,并向所述总控节点和所述第二用户发送交易成功信息;

所述总控节点用于向所述第一共识分区转发交易成功信息,使所述第一共识分区向所述第一用户发送交易成功信息。

可选的,所述交易系统的每个共识分区都采用默克尔-帕特里夏树mpt结构维护各自用户的账户余额数据。

本实施例公开的一种基于分区共识的交易系统,交易系统包括多个普通节点,每个普通节点对应多个用户,根据用户的交易账号将多个普通节点划分到不同的共识分区,当交易双方处于同一个共识分区内时,通过共识分区内的各个节点对交易进行验证、共识后记录到区块链中,不需要其他共识分区参与交易,在保证单个节点的服务故障或退出不影响全网用户的正常交易的基础上,基于分区共识机制提升了分布式账本系统的交易处理效率。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1