CN117997511B - 一种基于节点服务评分的区块链共识方法 - Google Patents
一种基于节点服务评分的区块链共识方法 Download PDFInfo
- Publication number
- CN117997511B CN117997511B CN202410397114.8A CN202410397114A CN117997511B CN 117997511 B CN117997511 B CN 117997511B CN 202410397114 A CN202410397114 A CN 202410397114A CN 117997511 B CN117997511 B CN 117997511B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- verification
- service
- committee
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012795 verification Methods 0.000 claims abstract description 79
- 230000007246 mechanism Effects 0.000 claims abstract description 22
- 238000004891 communication Methods 0.000 claims abstract description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 230000006399 behavior Effects 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000007423 decrease Effects 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 3
- 230000010485 coping Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于节点服务评分的区块链共识方法。包括三个阶段:一阶段将区块链中的所有节点划分为节点个数相近的若干个区域;通过节点服务评分机制对各个节点进行服务分数评判;二阶段根据服务分数的高低将节点分为委员会节点、验证节点和普通节点,普通节点不参与区块链上的共识活动;所述委员会节点用于提名生成新区块的节点和验证新区块,验证节点用于验证交易。三阶段生成新区块并对其进行验证和广播。本发明对区块链中的节点划分区域,分配不同的角色,从多方面评估节点的可信度,增强了区块链网络的鲁棒性;同时也降低了共识时间和通信开销,提高了整个网络的吞吐量。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种基于节点服务评分的区块链共识方法。
背景技术
区块链是一种分布式账本技术,近年来因其去中心化、不可篡改和可追溯等特性而受到广泛关注。区块链网络被广泛用于各个领域,然而,由于能耗过高、效率低下等问题,区块链也暴露出一些缺陷。大部分问题都源于底层的共识算法。
共识算法是基于区块链的分布式系统的核心,它规定了如何就区块内的交易达成一致。一般的流程是共识算法提名主节点,主节点按照定义的程序流程创建新区块。现有的常见共识算法包括工作量证明、权益证明、委托权益证明等。然而,它们达成共识的速度很慢,而且耗费大量时间和资源。虽然节点验证可以防止攻击者随意更改状态,但仍无法防止区块链分叉成两个或多个合法的分支。同时,节点可能会受到恶意节点的利诱变成恶意节点期望的状态,而不是和其他正常节点相同的状态。因此,区块链网络还必须能够确定链上节点的状态,防止它们受到少数恶意节点的控制。
CN116389504A公开了一种基于区块链的身份认证快速共识方法,但与本发明相比,存在如下区别:首先,本发明以服务评分机制为核心,通过评估链上节点的行为选取可靠节点参与共识,是一个考察筛选的过程,重点在于节点诚实,共识结果可信。基于区块链的身份认证快速共识方法以身份认证为核心,通过共识验证算法和其身份签名进行节点的快速共识,是一个数据加密和解密的过程,重点在于能快速且安全地达成共识。其次,本发明以节点分类为切入点,对不同分数的节点赋予不同的角色任务,通过减少工作量和参与节点数缩短节点间的共识时间。基于区块链的身份认证快速共识方法以网络切片为着力点,聚集区块链优质节点在同一网络片区,提供良好交易环境,是内部共识的必要条件。再者,基于区块链的身份认证快速共识方法以信任监督机制为保障,通过每个分组设立监督节点加强其它节点进行向下签发的安全性,确保区块链片区的交易数据传输安全。本发明以奖惩机制为保障,通过奖励维护区块链正常运作的诚实节点,惩罚破坏正常运作的恶意节点,促使节点做出正确行为,增强区块链鲁棒性的同时还能减少区块链无效负载,提升网络承载能力。
服务评分机制是一种用于评价节点服务的机制。在区块链网络中,评分功能增强了每个成员之间的相互信任,促进了节点之间的有效交流。实际上,评分和区块链可以相互结合:评分可以用作激励措施,而区块链反过来又可以确保评分记录的安全。
因此,如何将服务评分机制应用至区块链网络中以提升共识效率,降低通信开销成为本领域亟待解决的难题。
发明内容
发明目的:本发明的目的在于提供一种基于节点服务评分的区块链共识方法。它依赖于节点的服务分数来实现共识。该方法可以自动维护服务评分列表并根据分数采取相应措施。每个节点都会保留一个包含服务评分记录的账本,从而保证交易信息的一致性。与工作量证明等其他共识算法不同,本发明使用分数作为激励机制,由于无需解决计算难题,因此具有低成本的优势,同时,区块链的加密结构保证了评分记录的完整性和可靠性。
技术方案:本发明的一种基于节点服务评分的区块链共识方法,包括如下步骤:
步骤1、根据区块链中节点数量将节点划分成若干个区域;
步骤2、利用节点服务评分机制对每一个区域中的节点进行服务分数评判;
步骤3、基于服务评分机制评判的结果,根据服务分数将节点分类成委员会节点、验证节点和普通节点;
步骤4、利用验证节点对区块链中的待验证交易进行验证,通过验证的交易会被记录在新区块中;
步骤5、根据委员会节点的分数高低,提名领导者,用于打包通过验证的交易并生成新区块,其余的委员会节点对新区块进行验证;
步骤6、新区块在通过验证后会被委员会节点接受并在各自所属的区域中进行广播,所有节点都完成新区块同步后,共识达成。
进一步的,步骤1具体为:根据区块链中节点数量将节点划分成若干个区域,节点越多,划分的区域数越多,同一个区域的节点服务评分相近,后续加入区块链的节点会选择进入不同的区域。
进一步的,步骤2具体为:服务分数由三个指标构成,包括:节点的服务时长、节点的错误率和节点的贡献因子,其中,节点的服务时长由最新区块的时间戳、节点进入区块链网络的时间戳和节点离线时长这三个数据计算得出;节点的错误率由节点尝试生成新区块的次数和生成失败的次数计算得出;节点的贡献因子由节点在每一轮共识中的表现决定,如果领导者和验证节点正确地完成了各自的工作,其贡献因子增加,相反,其恶意行为会导致贡献因子减少;对于未被分配任务的普通节点,指标保持不变。
进一步的,所述节点的服务时长:这项指标指的是节点在区块链中的有效工作时长,由最新区块的生成时间戳、节点进入区块链网络的时间戳和节点离线时长这三个数据计算得出,计算公式如下:
其中,ST为服务时长,T latest 表示最新区块的生成时间戳,T ingress 表示节点进入系统的时间戳,T offline 是节点离线时长;
所述节点的错误率:对不同角色的节点,节点的错误率有不同的计算方法;对于委员会节点,节点的错误率指的是节点被提名为领导者并尝试生成新区块的前提下,生成新区块失败的次数占尝试生成新区块次数的比例,由节点尝试生成新区块的次数和生成失败的次数计算得出;对于验证节点,节点的错误率指的是节点负责交易验证的前提下,验证结果错误的次数占验证次数的比例;由验证的次数和结果错误的次数计算得出;通用计算公式如下:
其中,对于委员会节点:ER为节点错误率,N表示节点尝试创建新块的总次数,n i 表示领导者i失败的次数;对于验证节点:ER为节点错误率,N表示节点验证交易的总次数,n i 表示验证节点i发生验证结果错误的次数;
所述节点的贡献因子:它由节点在每一轮共识中的表现决定,如果领导者和验证节点正确地完成各自的工作,其贡献因子增加1,相反,其恶意行为会导致贡献因子减少1;对于未被分配任务的普通节点,这一指标保持不变;假设q∊{-1,0,1},节点在第j轮共识中的贡献因子CoF计算公式如下:
其中,CoF j 为节点在第j轮共识中的贡献因子,CoF j-1 表示节点在第j-1轮共识中的贡献因子,q是取值为-1,0或1的变量;
为减少节点所属不同区域的影响,为三个指标分配了权重α1,α2,和α3,每个区域的权重不同;总服务时间大于区域平均时间的区域,服务时长ST的权重会小于区域均值,错误率和贡献因子也是相同,节点i在区域j中的服务分数计算公式如下:
其中,为节点i在区域j中的服务分数;当节点的服务分数小于设定的阈值时,节点将被移出区块链网络。
进一步的,步骤3具体为:根据服务评分机制评判的结果,将节点分类成不同的角色,分为委员会节点、验证节点和普通节点;节点的定义如下:
其中ID、GoS和T分别代表节点的标识符、服务分数和角色类型;节点按服务分数GoS从高到低排列,最高的X%节点被提名为委员会节点,随后的Y%节点为验证节点,最后的Z%节点是服务分数低于这两类节点的普通节点;X、Y和Z满足等式X+Y+Z=100;其类型T分别用a、v和c表示,分别代表委员会节点、验证节点和普通节点;
委员会节点:所有委员会节点组成一个委员会;当前一轮共识的领导者从委员会中选出,领导者会打包在它任期内产生的交易并记录在新区块中;委员会中的其余节点负责验证新区块;
验证节点:此类节点用于验证网络中产生的交易是否合法;服务分数低于委员会节点,但高于普通节点,是可信任的节点;
普通节点:普通节点是那些未被选作委员会节点或验证节点的节点,服务分数低于委员会节点和验证节点,可信度不高,不参与共识过程。
进一步的,步骤4具体为:利用验证节点对区块链中的待验证交易进行验证,通过验证的交易会被记录在新区块中,验证节点的服务分数较委员会节点低,但比普通节点高,因而可信任,将传统共识算法各个节点验证交易优化为部分节点验证交易,减少验证次数,降低共识时间和通信开销。
进一步的,步骤5具体为:根据委员会节点的分数高低,提名领导者,用于打包通过验证的交易并生成新区块,其余的委员会节点对新区块进行验证;包括以下步骤:每当区块链网络运行到生成区块的时间点时,每个节点都会使用服务评分机制更新节点的服务分数;然后,节点将根据分数从高到低进行排序,生成服务分数列表,排名列表首位的节点提名为当前共识阶段的领导者;如果多个节点具有相同的服务分数,那么它们将根据节点的服务时间进行排序,服务时间越长,优先级越高;领导者将已验证通过的交易打包,并生成新区块;为应对网络问题造成的极端情况,设置了一个窗口期;节点在窗口期内等待领导者创建和广播新区块;如果窗口期结束时没有收到新区块,分数列表中的下一个节点将负责生成区块;其余委员会节点对生成的新区块进行验证,如果验证成功,委员会节点会把新区块添加到本地区块链副本中,如果验证失败,新区块不会被更新到区块链中。
本发明还公开一种计算机装置/设备/系统,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现本发明方法的步骤。
本发明还公开一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明方法的步骤。
本发明还公开一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明方法的步骤。
有益效果:与现有技术相比,本发明具有如下显著优点:
本发明提出了一种基于节点服务评分的共识算法。所述节点服务评分是一种节点评估机制,用于评估区块链中的节点行为。在所述基于节点服务评分的共识算法中,节点被划分成若干个区域,简化了区块广播过程,恶意节点发起日蚀攻击的难度更大,减少了节点的工作量,区域内节点只需要维护区域内节点的服务分数。主节点的提名基于其服务质量,而非其资产或计算能力,这可以防止恶意节点通过控制大量资源来主导提名过程。它确保所有诚实的节点都能平等地竞争出块权,并且省去了工作量证明机制PoW中的随机数计算,节点评估指标也更全面,使提名的主节点具有最佳的可信度,增强了区块链网络的鲁棒性,提升了共识效率,降低了通信开销。
同时,为了进一步增强区块链的鲁棒性,这项工作在区块链中引入了一种淘汰机制,其他节点可以将得分低于阈值的恶意节点移除。与其他选择边缘化节点但仍保留节点的共识算法相比,它减少了区块链中失效节点的数量,提高了网络的承载能力。
附图说明
图1为本发明一种基于节点服务评分的共识算法的共识阶段示意图;
图2为本发明一种基于节点服务评分的共识算法的流程图;
图3为本发明与现有的共识算法PoW、PoS、SG-PBFT、BRBC在共识延迟指标上的实验数据对比;
图4为本发明与现有的共识算法PoW、PoS、SG-PBFT、BRBC在吞吐量指标上的实验数据对比图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
需要说明的是:以下实施例中的节点数量、划分区域数量和变量X,Y,Z,α1,α2,和α 3的取值均为基于实际情况的选择,仅是为了便于描述本发明和简化描述,而不是指示或暗示所示的数量或变量必须具有相应的取值,因此不能理解为对发明的限制。
下面通过附图以及具体实施例对本发明做进一步详细地描述。
应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
本实施例介绍一种基于节点服务评分的共识算法,如图1、2所示,主要包括如下步骤:
S1、给定区块链网络中共有12个节点,在新一轮共识开始前,对所有节点按照上一轮服务分数划分区域,共划分4个区域,每个区域3个节点,节点的初始服务分数都为6。
S2、新一轮共识开始后,每一个区域利用节点服务评分机制对区域内的所有节点进行服务分数评判。
步骤S2的具体操作如下:
步骤S21、计算节点服务时长。节点服务时长指的是节点在区块链中的有效工作时长,由最新区块的生成时间戳、节点进入区块链网络的时间戳和节点离线时长这三个数据计算得出,计算公式如下:
其中,ST为服务时长,T latest 表示最新区块的生成时间戳,T ingress 表示节点进入系统的时间戳。T offline 是节点离线时长。
步骤S22、计算节点错误率。对于一个节点,在之前共识轮次中可能担任了不同角色,因此节点错误率对不同角色有不同的计算方法。作为委员会节点时,节点错误率指的是节点被提名为领导者并尝试生成新区块的前提下,生成新区块失败的次数占尝试生成新区块次数的比例,由节点尝试生成新区块的次数和生成失败的次数计算得出;作为验证节点时,节点错误率指的是节点进行交易验证的前提下,验证结果错误的次数占验证次数的比例,由验证的次数和结果错误的次数计算得出。它们的通用计算公式如下:
其中,对于委员会节点:ER为节点错误率,N表示节点尝试创建新区块的总次数,n i 表示领导者i失败的次数;对于验证节点:ER为节点错误率,N表示节点验证交易的总次数,n i 表示验证节点i发生验证结果错误的次数。对于担任过不同角色的节点,它的总错误率由所有错误情况相加得出。
步骤S23、计算节点贡献因子。它由节点在每一轮共识中的表现决定。对于领导者,如果正确地生成了合法新区块,它的贡献因子就会增加1,相反,如果没有正确生成合法新区块,它的贡献因子就会减少1;对于验证节点,如果正确地验证了交易,它的贡献因子就会增加1。相反,它们的恶意行为会导致贡献因子减少1。对于不参与共识过程的普通节点,这一指标保持不变。假设q∊{-1,0,1},节点在第j轮共识中的贡献因子CoF计算公式如下:
其中,CoF j 为节点在第j轮共识中的贡献因子,CoF j-1 表示节点在第j-1轮共识中的贡献因子,q是取值为-1,0或1的变量。
步骤S24、为三个指标分配权重α1,α2,和α3,权值依据区域中节点的上述三项指标情况设置。在本实施例中,一共四个区域,每个区域的总服务时长、错误率和贡献因子相同。三个指标的权重α1,α2,和α3分别设置为0.4,0.3,0.3。节点i在区域j中的服务分数计算公式如下:
其中,为节点i在区域j中的服务分数,i∊[1, 12],j∊[1, 4]。本实施例的阈值为初始值6,当节点的服务分数小于设定的阈值时,节点将被移出区块链网络。
S3、根据服务评分机制给出的服务分数结果,将节点分类成不同的角色。节点的一般定义如下:
其中ID、GoS和T分别代表节点的标识符、服务分数和角色类型。节点按服务分数GoS从高到低排列。
在本实施例中,步骤S3的具体操作如下:
步骤S31、将每个服务分数映射到对应的节点地址,根据分数对节点进行排序。选取排名前30%的节点为委员会节点,委员会节点A表示如下:
步骤S32、选取排名列表中间的40%节点为验证节点,验证节点V表示如下:
步骤S33、排名列表最后30%节点是普通节点。普通节点C表示如下:
具体到本实施例,则每个区域中有一个委员会节点、一个验证节点和一个普通节点。
S4、每个区域的验证节点对区块链中的待验证交易进行验证,验证节点对交易进行签名代表验证通过,获得半数以上验证节点通过的交易会在之后被放入新区块中。
S5、对所有委员会节点分数进行排名,提名领导者,用于打包通过验证的交易并生成新区块,其余的委员会节点对新区块进行验证。步骤S5的具体操作包括:
步骤S51、首先,在需要生成新区块的时间节点,各节点从本地区块链副本中获取其区域内所有节点的服务分数,
其次,分数被映射到相应的节点地址,随后根据分数对节点进行排序。如果多个节点具有相同的服务分数,那么它们将根据节点的服务时长进行优先排序。
最后,从排名前30%的委员会中选出服务得分最高的节点作为本轮的领导者。委员会的其他成员会验证本轮领导者的身份,并根据验证结果决定是否接受领导者生成的新区块。
步骤S52、所有委员会成员相互验证,以判断对方的地址是否与委员会成员的地址一致。当前的领导者将来自所有区域、经过验证节点同意的交易打包进一个新的区块,并在该区块上签名以证明其合法性。随后,该区块被添加到所有委员会节点的本地区块链副本中,并由这些节点向各自的区域广播。
如果领导者未能在其任期内正确创建一个区块,所有节点都会收到通知,领导者节点的错误率和贡献因子会随之更新,其在下一轮共识中的服务得分会降低。
步骤S53、委员会的每个节点将对生成的新区块验证。验证新区块中是否包含领导者的签名,签名所属的领导者是否是服务分数列表排名第一的节点,以及每笔交易是否都有来自验证节点的签名。验证成功后,新区块成为区块链的最新合法区块,本轮共识结束。
如果验证失败,将更新视图并重新选举领导者,直到本轮共识完成。
S6、所述新区块通过验证后,委员会的其余节点接受此新区块,将新区块添加到本地区块链副本中,并在它们各自所属的区域中进行广播。所有节点都完成新区块同步后,本轮共识达成。下一轮共识将在下一生成新区块的时间点开启。
本发明方法提出了一种全新的区块链共识算法,一种基于节点服务评分的区块链共识算法,解决了现有的共识算法效率低、计算开销大、共识延迟高的问题,通过细化节点的选择,并分别赋予不同角色任务的方式,提升区块链平台安全性的同时,提高链上交易的处理效率。对于用于图像版权保护的区块链环境,本发明减少了节点之间的通信次数,能更快地达成共识,降低了版权保护的成本;同时,节点服务评分机制避免了链上出块权的集中化,提高了区块链的去中心化程度;其次,驱逐恶意节点提升了网络的承载力,使得区块链尽可能多地保留诚实节点,剔除不良节点,增强了版权信息的可靠性。本发明可以作为基于区块链的分布式应用的共识实现方式,也可以作为区块链网络中节点之间的共识算法,更好地解决分布式带来的一致性问题。
图3和图4展示了本发明与现有的几种共识方法在共识延迟和吞吐量两项指标上的实验对比。每次模拟实验持续1小时,重复20次。我们以共识延迟的平均值作为实验数据,以确保实验结果的准确性。
如图3所示,本发明的共识延迟明显低于其余四种共识算法。当节点数为500时,本发明的平均共识延迟为52ms,而其余四种共识算法的平均共识延迟分别为 598 ms、192ms、130ms和110ms。当节点数为1000时,本发明的平均延迟为60ms,而其余四种共识算法的平均延迟为610 ms、310 ms、325ms和170 ms。
在吞吐量TPS方面,该指标随节点数量的变化而变化,如图4所示。当节点数在[100,200]范围内时,除工作量证明PoW共识算法外,其他共识算法的吞吐量都很高。节点数量的增加提高了区块链处理交易的能力。PoW 需要依靠硬件运算来计算数学谜题,因此吞吐量TPS随节点数量的变化较为平缓。当节点数增加并超过200个时,即使有更多节点处理交易,吞吐量也会因需要大量节点相互通信而下降。在PBFT基础上改进的SG-PBFT,由于受通信开销增加的影响更大,吞吐量也有所下降。因此,当节点数量在200个左右时,基于本发明的区块链系统的吞吐量达到了最优值,随后吞吐量有所下降,但始终明显高于其他四种共识算法。
实验结果表明,在共识延迟和吞吐量方面,本发明比其他四种方法具有明显优势,相同时间内处理的交易数量更多,体现出本发明不仅效率更高,而且所需的共识时间更短。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (7)
1.一种基于节点服务评分的区块链共识方法,其特征在于,包括如下步骤:
步骤1、根据区块链中节点数量将节点划分成若干个区域;
步骤2、利用节点服务评分机制对每一个区域中的节点进行服务分数评判;
步骤3、基于服务评分机制评判的结果,根据服务分数将节点分类成委员会节点、验证节点和普通节点;
步骤4、利用验证节点对区块链中的待验证交易进行验证,通过验证的交易会被记录在新区块中;
步骤5、根据委员会节点的分数高低,提名领导者,用于打包通过验证的交易并生成新区块,其余的委员会节点对新区块进行验证;
步骤6、新区块在通过验证后会被委员会节点接受并在各自所属的区域中进行广播,所有节点都完成新区块同步后,共识达成;
步骤2具体为:服务分数由三个指标构成,包括:节点的服务时长、节点的错误率和节点的贡献因子,其中,节点的服务时长由最新区块的时间戳、节点进入区块链网络的时间戳和节点离线时长这三个数据计算得出;节点的错误率由节点尝试生成新区块的次数和生成失败的次数计算得出;节点的贡献因子由节点在每一轮共识中的表现决定,如果领导者和验证节点正确地完成了各自的工作,其贡献因子增加,相反,其恶意行为会导致贡献因子减少;对于未被分配任务的普通节点,指标保持不变;
所述节点的服务时长:这项指标指的是节点在区块链中的有效工作时长,由最新区块的生成时间戳、节点进入区块链网络的时间戳和节点离线时长这三个数据计算得出,计算公式如下:
其中, ST为服务时长,T latest 表示最新区块的生成时间戳,T ingress 表示节点进入系统的时间戳,T offline 是节点离线时长;
所述节点的错误率:对不同角色的节点,节点的错误率有不同的计算方法;对于委员会节点,节点的错误率指的是节点被提名为领导者并尝试生成新区块的前提下,生成新区块失败的次数占尝试生成新区块次数的比例,由节点尝试生成新区块的次数和生成失败的次数计算得出;对于验证节点,节点的错误率指的是节点负责交易验证的前提下,验证结果错误的次数占验证次数的比例;由验证的次数和结果错误的次数计算得出;通用计算公式如下:
其中,对于委员会节点:ER为节点错误率, N 表示节点尝试创建新块的总次数,n i 表示领导者 i 失败的次数;对于验证节点:ER为节点错误率,N 表示节点验证交易的总次数,n i 表示验证节点i发生验证结果错误的次数;
所述节点的贡献因子:它由节点在每一轮共识中的表现决定,如果领导者和验证节点正确地完成各自的工作,其贡献因子增加1,相反,其恶意行为会导致贡献因子减少1;对于未被分配任务的普通节点,这一指标保持不变;使q∊{-1,0,1},节点在第j轮共识中的贡献因子CoF计算公式如下:
其中,CoF j 为节点在第j轮共识中的贡献因子,CoF j-1 表示节点在第j-1轮共识中的贡献因子,q是取值为-1,0或1的变量;
为减少节点所属不同区域的影响,为三个指标分配了权重α1,α2,和α3,每个区域的权重不同;总服务时间大于区域平均时间的区域,服务时长ST的权重会小于区域均值,错误率和贡献因子也是相同,节点i在区域j中的服务分数计算公式如下:
其中,为节点i在区域j中的服务分数;当节点的服务分数小于设定的阈值时,节点将被移出区块链网络;
步骤3具体为:根据服务评分机制评判的结果,将节点分类成不同的角色,分为委员会节点、验证节点和普通节点;节点的定义如下:
其中ID、GoS 和T分别代表节点的标识符、服务分数和角色类型;节点按服务分数GoS从高到低排列,最高的X%节点被提名为委员会节点,随后的Y%节点为验证节点,最后的Z%节点是服务分数低于这两类节点的普通节点;X、Y和Z满足等式X+Y+Z =100;其类型T分别用a、v和c表示,分别代表委员会节点、验证节点和普通节点;
委员会节点:所有委员会节点组成一个委员会;当前一轮共识的领导者从委员会中选出,领导者会打包在它任期内产生的交易并记录在新区块中;委员会中的其余节点负责验证新区块;
验证节点:此类节点用于验证网络中产生的交易是否合法;服务分数低于委员会节点,但高于普通节点,是可信任的节点;
普通节点:普通节点是那些未被选作委员会节点或验证节点的节点,服务分数低于委员会节点和验证节点,可信度不高,不参与共识过程。
2.根据权利要求1所述的一种基于节点服务评分的区块链共识方法,其特征在于,步骤1具体为:根据区块链中节点数量将节点划分成若干个区域,节点越多,划分的区域数越多,同一个区域的节点服务评分相近,后续加入区块链的节点会选择进入不同的区域。
3.根据权利要求1所述的一种基于节点服务评分的区块链共识方法,其特征在于,步骤4具体为:利用验证节点对区块链中的待验证交易进行验证,通过验证的交易会被记录在新区块中,验证节点的服务分数较委员会节点低,但比普通节点高,因而可信任,将传统共识算法各个节点验证交易优化为部分节点验证交易,减少验证次数,降低共识时间和通信开销。
4.根据权利要求1所述的一种基于节点服务评分的区块链共识方法,其特征在于,步骤5具体为:根据委员会节点的分数高低,提名领导者,用于打包通过验证的交易并生成新区块,其余的委员会节点对新区块进行验证;包括以下步骤:每当区块链网络运行到生成区块的时间点时,每个节点都会使用服务评分机制更新节点的服务分数;然后,节点将根据分数从高到低进行排序,生成服务分数列表,排名列表首位的节点提名为当前共识阶段的领导者;如果多个节点具有相同的服务分数,那么它们将根据节点的服务时间进行排序,服务时间越长,优先级越高;领导者将已验证通过的交易打包,并生成新区块;为应对网络问题造成的极端情况,设置了一个窗口期;节点在窗口期内等待领导者创建和广播新区块;如果窗口期结束时没有收到新区块,分数列表中的下一个节点将负责生成区块;其余委员会节点对生成的新区块进行验证,如果验证成功,委员会节点会把新区块添加到本地区块链副本中,如果验证失败,新区块不会被更新到区块链中。
5.一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求 1 所述方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求 1 所述方法的步骤。
7.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求 1 所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410397114.8A CN117997511B (zh) | 2024-04-03 | 2024-04-03 | 一种基于节点服务评分的区块链共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410397114.8A CN117997511B (zh) | 2024-04-03 | 2024-04-03 | 一种基于节点服务评分的区块链共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117997511A CN117997511A (zh) | 2024-05-07 |
CN117997511B true CN117997511B (zh) | 2024-06-18 |
Family
ID=90895483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410397114.8A Active CN117997511B (zh) | 2024-04-03 | 2024-04-03 | 一种基于节点服务评分的区块链共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117997511B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118381597B (zh) * | 2024-06-20 | 2024-08-30 | 北京航空航天大学 | 一种基于节点贡献值实现负载均衡的区块链分片方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131209B (zh) * | 2019-12-16 | 2022-06-28 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、系统、计算机设备及存储介质 |
CN112073483B (zh) * | 2020-08-28 | 2022-01-04 | 武汉大学 | 基于信誉与委员会背书机制的权威证明共识方法及系统 |
WO2022231072A2 (ko) * | 2021-04-29 | 2022-11-03 | 주식회사 이노블록 | 비-랜덤 합의체 증명 기반 블록 체인 네트워크를 이용한 랜덤 합의체 증명을 수행하는 뉴럴 합의체 기반의 블록체인 네트워크 시스템 |
CN113407632A (zh) * | 2021-06-26 | 2021-09-17 | 南京搜文信息技术有限公司 | 一种基于pbft的委托权益证明区块链共识算法 |
CN114499890B (zh) * | 2022-03-15 | 2023-09-15 | 南京信息工程大学 | 联盟链中基于节点分组的Raft PBFT两阶段共识方法 |
CN116566712A (zh) * | 2023-05-29 | 2023-08-08 | 河南大学 | 一种基于信任分数的物联网区块链共识方法 |
CN116527684B (zh) * | 2023-07-03 | 2023-09-05 | 江西农业大学 | 基于1+1+n中继共识委员会的多链信息交互方法 |
CN117635143A (zh) * | 2023-12-20 | 2024-03-01 | 北方工业大学 | 一种基于节点信誉评估的区块链多层DPoS共识方法 |
-
2024
- 2024-04-03 CN CN202410397114.8A patent/CN117997511B/zh active Active
Non-Patent Citations (2)
Title |
---|
农产品溯源区块链的源头数据验证机制研究;赵龙海等;《重庆理工大学学报(自然科学)》;20240229;第38卷(第2期);全文 * |
联盟链中实用拜占庭容错算法的改进;方燚飚等;《计算机工程与应用》;20220331;第58卷(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117997511A (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117997511B (zh) | 一种基于节点服务评分的区块链共识方法 | |
CN110163600B (zh) | 区块链系统及应用其的方法 | |
US11716199B2 (en) | Blockchain generation apparatus, blockchain verification apparatus, and program | |
US10790963B2 (en) | Blockchain generation apparatus, blockchain generation method, blockchain verification apparatus, blockchain verification method, and program | |
CN110611701B (zh) | 一种基于区块链的参数配置和交易处理方法 | |
CN109993004B (zh) | 基于信用机制的区块链自治方法及系统 | |
US20220067063A1 (en) | Apparatus and method for adaptively managing sharded blockchain network based on deep q network | |
CN113660125B (zh) | 一种基于随机可信委员会的共识方法及装置 | |
CN109447803B (zh) | 联盟链的记账方法、设备、联盟链及存储介质 | |
CN114402352A (zh) | 用于追踪并测量矿池中工作量证明贡献的方法和装置 | |
CN113452752A (zh) | 一种多域物联网场景下的信任管理、博弈方法、系统 | |
CN112862607A (zh) | 区块链共识机制实现方法、装置、设备及存储介质 | |
CN118118188A (zh) | 共识效率优化方法及系统 | |
CN109347877A (zh) | 区块链结构化存储控制方法 | |
CN111131184A (zh) | 一种区块链共识机制的自主调节方法 | |
Rana et al. | Free2shard: Adversary-resistant distributed resource allocation for blockchains | |
CN113672987A (zh) | PoW机制下分组式记账节点的选择方法及系统 | |
CN113379539B (zh) | 基于区块链的委托权益证明共识方法及装置 | |
Otsuki et al. | Impact of saving attacks on blockchain consensus | |
CN114866558A (zh) | 基于数字服务技术的区块链认证平台与方法 | |
CN112738196B (zh) | 区块链代表节点选取方法、装置、计算机设备和存储介质 | |
Nourmohammadi et al. | Sharding and its impact on fork probability | |
Junfeng et al. | Dynamic trust model based on extended subjective logic | |
Seradji et al. | A bayesian game of whitewashing in reputation systems | |
CN112866399B (zh) | 一种改进的pbft共识方法、装置、智能终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |