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

一种共识节点的状况评估方法、装置及电子设备

文献发布时间:2023-06-19 13:45:04


一种共识节点的状况评估方法、装置及电子设备

技术领域

本发明涉及区块链技术领域,尤其涉及一种共识节点的状况评估方法、装置及电子设备。

背景技术

区块链技术在近些年有着突飞猛进的发展,但是也有着许许多多的局限性。由于参与区块链的节点并不都是可靠节点,也存在着节点恶意攻击区块链的可能,所以为了减小这种可能,区块链一般会使用“网络共识”的方式去避免恶意节点去篡改区块,网络共识是区块链系统的重要组成部分,共识机制的设计直接关系着区块链系统的性能和安全。当前基于VRF算法的区块链共识机制,具有良好的安全性,它的安全性来自于VRF算法的优秀的可验证性、伪随机性和唯一性,因此被广泛的应用。

VRF算法的共识算法无法预测每一轮共识过程中的出块节点和投票节点,从而无法有效得对共识过程进行攻击,保证了共识的整体安全性,但是同时也丢失了全局可知的选举人信息,无法直接对选举人的本轮共识参与过程进行监控和管理。

发明内容

有鉴于此,本发明实施例公开了一种参与共识的节点的状况评估方法、装置及电子设备,解决了现有技术中无法对共识过程中的节点进行监控和管理的问题。

本发明实施例公开了一种参与共识的节点的状况评估方法,包括:

接收上一个区块的共识交易信息;

解析所述上一个区块的共识交易信息,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点;

若目标节点的状态信息为离线状态或者为恶意不参与共识的状态,则剔除所述目标节点,得到共识节点集合;所述目标节点为所述共识交易信息中参与共识的节点中的任意一个;

基于所述共识节点集合,执行当前区块的共识交易。

可选的,所述解析所述上一个区块的共识交易信息,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点,包括:

确定目标节点从第一区块到第二区块的参与共识的情况信息;所述第一区块为预设的初始区块,所述第二区块的区块号大于所述第一区块的区块号;

基于目标节点从所述第一区块到所述第二区块的参与共识的情况信息,预测目标节点从所述第二区块到第三区块的参与共识的次数,得到第一预测值;所述第三区块的区块号大于所述第二区块的区块号;

统计所述目标节点从所述第二区块到所述第三区块的期望参与共识的次数,得到第一期望值,统计所述目标节点从所述第二区块到所述第三区块的实际参与共识的次数,得到第一实际值;

若所述第一期望值、第一实际值和第一预测值的关系满足预设的第一条件,则表示所述目标节点处于离线状态。

可选的,基于目标节点从第一区块到第二区块的参与共识的情况信息,预测目标节点从所述第二区块到所述第三区块的参与共识的次数,得到第一预测值,包括:

基于目标节点从所述第一区块到所述第二区块的期望参与共识的次数和实际参与共识的次数、以及预设的第一阈值,预测目标节点从第一区块到第三区块的参与共识的次数,得到第二预测值;

依据所述第二预测值和所述目标节点从第一区块到第二区块的实际参与共识的次数,计算第一预测值。

可选的,所述第一条件,包括:

第一期望值大于等于第一预测值,且所述第一实际值等于零。

可选的,所述解析所述上一个区块的共识交易信息,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点,包括:

若目标轮次的共识阶段的共识失败,统计在目标轮次的共识阶段被选中为选举人的节点的数量,并计算多个节点被选中为选举人的概率;所述多个节点的数量与被选中为选举人的节点的数量一致;

计算所述多个节点被选中为选举人的概率的期望;

获取第二阈值,若被选中为选举人的节点的数量、所述多个节点被选中为选举人的概率的期望和第二阈值之间的关系满足预设的第二条件,则表示本轮次的共识阶段存在恶意不参与共识的共识节点;

从目标节点加入共识的第一轮次开始,对目标节点每个轮次的选举人的概率进行累加,得到第一累加值;

从目标节点加入共识的第一轮次开始,对目标节点每个轮次选中的次数进行累加,得到第二累加值;

基于第一累加值和第二累加值的差与预设的第三阈值的关系,确定所述目标节点是否为嫌疑节点;

从嫌疑节点中选取作恶节点。

可选的,所述获取第二阈值,包括:

计算多个节点被选中为选举人的标准差;

依据所述多个节点被选中为选举人的标准差计算第二阈值。

可选的,所述预设的第二条件包括:

所述被选中为选举人的节点的数量小于所述多个节点被选中为选举人的概率的期望和第二阈值的差。

可选的,所述从嫌疑节点中选取作恶节点,包括:

若嫌疑节点的第一累加值和第二累加值的差大于预设的第四阈值,则表示所述嫌疑节点为作恶节点;所述预设的第四阈值大于预设的第三阈值。

可选的,所述从嫌疑节点中选取作恶节点,包括:

计算每个嫌疑节点连续未选中直至被选中的概率;

根据每个嫌疑节点连续未选中直至被选中的概率确定作恶节点。

可选的,还包括:

响应于节点加入共识的指令,在当前区块的共识交易之前,在所述共识节点集合中加入节点。

本发明实施例公开了一种参与共识的节点的状态评估装置,包括:

接收单元,用于接收上一个区块的共识交易信息;

解析单元,用于解析所述上一个区块的共识交易信息,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点;

剔除单元,用于若目标节点的状态信息为离线状态或者为恶意不参与共识的状态,则剔除所述目标节点,得到共识节点集合;所述目标节点为所述共识交易信息中参与共识的节点中的任意一个;

共识交易执行单元,用于基于所述共识节点集合,执行当前区块的共识交易。

本发明实施例公开了一种电子设备,包括:

存储器和处理器;

所述存储器用于存储程序,所述处理器用于在执行所述存储器存储的程序时,执行上述所述的一种参与共识的节点的状况评估方法。

本发明实施例公开了一种参与共识的节点的状况评估方法、装置及电子设备,包括:当前区块在执行当前共识交易之前,先对上一个区块的共识交易进行解析,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点,若目标节点的状态信息为离线状态或者为恶意不参与共识的状态,则剔除目标节点,得到共识节点集合,之后基于该共识节点集合,执行当前区块的共识交易。由此通过对上一个区块的共识交易信息进行解析的方式,确定了是否存在离线状态或恶意不参与共识的状态的共识节点,从而剔除离线状态或恶意不参与共识的状态的共识节点,由此,避免了离线状态或恶意不参与共识的状态的共识节点对后续共识阶段的影响,提升了共识阶段的安全性和可靠性。

进一步的,本发明实施例能够在执行当前区块的共识交易过程中剔除有问题的节点,并得到剔除了有问题节点的共识节点集合,从而让新得到的共识节点集合来执行下一个区块的共识交易,保证下一个区块的共识过程的安全性和可靠性。由此,避免了现有技术中基于VRF算法的共识机制必须引入时间纪元的逻辑,也就避免了只能在一个时间纪元后才能执行节点剔除或者加入的操作逻辑,进而避免了存在问题的共识节点在时间纪元内对共识过程产生的持续影响,提升了共识阶段的安全性和可靠性。

附图说明

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

图1示出了本发明实施例1提供的一种参与共识的节点的状况评估方法的流程示意图;

图2示出了目标节点参与共识的情况的示意图;

图3示出了本发明实施例2提供的一种共识节点的状况评估方法的流程示意图;

图4示出了本发明实施例3提供的一种共识节点的状况评估方法的流程示意图;

图5示出了本发明实施例提供的一种参与共识的节点的状态评估装置的结构示意图;

图6示出了本发明实施例公开的一种电子设备的结构示意图。

具体实施方式

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

申请人发现,基于VRF算法的共识过程很难对发生如下两种情况的共识节点进行识别:

情况一:难以识别共识节点是否已经处于离线状态;

情况二:难以识别恶意不参与共识的节点。

下文中的实施例1和实施例2分别介绍了对上述两种情况的解决办法,本实施例中不再赘述。

实施例1

需要知道的是,参与共识的节点中处于离线状态的共识节点会降低系统的共识效率,本实施例中提供了一种识别离线状态的参与共识的节点的解决方案,参考图1示出了本发明实施例1提供的一种参与共识的节点的状况评估方法的流程示意图,在本实施例中,该方法包括:

S101:确定目标节点从第一区块到第二区块的参与共识的情况,所述第一区块表示预设的初始区块,所述第二区块的区块号大于所述第一区块的区块号;

本实施例中,假设第二区块的区块号为i+m,第二区块为区块链上产生的任意一个区块,或者也可以为目标节点最后一次参与共识的区块。第一区块为开始统计的区块,区块号可以表示为i。

其中,目标节点从第一区块到第二区块的参与共识的情况信息包括:目标节点从第一区块到第二区块的期望参与共识的次数,目标节点从第一区块到第二区块的实际参与共识的次数。

S102:基于目标节点从第一区块到第二区块的参与共识的情况信息,预测目标节点从第二区块到第三区块的参与共识的次数,得到第一预测值;所述第三区块产生在所述第二区块之后;

本实施例中,假设第二区块的区块号为区块i+m,第三区块的区块号为i+m+n,其中,n与预设的第一阈值有关,预设的第一阈值越大,则n越大,即预设的第一阈值越大,则表示第三区块的区块号越大。

本实施例中,第一预测值与目标节点从第一区块到第二区块的参与共识的情况有关,其中,基于目标节点从第一区块到第二区块的参与共识的情况信息,预测目标节点从第二区块到第三区块的参与共识的次数的方法可以包括多种,优选的,本实施例中公开了如下的方法:

基于目标节点从第一区块到第二区块的期望参与共识的次数和实际参与共识的次数、以及预设的第一阈值,预测目标节点从第一区块到第三区块的参与共识的次数,得到第二预测值;

依据所述第二预测值和所述目标节点从第一区块到第二区块的实际参与共识的次数,计算第一预测值。

举例说明:假设目标节点从第一区块到第二区块的期望参与共识的次数表示为exp

exp`

其中,exp`

第一预测值可以通过如下的公式2)计算:

exp`

其中,exp`

除此之外,还可以通过其它的方式预测目标节点从第一区块到第二区块的期望参与共识的次数,例如可以通过预设的统计模型进行预测,该模型的预测能力与目标节点从第一区块到第二区块的参与共识的情况信息有关。

S103:统计目标节点从第二区块到第三区块的期望参与共识的次数,得到第一期望值,统计目标节点从第二区块到第三区块的实际参与共识的次数,得到第一实际值;

S104:若所述第一期望值、第一实际值和第一预测值的关系满足预设的第一条件,则表示所述目标节点处于离线状态。

本实施例中第一条件可以为:第一期望值大于等于第一预测值,且所述第一实际值等于零。

举例说明:假设第一期望值表示为exp

举例说明:如图2所示,目标节点从区块i到区块i+m的期望参与的次数为120次,实际参与的次数为125次,预设的第一阈值假设为5,那么第二预测值=MAX(120,125)+5=130,目标节点从区块i+m到区块i+m+n的第一预测值=130-120=10,目标节点从区块i+m到区块i+m+n的期望参与共识的次数为10,目标节点从区块i+m到区块i+m+n的实际参与共识的次数为0,由此满足预设的第一条件,则表示目标节点处于离线状态。

本实施例中,通过对上一个区块的共识交易进行分析,得到目标节点从第一区块到第二区块的参与共识的情况信息,基于目标节点从第一区块到第二区块的参与共识的情况信息,预测目标节点从第二区块到第三区块的参与共识的次数,得到第一预测值,统计所述目标节点从第二区块到第三区块的期望参与共识的次数和实际参与公式的次数,得到第一期望值和第一实际值,若所述第一期望值、第一实际值和第一预测值的关系满足预设的第一条件,则表示所述目标节点处于离线状态。由此实现了在基于VRF的区块链共识过程中,通过算法识别出节点是否处于离线状态,从而避免离线节点对后续共识过程带来的持续负面影响,提升了共识阶段的安全性和可靠性。

实施例2

基于VRF的共识算法,很难识别共识节点恶意不参与共识的情况,但是该种情况会对共识的结果产生很大的影响,为了避免由于共识节点恶意不参与共识的情况,需要将恶意不参与共识的节点识别出来,参考图3示出了本发明实施例2提供的一种共识节点的状况评估方法的流程示意图,在本实施例中,该方法包括:

S201:若目标轮次的共识阶段的共识失败,统计目标轮次共识阶段被选中为选举人的节点的数量,并计算多个节点被选中为选举人的概率;所述多个节点的数量与被选中为选举人的节点的数量一致;

计算所述多个节点被选中为选举人的概率的期望;

本实施例中,共识阶段包括三个不同的阶段:提议阶段、投票阶段和确认阶段,每个阶段会在下述的情况下导致共识失败:

提议阶段:共识节点向全网提交VRF区块提议信息,若该阶段的提议区块数为零则表示该轮共识阶段失败;

投票阶段:所有的提议区块的投票数不超过系统约定的阈值Vv,导致共识失败;

确认阶段:满足投票数的新区块的确认数不超过系统约定的阈值Vf,导致共识失败。

本实施例中,在共识阶段参与共识的节点的数量表示为实际参与共识的节点的数量,例如假设有k个共识节点被选中为选举人,但是在共识阶段,k个选取人中可能只有一部分选举人共识节点参与了投票,表示为参与了共识。

本实施例中,假设总共有n个节点参与共识,其中k个节点被选中为选举人,那么k个节点被选中为选举人的概率表示为如下的公式3):

其中,p表示任意一个共识节点被选中为选举人的概率;

k个节点被选举为选举人的概率的期望表示为如下的公式4):

E(X)=np=π 4);

其中,π是本轮共识逻辑期望被选中的节点数,在VRF算法中约定每个共识节点具有相同的权重,也即它们成为选举人的概率是相同的,那么每个共识节点在VRF算法中被选中的概率:p=π/n。

本实施例中,对共识阶段失败的检测包括如下的过程:

在当前区块中对上一个区块提交的交易信息进行分析,得到每一轮次的共识结果;

检测是否存在任意一个轮次的共识失败;

若检测到任意一个轮次的共识失败,则表示为目标轮次的共识失败。

具体的,区块号为i的区块会把区块号为i-1的区块的共识过程中提交的VRF信息(区块提议、区块投票和区块确认)进行聚合打包成为交易信息(例如表示为BVM

S202:若被选中为选举人的节点的数量、所述多个节点被选中为选举人的期望和预设的第二阈值之间的关系满足预设的第二条件,则表示本轮共识阶段存在恶意不参与共识的共识节点;

本实施例中,预设的第二阈值与多个节点被选举为选举人的概率的标准差有关,其中,标准差可以通过如下的公式5)表示:

其中,n远远大于π。

预设的第二阈值是基于标准差确定的,例如P

本实施例中,预设的第二条件包括:被选举为选举人的节点的数量小于多个节点被选举为选举人的概率的期望和第二阈值的差。

举例说明:第二条件可以通过如下的公式6)表示:

k<E(X)-P

其中,P

S203:从目标节点加入共识的第一轮次开始,对目标节点每个轮次的选举人概率进行累加,得到第一累加值;

举例说明:第一累加值可以通过如下的公式7)表示:

θ(k)=∑p

其中,p

S204:从目标节点加入共识的第一轮次开始,对目标节点每个轮次选中的次数进行累加,得到第二累加值;

举例说明:第二累加值可以通过如下的公式8)表示:

H(k)=∑h

其中,h

S205:基于第一累加值和第二累加值的差与预设的第三阈值的关系,确定所述目标节点是否为嫌疑节点;

举例说明:第一累加值和第二累加值的差可以通过如下的公式9)表示:

Δ(k)=θ(k)-H(k) 9);

其中,Δ(k)表示第一累加值和第二累加值的差。本实施例中,第三阈值可以通过构建大量不同节点行为模拟计算得到。

具体的,S205包括:

若第一累加值和第二累加值的差大于预设的第三阈值,则表示所述目标节点为嫌疑节点。

S206:从嫌疑节点中选取作恶节点。

本实施例中,目标节点恶意不参与共识的情况包括如下的两种情况:

情况一:在共识过程中一直不参与共识;

情况二、阶段性的参与共识,或者可以理解为间隔一段时间参加一次共识。

针对情况一,进一步的,还包括:

若第一累加值和第二累加值的差大于预设的第四阈值,则表示所述目标节点为作恶节点;所述预设的第四阈值大于预设的第三阈值。

或者说,若嫌疑节点的第一累加值和第二累加值的差大于预设的第四阈值,则表示所述嫌疑节点为作恶节点;所述预设的第四阈值大于预设的第三阈值。

针对情况二、进一步的,还包括:

计算每个嫌疑节点连续未选中直至被选中的概率,并根据每个嫌疑节点连续未选中直至被选中的概率确定作恶节点。

举例说明:参考如下的公式10),表示每个嫌疑节点连续未选中直至被选中的概率的计算方法:

其中,k表示被选中为选举人的数量,p

进一步的,可以将每个嫌疑节点连续未选中直至被选中的概率值进行比较,并将连续未选中直至被选中的概率值较大的前N个嫌疑节点作为作恶节点。

本实施例中,通过概率计算的方式确定共识阶段是否存在节点恶意不参与共识的行为,并在检测到存在节点恶意不参与共识的行为的情况下,对目标节点每个轮次的选中为选举人的概率进行累加,得到第一累加值;从目标节点加入共识的第一轮次开始,对目标节点每个轮次的选中为选举人的次数进行累加,得到第二累加值;基于第一累加值和第二累加值的差与预设的第三阈值的关系,确定所述目标节点是否为嫌疑节点;从嫌疑节点中选取作恶节点。由此实现了识别恶意不参与共识的恶意节点的目的,避免了恶意节点对后续共识过程的影响,从而进一步的提升了共识过程的安全性和可靠性。

实施例3:

参考图4,示出了本发明实施例3提供的一种共识节点的状况评估方法的流程示意图,在本实施例中,该方法包括:

S301:接收上一个区块的共识交易信息;

本实施例中,当前区块i会包含上一个区块i-1的共识交易信息。其中,共识交易信息是由共识节点将区块i-1共识过程中提交的VRF信息(区块提议、区块投票和区块确认)进行聚合打包后生成的,表示为BVM

S302:解析所述上一个区块的共识交易信息,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点;

本实施例中,识别共识节点是否为离线状态的过程,包括:

确定目标节点从第一区块到第二区块的参与共识的情况信息;所述第一区块为预设的初始区块,所述第二区块的区块号大于所述第一区块的区块号;

基于目标节点从第一区块到第二区块的参与共识的情况信息,预测目标节点从第二区块到第三区块的参与共识的次数,得到第一预测值;所述第三区块产生在所述第二区块之后,且所述第三区块的区块号与所述第二区块的区块号和预设的第一阈值有关;

统计所述目标节点从第二区块到第三区块的期望参与共识的次数,得到第一期望值,统计所述目标节点从第二区块到第三区块的实际参与共识的次数,得到第一实际值;

若所述第一期望值、第一实际值和第一预测值的关系满足预设的第一条件,则表示所述目标节点处于离线状态。

具体的,识别共识节点是否为离线状态的过程,参照上述实施例1公开的内容。

本实施例中,识别共识节点是否为恶意不参与共识状态的过程,包括:

若目标轮次的共识阶段的共识失败,统计在目标轮次的共识阶段中被选中为选举人的节点的数量,计算多个节点被选中为选举人的概率;所述多个节点的数量与被选中为选举人的节点的数量一致;

获取第二阈值,若被选中为选举人的节点的数量、所述多个节点被选中为选举人的期望和第二阈值之间的关系满足预设的第二条件,则表示本轮共识阶段存在恶意不参与共识的共识节点;

从目标节点加入共识的第一轮次开始,对目标节点每个轮次的选中为选举人的概率进行累加,得到第一累加值;

从目标节点加入共识的第一轮次开始,对目标节点每个轮次的选中为选举人的次数进行累加,得到第二累加值;

基于第一累加值和第二累加值的差与预设的第三阈值的关系,确定所述目标节点是否为嫌疑节点;

从嫌疑节点中选取作恶节点;所述作恶节点的状态为恶意不参加选举的状态。

具体的,识别节点是否为恶意不参与共识状态的过程,参照上述实施例2公开的内容。

S303:若目标节点的状态信息为离线状态或者为恶意不参与共识的状态,则剔除所述目标节点,得到共识节点集合;所述目标节点为所述共识交易信息中参与共识的节点中的任意一个;

S304:基于所述共识节点集合,执行当前区块的共识交易。

本实施例中,当目标节点为离线状态或者为恶意不参与共识的状态,则剔除目标节点,那么当前区块的参与共识的节点的数量会发生变化。

举例说明:若处于离线状态或者处于恶意不参与共识的状态的共识节点为m个,当前区块的参与共识的节点的数量为n,那么剔除目标节点后下一区块参与共识的节点的数量为n-m个。

本实施例中,在执行当前区块的共识交易之前,先对上一个区块的共识交易进行解析,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点,若目标节点的状态信息为离线状态或者为恶意不参与共识的状态,则剔除目标节点,之后基于所述共识节点集合,执行当前区块的共识交易。由此通过对上一个区块的共识交易信息进行解析的方式,确定了是否存在离线状态或恶意不参与共识的状态的共识节点,从而剔除离线状态或恶意不参与共识的状态的共识节点,由此,避免了离线状态或恶意不参与共识的状态的共识节点对下一个共识阶段的影响,提升了共识阶段的安全性和可靠性。

进一步的,响应于节点加入共识的指令,在当前区块的共识交易之前,在所述共识节点集合中加入节点。

由此,在执行当前区块的共识交易之前,可以先执行节点的加入或者退出共识的操作。

并且,本实施例中,能够在当前区块执行共识交易前剔除前一个区块共识过程中有问题的共识节点,并得到剔除了有问题节点的共识节点集合,并在得到了共识节点集合后,执行当前区块的共识交易。由此,避免了现有技术中基于VRF算法的共识机制必须引入时间纪元的逻辑,也就避免了只能在一个时间纪元后才能执行节点剔除或者加入的操作逻辑,进而避免了存在问题的共识节点对当前区块的共识过程产生不利的影响,提升了共识阶段的安全性和可靠性。

实施例4:

参考图5,示出了本发明实施例提供的一种参与共识的节点的状态评估装置的结构示意图,在本实施例中,该装置包括:

接收单元401,用于接收上一个区块的共识交易信息;

解析单元402,用于解析所述上一个区块的共识交易信息,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点;

剔除单元403,用于若目标节点的状态信息为离线状态或者为恶意不参与共识的状态,则剔除所述目标节点,得到共识节点集合;所述目标节点为所述共识交易信息中参与共识的节点中的任意一个;

共识交易执行单元404,用于基于所述共识节点集合,执行当前区块的共识交易。

可选的,所述解析单元,包括:

第一确定子单元,用于确定目标节点从第一区块到第二区块的参与共识的情况信息;所述第一区块为预设的初始区块,所述第二区块的区块号大于所述第一区块的区块号;

预测子单元,用于基于目标节点从所述第一区块到所述第二区块的参与共识的情况信息,预测目标节点从所述第二区块到第三区块的参与共识的次数,得到第一预测值;所述第三区块的区块号大于所述第二区块的区块号,且所述第三区块的区块号与所述第二区块的区块号和预设的第一阈值有关;

