掌桥专利:专业的专利平台
掌桥专利
首页

一种基于分片策略的区块链异步共识方法及装置

文献发布时间:2024-04-18 19:53:33


一种基于分片策略的区块链异步共识方法及装置

技术领域

本发明涉及区块链技术领域,尤其涉及一种基于分片策略的区块链异步共识方法及装置。

背景技术

随着区块链技术的不断发展,越来越多的领域开始使用区块链技术,如数字货币、金融、物流等。区块链技术能够提供安全性、去中心化、透明度等优点,但同时也存在着一些问题,其中最主要的问题是共识算法的效率低下。目前,区块链主要采用的是基于拜占庭容错的共识算法,如PBFT、Tendermint等,这些算法虽然能够提供较高的安全性和可靠性,但是其性能却十分低下,无法满足现实应用场景的需求。在实际应用中,面对复杂的网络环境和高并发的数据处理需求,这些共识算法难以保证高效、高可用性和可扩展性。

现有的共识技术中,如专利号为CN114584577A的专利,提出了一种处理数据的区块链分片异步共识方法及系统,采用的分片共识的方式,在分片共识过程中,网络节点之间需要频繁地交换信息和进行数据同步,这会对网络的稳定性和带宽产生负面影响。如专利号为CN112862490B的专利,提出了一种解决区块链中共识节点之间不一致性的方法,通过使用合约容器对签名交易序列进行映射,并将其转化为状态写入指令集合来决定区块链账本状态的迁移。在下一轮原子广播中,对该映射进行状态迁移共识,即输出共识。但是,该方法需要进行预执行和状态映射,这增加了系统复杂性和计算成本。此外,由于该方法依赖原子广播和节点管理合约等技术,一旦出现故障或攻击,可能会导致共识失败或节点管理不稳定。如专利号为CN114338040A的专利,提供了一种在区块链网络中实现多个节点之间共识的方法,在分组分层的节点设计架构下,通过三次共识,实现多节点网络下的共识。但是,该专利的实现需要进行多次共识和广播,因此可能会带来一定的时延和交易处理效率下降。

发明内容

鉴于此,本发明提供了一种基于分片策略的区块链异步共识方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷,解决当前区块链共识算法的效率低、可扩展性差以及异步环境可用性低的问题。

一方面,本发明提供一种基于分片策略的区块链异步共识方法,所述方法用于在区块链网络上执行,所述区块链网络包括由多个联盟链节点组成的输入缓冲区和异步共识区,所述输入缓冲区包含多个信息提交入口,每个信息提交入口由raft算法维护一致性,所述异步共识区内的联盟链节点采用异步分片的形式设置为多个分片,该方法包括以下步骤:

由距离客户端最接近的所述信息提交入口接收所述客户端提交的交易信息,对所述客户端进行权限和身份验证,并获取数字签名;验证通过后,为所述交易信息添加信息摘要、代理签名和共识信息id,并将所述交易信息插入所述输入缓冲区的共识信息缓冲队列;

在所述异步共识区中,由完成上一共识工作的一联盟链节点作为消息同步发送节点,请求获取所述共识信息缓冲队列中的第一设定数量个交易信息,并打包为共识信息;

所述消息同步发送节点将所述共识信息划分为多个数据块,并添加多个纠删码块组成广播合集;所述消息同步发送节点将所述广播合集中的各数据块和纠删码块分别发送至所在分片内的其他消息同步接收节点;所述消息同步接收节点在接受到第二设定数量个数据块或纠删码块后,根据纠删码块修复和验证原消息,在验证正确的情况下广播添加签名信息的回声消息;当所述消息同步发送节点接收到第三设定数量个回声消息时,确认接收所述共识信息,并对所述共识信息生成一个可验证摘要;

所述消息同步发送节点所在分片内,采用异步共识算法对所述可验证摘要进行共识认证。

在一些实施例中,每个信息提交入口由raft算法维护一致性,包括:

每个信息提交入口设置一个主节点接收所述客户端提交的交易信息,其他节点作为备份节点;

由各信息提交入口拉取彼此的commit日志进行同步,将同步后的所述交易信息插入所述输入缓冲区的共识信息缓冲队列。

在一些实施例中,所述异步共识区内的联盟链节点采用异步分片的形式设置为多个分片,包括:

对于所述异步共识区内的每个联盟链节点,每当执行第三设定数量次共识后,向所述区块链网络的智能体提交再分片申请;

所述智能体计算当前时刻每个分区内各联盟链节点之间相对的计算能力值、历史信誉值和推荐信誉值;

在每个分片中,将单个联盟链节点相对于其他联盟链节点的所述计算能力值、所述历史信誉值和所述推荐信誉值加权求和,并累加得到该联盟链节点的综合权重;

对每个分片内各联盟链节点的综合权重求和得到当前时刻所述分片的分片权重;

根据各分片的分片权重占比,在0~1的范围内随机分配各分片的阈值区间;

根据提交再分片申请的联盟链节点的综合权重,将提交再分片申请的联盟链节点标记为良好节点、故障节点或恶意节点;

针对所述良好节点,生成随机数,将所述随机数连接所述良好节点的数字身份信息进行哈希运算,将结果转换为0~1的小数,判断所述小数所属的阈值区间,将所述良好节点划分到该阈值区间对应的分片;针对所述故障节点,直接将其划分至分片权重最高的分片中;针对所述恶意节点,删除其参与共识认证的资格,待资质重新审核后恢复。

在一些实施例中,所述计算能力值的计算式为:

其中,

所述历史信誉值的计算式为:

/>

其中,

所述推荐信誉值的计算式为:

其中,

所述综合权重的计算式为:

其中,γ、δ和ε表示权重系数;

分片n在t时刻的分片权重

其中,k表示分配n中的联盟链节点的编号,

在一些实施例中,根据提交再分片申请的联盟链节点的综合权重,将提交再分片申请的联盟链节点标记为良好节点、故障节点或恶意节点,包括:

获取预设值域从低到高的第一分类区间、第二分类区间和第三分类区间,若提交再分片申请的联盟链节点的综合权重在所述第一分类区间内则判断该联盟链节点为恶意节点,若提交再分片申请的联盟链节点的综合权重在所述第二分类区间内则判断该联盟链节点为故障节点,若提交再分片申请的联盟链节点的综合权重在所述第三分类区间内则判断该联盟链节点为良好节点。

在一些实施例中,根据提交再分片申请的联盟链节点的综合权重,将提交再分片申请的联盟链节点标记为良好节点、故障节点或恶意节点,还包括:

获取设定阈值,当提交再分片申请的联盟链节点被判定为恶意节点的次数小于所述设定阈值,则将其作为故障节点处理;当提交再分片申请的联盟链节点被判定为恶意节点的次数大于等于所述设定阈值,则将其作为恶意节点处理。

在一些实施例中,所述异步共识算法为DumboBFT算法。

在一些实施例中,所述消息同步发送节点所在分片内,采用异步共识算法对所述可验证摘要进行共识认证,包括:

通过RBC算法传递每个联盟链节点的提议信息,由领导者选取每个阶段中提出共识请求的联盟链节点,并通过ABA算法进行共识。

另一方面,本发明还提供一种基于分片策略的区块链异步共识装置,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置实现如上述方法的步骤。

另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述方法的步骤。

本发明的有益效果至少是:

本发明所述基于分片策略的区块链异步共识方法及装置中,通过分片技术将原本单一的链式结构分为多个独立的区块链片分片,每个分片可以由不同的共识节点维护,以提高整个区块链系统的吞吐量和效率。在每个分片中采用异步共识算法进行共识,使得运行不受网络延迟等因素的限制。同时通过引入输入缓冲区,由缓冲区节点维护一个全局一致的共识信息缓冲队列,将验证通过后的交易添加一个共识标记序号,并将带序号的交易信息填入共识信息缓冲队列,使得各个分片的异步共识能够在全局一致的共识信息缓冲队列中得以协调,确保系统整体的一致性。

本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。

本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1为本发明一实施例所述基于分片策略的区块链异步共识方法的流程示意图。

图2为本发明另一实施例所示融合分片技术的区块链异步共识模块整体结构示意图。

图3为本发明一实施例中采用的分片异步共识算法(DS-Dumbo)和DumboBFT算法的吞吐量对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。

在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。

在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。

本申请针对目前区块链共识算法中所存在的痛点,同时结合分片技术和异步共识技术的优势,构建出一套融合分片技术的区块链异步共识。分片技术可以将整个区块链网络分成多个小区块链,每个小区块链只需要处理自己的交易,可以大幅提升共识算法的效率和可扩展性。而异步共识技术则可以解决在真实的异步网络环境中出现的问题,例如网络延迟和分区等。本申请通过融合两种技术的技术特性,解决当前区块链共识算法的效率低、可扩展性差、异步环境可用性有待提高等问题。

本申请中为了提高区块链的性能,采用了分片技术,其主要思想是将整个区块链网络分为多个小区块链,每个小区块链只处理一部分的交易数据,从而提高网络的处理效率。分片技术可以有效地降低共识的计算量,提高共识的效率,同时提高网络的可扩展性和可用性。然而,有了分片技术后,现有的以来网络同步的共识算法依旧面临着在真实地异步网络环境中可用性低这个缺点。这就需要引入结合异步共识技术来解决这个问题。异步共识技术是一种在不同节点的时钟不同步的情况下仍能保证共识一致性的技术。通过将异步共识技术与分片技术结合起来,可以实现区块链的高效、高可用性和可扩展性,同时也能够保证区块链的安全性和去中心化特性。

具体的,本发明提供一种基于分片策略的区块链异步共识方法,所述方法用于在区块链网络上执行,区块链网络包括由多个联盟链节点组成的输入缓冲区和异步共识区,输入缓冲区包含多个信息提交入口,每个信息提交入口由raft算法维护一致性,异步共识区内的联盟链节点采用异步分片的形式设置为多个分片。其中输入缓冲区由系统创建客户端读写服务,异步共识区用于进行共识操作。

具体的,如图1所示,所述方法包括以下步骤S101~S104:

步骤S101:由距离客户端最接近的信息提交入口接收客户端提交的交易信息,对客户端进行权限和身份验证,并获取数字签名;验证通过后,为交易信息添加信息摘要、代理签名和共识信息id,并将交易信息插入输入缓冲区的共识信息缓冲队列。

步骤S102:在异步共识区中,由完成上一共识工作的一联盟链节点作为消息同步发送节点,请求获取共识信息缓冲队列中的第一设定数量个交易信息,并打包为共识信息。

步骤S103:消息同步发送节点将共识信息划分为多个数据块,并添加多个纠删码块组成广播合集;消息同步发送节点将广播合集中的各数据块和纠删码块分别发送至所在分片内的其他消息同步接收节点;消息同步接收节点在接受到第二设定数量个数据块或纠删码块后,根据纠删码块修复和验证原消息,在验证正确的情况下广播添加签名信息的回声消息;当消息同步发送节点接收到第三设定数量个回声消息时,确认接收共识信息,并对共识信息生成一个可验证摘要。

步骤S104:消息同步发送节点所在分片内,采用异步共识算法对可验证摘要进行共识认证。

在步骤S101中,区块链网络内设有多个信息提交入口(raft域)。对客户端的权限和身份验证可以引入第三方认证,或者直接添加身份及权限标识符的方式进行认证。共识信息缓冲队列由各信息提交入口共同维护。

在一些实施例中,每个信息提交入口由raft算法维护一致性,包括步骤S201~S202:

步骤S201:每个信息提交入口设置一个主节点接收客户端提交的交易信息,其他节点作为备份节点。

步骤S202:由各信息提交入口拉取彼此的commit日志进行同步,将同步后的交易信息插入输入缓冲区的共识信息缓冲队列。

由于本申请引入了分片技术和异步共识的方式,共识节点是随时间不断变化的,网络的拓扑结构呈现动态,这就使得客户端提交共识信息的工作存在困难,所以通过设置多个信息提交入口构建输入缓冲区。

从步骤S201~S202中可以明确,输入缓冲区中的共识信息缓冲队列是由各信息提交入口共同维护的,客户端在发送交易信息时,只是向最接近的信息提交入口进行提交,每个信息提交入口通过raft算法进行维护。

在一些实施例中,异步共识区内的联盟链节点采用异步分片的形式设置为多个分片,包括步骤S301~S307:

步骤S301:对于异步共识区内的每个联盟链节点,每当执行第三设定数量次共识后,向区块链网络的智能体提交再分片申请。

步骤S302:智能体计算当前时刻每个分区内各联盟链节点之间相对的计算能力值、历史信誉值和推荐信誉值。

步骤S303:在每个分片中,将单个联盟链节点相对于其他联盟链节点的计算能力值、历史信誉值和推荐信誉值加权求和,并累加得到该联盟链节点的综合权重。

步骤S304:对每个分片内各联盟链节点的综合权重求和得到当前时刻分片的分片权重。

步骤S305:根据各分片的分片权重占比,在0~1的范围内随机分配各分片的阈值区间。

步骤S306:根据提交再分片申请的联盟链节点的综合权重,将提交再分片申请的联盟链节点标记为良好节点、故障节点或恶意节点。

步骤S307:针对良好节点,生成随机数,将随机数连接良好节点的数字身份信息进行哈希运算,将结果转换为0~1的小数,判断小数所属的阈值区间,将良好节点划分到该阈值区间对应的分片;针对故障节点,直接将其划分至分片权重最高的分片中;针对恶意节点,删除其参与共识认证的资格,待资质重新审核后恢复。

在步骤S301中,设置异步共识区中的每个节点执行第三设定数量次共识后进行重新分片。步骤S302~S307中,从计算能力值、历史信誉值和推荐信誉值三方面计算每个联盟链节点的综合权重,对每个分片内各联盟链节点的综合权重进行累加得到分片的分片权重;根据综合权重将联盟链节点区分为良好节点、故障节点和恶意节点,良好节点按照分片权重将提交再分片申请的联盟链节点随机划分至一个分片内,故障节点划分在分片权重最高的分片中,恶意节点做删除处理。

在一些实施例中,联盟链节点的计算能力值的计算式为:

其中,

历史信誉值的计算式为:

其中,

推荐信誉值的计算式为:

其中,

进一步的,每个联盟链节点综合权重的计算式为:

其中,γ、δ和ε表示权重系数;

分片n在t时刻的分片权重

其中,k表示分配n中的联盟链节点的编号,

在一些实施例中,步骤S306中,根据提交再分片申请的联盟链节点的综合权重,将提交再分片申请的联盟链节点标记为良好节点、故障节点或恶意节点,包括:获取预设值域从低到高的第一分类区间、第二分类区间和第三分类区间,若提交再分片申请的联盟链节点的综合权重在第一分类区间内则判断该联盟链节点为恶意节点,若提交再分片申请的联盟链节点的综合权重在第二分类区间内则判断该联盟链节点为故障节点,若提交再分片申请的联盟链节点的综合权重在第三分类区间内则判断该联盟链节点为良好节点。

在一些实施例中,步骤S306中,根据提交再分片申请的联盟链节点的综合权重,将提交再分片申请的联盟链节点标记为良好节点、故障节点或恶意节点,还包括:获取设定阈值,当提交再分片申请的联盟链节点被判定为恶意节点的次数小于设定阈值,则将其作为故障节点处理;当提交再分片申请的联盟链节点被判定为恶意节点的次数大于等于设定阈值,则将其作为恶意节点处理。

在步骤S102中,当一个联盟链节点完成共识工作后,可以向系统请求新的共识信息,具体的,输入缓冲区将所维护的共识信息缓冲队列中的一部分数据大包围共识信息,以发送至该完成上一共识工作的联盟链节点。

在步骤S103中,异步共识区内,由消息同步发送节点进行消息广播,并在其他消息同步接收节点处进行确认接收,完成缓存。通过将共识信息进行分块并添加纠缠码块,以供其他消息同步接收节点进行回复和验证。例如,消息同步发送节点将共识信息分为 n-f 块并将这些小块和 2f 个纠删码块组合成为本条消息的广播集合M。在消息传递时发送节点分别将 M 中的每个消息块发送给网络中的其他消息同步接收节点。当一个消息同步接收节点接收到 n-f 个消息块后会根据纠删码修复和验证原消息,如果正确会广播回声消息,如果接收到足够的回声消息就可以确认接收本条消息。n是分片内总节点数量。f代表分片内可以抵抗的拜占庭节点数量。n=3×f+1,即分片内可以抵御三分之一节点总数的拜占庭节点作恶。纠删码块这里其实使用到了门限加密,这个是一种群体签名技术,一个节点只有获得足够的纠删码块才能对加密的原信息进行解密。2f+1个其他节点确认就是为了保证有足够的正确节点加入共识,防止拜占庭节点占据大多数,因为这里既使f个拜占庭节点都加入进来了,还有f+1各正确的节点在共识过程中。

在步骤S104中,每个分片内的联盟链节点采用异步共识算法进行共识认证。在一些实施例中,异步共识算法为DumboBFT算法。DumboBFT使用多值拜占庭验证协议(MVBA)将共识实例数量降低到常数个,从而大大提高了共识速度。该算法由两个阶段组成:消息广播和共识阶段。在消息广播阶段,每个节点将从客户端发来的交易向所有节点广播,并将接收到的交易缓存在本地。在共识阶段,每个节点从本地缓冲区中选取一个交易集合作为自己的提议,并运行MVBA共识算法,以达成关于新区块中交易的共识。

在一些实施例中,消息同步发送节点所在分片内,采用异步共识算法对所述可验证摘要进行共识认证,包括:通过RBC算法传递每个联盟链节点的提议信息,由领导者选取每个阶段中提出共识请求的联盟链节点,并通过ABA(二元异步共识协议)算法进行共识。

另一方面,本发明还提供一种基于分片策略的区块链异步共识装置,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置实现如上述方法的步骤。

另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述方法的步骤。

下面结合一具体实施例对本发明进行说明:

本实施例提供一种融合分片技术的区块链异步共识模块整体结构,如图2所示。

本实施例的总体结构分为输入缓冲区和异步共识区。输入缓冲区由系统创建为客户端提供读写服务,记录客户端的写入内容和共识内容,为共识提供辅助但不参与最终的共识工作,满足CFT(非拜占庭容错);异步共识区由联盟成员组成并负责对缓冲区内的写入内容进行共识工作并记录上链,满足BFT(拜占庭容错)。输入缓冲区包含多个信息提交入口(即raft域),每个raft域有一个主节点接收客户端的信息,其他follow节点作为备份节点,不同raft域之间互相拉取彼此的commit日志进行同步,同步后的消息即可成为输入缓冲区内的待共识信息。异步共识区包含两个主要的工作,一个是调整共识节点的分片,另一个是不同分片内的异步共识算法的执行工作。分片的调整依赖每个节点的设备能力和历史行为来综合考量,其目的是提高系统的灵活性和抗攻击能力。

在输入缓冲区中,由于共识节点随着时间推移不断重新分片,整个网络的拓扑结构是动态的,不方便客户端向共识节点提交共识信息。因此,引入了输入缓冲区来简化客户端提交共识信息的过程。输入缓冲区由联盟链系统构建,不参与各方共识工作,因此默认不会被黑客攻击控制。但不能保证其不会出现宕机等意外情况,因此考虑用 Raft 算法维护单个输入域。同时,为了满足异步共识算法的高并发度需求,本实施例提供了多个输入Raft域,客户端可以选择就近的输入域的节点进行共识信息的提交。针对客户端向输入缓冲区提交的交易 tx,输入缓冲区节点对交易进行权限验证,包括客户端身份信息和资产认证等相关权限的认证。输入缓冲区维护一个全局一致的共识信息缓冲队列,会将验证通过后的交易添加一个 64 位无符号且单调递增的共识标记序号,并将带序号的交易信息填入共识信息缓冲队列。共识信息缓冲队列将一批交易打包成共识信息 m,并依次输入到准备好的异步共识节点。对于共识失败的信息 m,将其拆分成交易信息组

在异步分片策略中,由于异步环境下节点的状态无法达成统一,因此如何选择分片的方式和时间就成为了需要主要考虑的因素。一种思路是在多个共识片区间确定一个具体时刻来进行统一全网的重新分片,这种思路的优点是使分片过程比较简单。但是由于节点状态不统一,先完成工作的节点需要等待后完成工作的节点,并且系统的分片效率由最后完成工作的节点决定,从而浪费了很多计算资源。另一种思路是节点的再分片工作也采用异步的方式进行,这种方法虽然会使分片的过程变得比较复杂,但好处是先完成工作的节点无需等待其他节点的工作状态直接进行再分片工作,最大化的利用好全网的计算资源。为了最大化利用好计算资源,提升工作效率,本实施例采取思路二的方法。

分片会使单个共识域内的节点数量变少,所以为了提高单个共识域的容错能力,需要合理地对接点进行分片的再分配。在本实施例中,引入了节点的权重矩阵来为这个工作提供参考。假设整个网络的节点数量为N,权重矩阵的大小则为N*N。每个节点的信誉值从三方面评估,分别是计算能力值cScr,历史信誉值hScr,推荐信誉值rScr,假设节点i对节点j在t时刻的信誉评估可以表示为

其中,联盟链节点的计算能力值的计算式为:

其中,

历史信誉值的计算式为:

其中,

假设网络中关于节点j有L个推荐节点,给出的信誉度集合为

其中,

推荐信誉值由推荐节点对被评估节点的给出的信誉度决定,推荐节点与被评估节点必须有过交互。

最后,根据计算能力值、历史信誉值、推荐信誉值三者加权计算得到综合信誉值,每个联盟链节点综合权重的计算式为:

其中,γ、δ和ε表示权重系数;

分片n在t时刻的分片权重

其中,k表示分配n中的联盟链节点的编号,

在本实施例中,规定每个节点在进行Ω次共识后重新进行分片操做。

具体分片流程如下:

1.针对节点i,当本次共识次数是Ω的倍数之后,向系统提交再分片申请,并提交工作日志进行节点权重矩阵和分片权重向量的更新。

2.针对新生成的分片权重向量,根据其权重占比随机为其分配目标阈值范围0~1。

3.根据节点权重分数情况,将其归纳为良好节点,故障节点或者恶意节点。具体的,获取预设值域从低到高的第一分类区间、第二分类区间和第三分类区间,若提交再分片申请的联盟链节点的综合权重在第一分类区间内则判断该联盟链节点为恶意节点,若提交再分片申请的联盟链节点的综合权重在第二分类区间内则判断该联盟链节点为故障节点,若提交再分片申请的联盟链节点的综合权重在第三分类区间内则判断该联盟链节点为良好节点。

4.针对良好节点,生成随机数R,将其带上节点的数字身份信息进行哈希运算,将结果转换为0~1的小数,判断小数落在哪个区间,就将节点划分到目标片区。

5.针对故障节点,直接将其转入到分片权重最高的分片中。

6.针对恶意节点进行标记,当标记的次数没有超过阈值则当其为故障节点处理,当标记的次数超过阈值,则删除其共识节点资格,待资质重新审核后,才能恢复其共识节点身份。

进一步的,本实施例在分片内的异步共识策略,由两个阶段组成:消息广播和共识阶段。在消息广播阶段,每个节点将从客户端发来的交易向所有节点广播,并将接收到的交易缓存在本地。在共识阶段,每个节点从本地缓冲区中选取一个交易集合作为自己的提议,并运行MVBA共识算法,以达成关于新区块中交易的共识。HoneyBadgerBFT算法是第一个实用的异步共识算法,本实施例在分片中的共识操作采用HoneyBadgerBFT算法的改进型,DumboBFT算法,DumboBFT使用多值拜占庭验证协议(MVBA)将共识实例数量降低到常数个,从而大大提高了共识速度。

本实施例综合上面的分片策略并结合DumboBFT算法构建DS-Dumbo分片异步共识算法,具体流程如下:

(1)信息预处理

客户端向输入缓冲区提交交易信息tx,输入缓冲区对客户端进行权限和身份验证,并获取客户端的数字签名。通过认证后,由输入缓冲区代理客户端这条交易的执行,为交易信息添加信息摘要与代理签名,并生成全局唯一的共识信息id,将交易信息tx插入到输入缓冲区的共识信息缓冲队列中。

(2)共识输入

当异步共识区的某一节点完成上一阶段的共识工作之后,向输入缓冲区申请下一阶段共识信息。输入缓冲区收到申请后从缓冲队列中取出一些交易信息,将其打包为共识信息

(3)消息同步

发送节点:将一条从输入缓冲区接收到的共识信息分为 n-f 块并将这些小块和2f 个纠删码块组合成为本条消息的广播集合M。在消息传递时发送节点分别将 M 中的每个消息块发送给网络中的每个节点。并接收其他节点的回声信息,以及他的对本条消息的签名信息。并在本阶段完成时,为其生成一个可验证摘要

接收节点:当分片内的其他节点接收到发送节点传来的消息块会将该消息块也转发给其他节点。当一个接收节点接收到 n-f 个消息块后会根据纠删码修复和验证原消息,如果正确会广播回声消息,如果接收到足够的回声消息就可以确认接收本条消息。

(4)异步共识

当发送节点发出的共识信息,经过分片内2f+1个其他节点确认后,即可进入异步共识阶段。为了减轻异步共识的通信负载,由可验证共识信息摘要

本实施例应用了分片技术,通过分片技术将原本单一的链式结构分为多个独立的区块链片段,每个片段可以由不同的共识节点维护。这种分片技术可以大大提高整个区块链系统的吞吐量和效率,同时也能减少单个节点的存储和计算压力。本实施例采用了异步共识算法,异步共识算法的运行不受网络延迟等因素的限制,是一种能够在真实的异步网络环境中实现高可用性的共识算法。实现异步共识算法需要维护消息传递协议、选举协议和状态机复制等多个组件,以确保系统能够正常运转。为了协调不同区块链的分片和异步共识,本实施例通过引入输入缓冲区,由缓冲区节点维护一个全局一致的共识信息缓冲队列,将验证通过后的交易添加一个共识标记序号,并将带序号的交易信息填入共识信息缓冲队列。这样,各个分片的异步共识就能够在全局一致的共识信息缓冲队列中得以协调,确保系统整体的一致性。

本实施例的优点在于,首先在共识效率上,通过分片的并发共识工作,使得其吞吐量相比传统的共识算法有很大的提升;并且通过融入异步共识的思想,能够在网络波动较大的网络环境中依旧有着较高的可用性。通过设置一种对节点进行全方位的权重计算模型,使得分片变得轻量化,易处理。最后,通过加入输入缓冲区,简化了异步共识的复杂工作流程并且解耦了客户端的交易处理,使动态分片和异步共识之间的协作更加平滑。

下面对本实施例所提供的融合分片技术的区块链异步共识模块进行测试,本实施例使用一台服务器模拟多节点广泛分布的网络状态,测试系统为 Ubuntu18.04。门限签名方案基于 MNT224 curve实现,阈值加密基于 SS512 对称双线性群的阈值加密方案实现,所有测试结果均为执行 10 次后的均值。

实验结果如下,测试算法的吞吐量,吞吐量是衡量算法处理交易速度的指标,吞吐量越高算法能够承担的负载就越大。测试网络拥有节点总数为 8,其中存在两个拜占庭节点。如图 3所示,测试结果的横坐标表示为批次大小,代表每一轮次处理的交易数量,纵坐标表示为执行 10 轮后的平均吞吐量,单位为 tps。由于本实施例采用的DS-Dumbo 算法主要对DumboBFT算法进行分片扩展,在吞吐量上相比DumboBFT有着较大的提升。根据测试结果显示 DS-Dumbo 算法吞吐量是 DumboBTF 算法3倍左右,且吞吐量变化趋势与原算法相似。

综上所述,本发明所述基于分片策略的区块链异步共识方法及装置,通过分片技术将原本单一的链式结构分为多个独立的区块链片分片,每个分片可以由不同的共识节点维护,以提高整个区块链系统的吞吐量和效率。在每个分片中采用异步共识算法进行共识,使得运行不受网络延迟等因素的限制。同时通过引入输入缓冲区,由缓冲区节点维护一个全局一致的共识信息缓冲队列,将验证通过后的交易添加一个共识标记序号,并将带序号的交易信息填入共识信息缓冲队列,使得各个分片的异步共识能够在全局一致的共识信息缓冲队列中得以协调,确保系统整体的一致性。

与上述方法相应地,本发明还提供了一种装置/系统,该装置/系统包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置/系统实现如前所述方法的步骤。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述边缘计算服务器部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。

本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于算力寄生的区块链共识装置
  • 基于区块链的交易共识处理方法及装置、电子设备
  • 基于区块链的交易共识处理方法及装置、电子设备
  • 一种基于区块链分片技术的共识方法及装置
  • 一种基于区块链分片技术的共识方法及装置
技术分类

06120116339475