当前位置: 首页 > 专利查询>中山大学专利>正文

一种区块链分片方法、区块链系统及跨分片交易处理方法技术方案

技术编号:32743999 阅读:14 留言:0更新日期:2022-03-20 08:51
本申请公开了一种区块链分片方法、区块链系统及跨分片交易处理方法,包括:根据当前分区周期新生成的交易区块,生成区块链的状态图;并将所述状态图划分成至少两个互不重叠的子状态图,得到状态图划分结果,所述子状态图之间的交易次数小于预设的第一阈值,各子状态图内部的总交易次数的方差小于预设的第二阈值;对所述状态图划分结果在区块链内进行共识,生成新的状态区块;根据所述新的状态区块,对各账户的状态进行重构。本申请可以使得子状态图之间的交易次数尽量少,达到了减少分片之间的交易次数的效果;同时,可以使得各子状态图的交易次数尽量接近,达到了各分片之间工作负载尽量均衡的效果。负载尽量均衡的效果。负载尽量均衡的效果。

【技术实现步骤摘要】
一种区块链分片方法、区块链系统及跨分片交易处理方法


[0001]本申请涉及区块链
,更具体地说,是涉及一种区块链分片方法、区块链系统及跨分片交易处理方法。

技术介绍

[0002]分片技术被认为是一种提高区块链扩展性的可行解决方案。分片技术将区块链节点划分为多个小型委员会,每个委员会只需要处理分片内交易和部分跨分片交易,因此可以提升吞吐量。
[0003]然而,各分片中交易的分布不一定是均衡的,这可能导致部分分片拥塞。当分片拥塞时,跨分片交易可能会被无期限地延迟。事实上,拥塞的分片是由活跃的用户频繁地在其相关的分片上发布大量交易造成的。
[0004]另外,提高分片数量虽然可以提升吞吐量,但当分片的数量变大时,几乎所有的交易都是跨分片的,这也将导致分片要处理的交易数量大幅增加。
[0005]因此,在区块链分片环境下,分片间的工作负载均衡和如何减少跨分片是有待解决的重要问题。

技术实现思路

[0006]有鉴于此,本申请提供了一种区块链分片方法、区块链系统及跨分片交易处理方法,以减少跨分片交易并均衡分片间的工作负载。
[0007]为实现上述目的,本申请第一方面提供了一种区块链分片方法,包括:
[0008]根据当前分区周期新生成的交易区块,生成区块链的状态图,所述状态图包括各账户/子账户在当前分区周期的交易关系,所述交易关系包括交易账户 /子账户之间的交易次数;
[0009]当新生成的交易区块达到预设数目后,将所述状态图划分成至少两个互不重叠的子状态图,得到状态图划分结果,所述子状态图之间的交易次数小于预设的第一阈值,各子状态图内部的总交易次数的方差小于预设的第二阈值;
[0010]对所述状态图划分结果在区块链内进行共识,生成新的状态区块;
[0011]根据所述新的状态区块,对各账户的状态进行重构。
[0012]优选地,所述根据当前分区周期新生成的交易区块,生成区块链的状态图的过程,包括:
[0013]根据当前分区周期新生成的交易区块,确定每个账户在当前分区周期的总交易次数以及与其他账户的交易次数;
[0014]以账户作为顶点,通过在存在交易的账户之间设置边,来构造所述状态图;
[0015]其中,两个顶点之间的边的权重设置为所述两个顶点所属的账户之间在当前分区周期的交易次数;顶点的权重设置为所述顶点所属的账户在当前分区周期的总交易次数。
[0016]优选地,将所述状态图划分成至少两个互不重叠的子状态图的过程,包括:
[0017]根据所述状态图中各顶点的权重以及各边的权重,通过Metis算法将所述状态图划分成至少两个互不重叠的子状态图。
[0018]优选地,根据所述新的状态区块,对各账户的状态进行重构的过程,包括:
[0019]根据所述新的状态区块,获取各账户所属的分片;
[0020]基于各账户所属的分片,通过Elastico算法对各账户的状态进行重构
[0021]本申请第二方面提供了一种区块链系统,包括:
[0022]分区分片,用于根据上述的区块链分片方法对区块链进行分片;
[0023]区块生成分片,用于生成分片内的交易区块。
[0024]本申请第三方面提供了一种跨分片交易处理方法,包括:
[0025]源账户根据目标账户及当前的状态区块,获取中继账户的信息,其中,中继账户包括至少两个子账户,所述子账户至少存在于源账户所在的源分片以及目标账户所在的目标分片;
[0026]源账户以预设的第一锁定时间向目标账户及中继账户发起原始交易;
[0027]当接收到所述原始交易后,中继账户根据源分片当前的第一区块高度,向源账户发起第一跨分片交易;
[0028]当第一跨分片交易被验证通过并且得到确认后,中继账户向目标账户发起第二跨分片交易,其中,第一跨分片交易中的交易资产附加有预设的第二锁定时间;
[0029]当第二跨分片交易被验证通过后,目标分片判断源分片的当前的第二区块高度是否在第一区间内,所述第一区间由第一区块高度与第一锁定时间确定;
[0030]若是,对第二跨分片交易进行确认;
[0031]若否,目标分片向源分片发送失败证明;当所述失败证明被验证通过后,由源分片对所述失败证明确认到源分片的新的区块中,第一跨分片交易中的交易资产被退回到源账户中。
[0032]优选地,所述源账户根据目标账户及当前的状态区块,获取中继账户的信息的过程,包括:
[0033]所述源账户根据当前的状态区块,获取源账户所在的源分片的分片状态树,以及目标账户所在的目标分片的分片状态树;
[0034]根据源分片的分片状态树及目标分片的分片状态树,获取中继账户的信息,所述中继账户的信息包括:中继账户的地址及随机值nonce。
[0035]优选地,所述第一跨分片交易被验证通过的过程,包括:
[0036]收到所述第一跨分片交易的节点对中继账户的签名进行验证,得到签名验证结果;
[0037]若所述签名验证结果为验证通过,则根据中继账户的公钥,获取中继账户的账户地址;
[0038]基于所述账户地址及目标账户的账户地址,通过当前的状态区块获取源分片和目标分片的信息;
[0039]将所述第一跨分片交易转发至源分片和目标分片;
[0040]源分片中的节点根据预设的标准对所述第一跨分片交易的有效性进行验证,并将有效性验证通过的第一跨分片交易并添加到源分片的交易池中。
[0041]优选地,所述第二跨分片交易被验证通过的过程,包括:
[0042]收到所述第二跨分片交易的节点对中继账户的签名进行验证,得到签名验证结果;
[0043]若所述签名验证结果为验证通过,则根据中继账户的公钥,获取中继账户的账户地址;
[0044]基于所述账户地址及目标账户的账户地址,通过当前的状态区块获取目标分片的信息;
[0045]将所述第二跨分片交易转发至目标分片;
[0046]目标分片中的节点根据预设的标准对所述第二跨分片交易的有效性进行验证,并将有效性验证通过的第二跨分片交易并添加到目标分片的交易池中。
[0047]优选地,所述失败证明的生成过程,包括:
[0048]获取目标分片的索引、目标分片当前的第三区块高度以及所述第一跨分片交易的默克尔树路径;
[0049]根据所述索引、所述第三区块高度、所述第一跨分片交易以及所述默克尔树路径,生成失败证明报文。
[0050]经由上述的技术方案可知,本申请根据区块链在当前分区周期中新生成的交易区块,生成区块链的状态图。其中,所述状态图包括各账户或子账户在当前分区周期的交易关系,所述交易关系包括交易账户之间的交易次数。当新生成的交易区块达到预设数目后,将所述状态图划分成至少两个互不重叠的子状态图,得到状态图划分结果。然后对所述状态图划分结果在区块链内进行共识,生成新的状态区块;最后,各账户节点根据所述新的状态区块,对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链分片方法,其特征在于,包括:根据当前分区周期新生成的交易区块,生成区块链的状态图,所述状态图包括各账户/子账户在当前分区周期的交易关系,所述交易关系包括交易账户/子账户之间的交易次数;当新生成的交易区块达到预设数目后,将所述状态图划分成至少两个互不重叠的子状态图,得到状态图划分结果,所述子状态图之间的交易次数小于预设的第一阈值,各子状态图内部的总交易次数的方差小于预设的第二阈值;对所述状态图划分结果在区块链内进行共识,生成新的状态区块;根据所述新的状态区块,对各账户的状态进行重构。2.根据权利要求1所述的方法,其特征在于,所述根据当前分区周期新生成的交易区块,生成区块链的状态图的过程,包括:根据当前分区周期新生成的交易区块,确定每个账户在当前分区周期的总交易次数以及与其他账户的交易次数;以账户作为顶点,通过在存在交易的账户之间设置边,来构造所述状态图;其中,两个顶点之间的边的权重设置为所述两个顶点所属的账户之间在当前分区周期的交易次数;顶点的权重设置为所述顶点所属的账户在当前分区周期的总交易次数。3.根据权利要求1所述的方法,其特征在于,将所述状态图划分成至少两个互不重叠的子状态图的过程,包括:根据所述状态图中各顶点的权重以及各边的权重,通过Metis算法将所述状态图划分成至少两个互不重叠的子状态图。4.根据权利要求1所述的方法,其特征在于,根据所述新的状态区块,对各账户的状态进行重构的过程,包括:根据所述新的状态区块,获取各账户所属的分片;基于各账户所属的分片,通过Elastico算法对各账户的状态进行重构。5.一种区块链系统,其特征在于,包括:分区分片,用于根据权利要求1所述的方法对区块链进行分片;区块生成分片,用于生成分片内的交易区块。6.一种跨分片交易处理方法,所述方法应用于权利要求5所述的系统,其特征在于,包括:源账户根据目标账户及当前的状态区块,获取中继账户的信息,其中,中继账户包括至少两个子账户,所述子账户至少存在于源账户所在的源分片以及目标账户所在的目标分片;源账户以预设的第一锁定时间向目标账户及中继账户发起原始交易;当接收到所述原始交易后,中继账户根据源分片当前的第一区块高度,向源账户发起第一跨分片交易;当第一跨分片交易被验证通过并且得到确认后,中继账户向目标账户发起第二跨分片交易,其中...

【专利技术属性】
技术研发人员:黄华威张深扬郑子彬
申请(专利权)人:中山大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1