第一统计子单元,用于统计所述目标节点从所述第二区块到所述第三区块的期望参与共识的次数,得到第一期望值,统计所述目标节点从所述第二区块到所述第三区块的参与共识的实际次数,得到第一实际值;

第二确定子单元,用于若所述第一期望值、和第一预测值的关系满足预设的第一条件,则表示所述目标节点处于离线状态。

可选的,所述预测子单元,包括:

第一预测子单元,用于基于目标节点从所述第一区块到所述第二区块的期望参与共识的次数和实际参与共识的次数、以及预设的第一阈值,预测目标节点从第一区块到第三区块的参与共识的次数,得到第二预测值;

第一计算子单元,用于依据所述第二预测值和所述目标节点从第一区块到第二区块的实际参与共识的次数,计算第一预测值。

可选的,所述第一条件,包括:

第一期望值大于等于第一预测值,且所述第一实际值等于零。

可选的,所述解析单元,包括:

第二统计子单元,用于若目标轮次的共识阶段的共识失败,统计在目标轮次的共识阶段被选中为选举人的节点的数量,并计算多个节点被选中为选举人的概率;所述多个节点的数量与被选中为选举人的节点的数量一致;

第二计算子单元,用于计算所述多个节点被选中为选举人的概率的期望;

第三确定子单元,用于获取第二阈值,若被选中为选举人的节点的数量、所述多个节点被选中为选举人的概率的期望和第二阈值之间的关系满足预设的第二条件,则表示本轮次的共识阶段存在恶意不参与共识的共识节点;

第一累加子单元,用于从目标节点加入共识的第一轮次开始,对目标节点每个轮次的被选中为选举人的概率进行累加,得到第一累加值;

第二累加子单元,用于从目标节点加入共识的第一轮次开始,对目标节点每个轮次的被选中为选举人的次数进行累加,得到第二累加值;

第四确定子单元,用于基于第一累加值和第二累加值的差与预设的第三阈值的关系,确定所述目标节点是否为嫌疑节点;

选取子单元,用于从嫌疑节点中选取作恶节点。

可选的,所述第三确定子单元,包括:

第三计算子单元,用于计算多个节点被选中为选举人的标准差;

第四计算子单元,用于依据所述多个节点被选中为选举人的标准差计算第二阈值。

可选的,所述预设的第二条件包括:

所述被选中为选举人的节点的数量小于所述多个节点被选举为选举人的概率的期望和第二阈值的差。

可选的,所述选取子单元,包括:

第一选取子单元,用于若嫌疑节点的第一累加值和第二累加值的差大于预设的第四阈值,则表示所述嫌疑节点为作恶节点;所述预设的第四阈值大于预设的第三阈值。

可选的,所述选取子单元,包括:

第五计算子单元,用于计算每个嫌疑节点连续未选中直至被选中的概率;

第二选取子单元,用于根据每个嫌疑节点连续未选中直至被选中的概率确定作恶节点。

通过本实施例的装置,当前区块在执行当前共识交易之前,先对上一个区块的共识交易进行解析,确定是否存在处于离线状态或恶意不参与共识的状态的共识节点,若目标节点的状态信息为离线状态或者为恶意不参与共识的状态,则剔除目标节点,得到共识节点集合,之后基于该共识节点集合,执行当前区块的共识交易。由此通过对上一个区块的共识交易信息进行解析的方式,确定了是否存在离线状态或恶意不参与共识的状态的共识节点,从而剔除离线状态或恶意不参与共识的状态的共识节点,由此,避免了离线状态或恶意不参与共识的状态的共识节点对下一个共识阶段的影响,提升了共识阶段的安全性和可靠性。

实施例5

参考图6,示出了本发明实施例公开的一种电子设备的结构示意图,在本实施例中,该电子设备包括:

存储器501和处理器502;

所述存储器501用于存储程序,所述处理器502用于在执行所述存储器存储的程序时,执行上述实施例1、实施例2和实施例3所述的参与共识的节点的状况评估方法。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

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

技术分类

06120113791305