技术新讯 > 电子通信装置的制造及其应用技术 > 一种基于信誉和节点关键性的快速发布区块的共识方法  >  正文

一种基于信誉和节点关键性的快速发布区块的共识方法

  • 国知局
  • 2024-10-15 09:53:41

本发明涉及区块链,尤其涉及一种基于信誉和节点关键性的快速发布区块的共识方法。

背景技术:

1、 区块链技术拥有去中心化、防篡改、可追溯、可审计等特点, 使得其在数字货币、金融结算、公共服务、版权交易和物联网等领域都有很好的应用前景。但目前其领域核心的共识算法存在着资源消耗和时间成本过大以及交易吞吐量和共识达成率较低等问题, 限制了区块链技术的发展。

2、 pbft(practical byzantine fault tolerance)是联盟链中应用较广泛的共识算法,基于少数节点服从多数节点的原则,主节点发起提议其他节点进行确认,当超过三分之二的节点确认时,该提议被通过。传统pbft共识算法在一轮共识中包含预准备、准备、确认三个串行的阶段,其中预准备和准备阶段是保证所有节点按照相同的顺序执行所有有效的客户请求,确认阶段则是保证所有节点已经本地处理相关交易。然而,每轮共识的三个通信阶段都仅发布一个区块进行验证或投票,并且各阶段验证效率瓶颈取决于能使总认可投票数满足三分之二节点数的最后一个认证节点,共识效率较低并且无法有效激励每个节点利用自身的计算资源。其次,每轮共识都让所有节点参与,节点通信次数呈指数增长,当节点个数达到一定规模后,通信开销增长迅速。最后,恶意节点或非关键节点参与进共识,造成视图频繁切换或者无法有效达成共识,性能下降严重。

3、因此现有技术需要一种识别诚实节点和关键节点、能够快速发布区块的共识算法,保证系统安全性和可靠性,提高系统共识效率,提升系统的吞吐量。

技术实现思路

1、本发明的目的在于解决现有pbft算法节点消息通信机制复杂,节点计算资源浪费以及共识达成率低的问题,提供一种基于信誉和节点关键性的快速发布区块的共识方法。

2、为了解决上述问题,本技术提出了一种基于信誉和节点关键性的快速发布区块的共识方法,包括如下步骤:

3、 s1:筛选信誉值在信誉基础线及以上,且信誉值保持稳定或者积极上升的正向节点。

4、 s2:构建所有正向节点的通信与交易双层网络。计算所有的正向节点在两层网络中的综合关键性,排序并选取节点关键性前20%的作为共识节点构成本轮共识组。

5、 s3:主节点持续接收客户端发来的请求,并在本地制作连续的区块预制链,按照发布协议的规则决定每次可发布的区块数量,向共识组发布预制区块的完整信息,向非共识节点发布预制区块哈希值。

6、 s4:所有参与共识的节点持续接收主节点发来的区块,并在本地形成小型预制链,节点按照自身资源和能力进行区块验证,能力较强的验证完一个区块便发送对应区块的单区块准备消息给监督节点,能力较弱的区块可本地多验证几个连续区块在发送一个多区块准备消息。

7、 s5:当共识节点对预制链中某个区块进行验证后,判定是一个不合法区块,则向主节点、监督节点和冷备节点发送报警信息,当报警信息数量满足一定阈值,主节点降速至最开始发布区块的速度,监督节点收集不认可签名后广播从此区块开始的预制链作废并启用备份链,冷备节点则在收到一定数量报警信息后就从问题块重新构建备份预制链,并以发布初始速度发布到共识组中,共识节点接收并形成备份预制链。

8、 s6:监督节点持续接收各个共识节点发来的区块准备消息,选出当前预制链中达成共识组2/3认证数量的最大区块序号,并广播从上次认证的区块到此次区块的准备确认消息,开启此小段预制区块链的提交阶段。

9、 s7:共识节点持续接收监督节点发送的准备确认消息,对准备确认消息进行验证,并发送相应的区块提交消息;并行的验证预制链的后续区块,发送自身认可的预制区块的准备消息。

10、 s8:监督节点接收共识节点的区块提交消息,收集到满足2/3共识组数量的提交签名消息后,将此段已确认提交的合法小型预制链广播全网,将所有节点的共识状态更新,并回复客户端结果。

11、 s9:非共识节点接收监督节点发来的多个区块,按照区块序号排序存储,并验证所有共识节点的提交确认签名,对比之前主节点发布的区块哈希值和此段认证的哈希值,一致则接收,不一致则丢弃并向共识组成员请求正确区块。共识节点接收到监督消息发送的提交确认消息后,将对应区块写入本地区块链中。

12、 s10:在此轮共识周期结束前,任意共识节点都可发送一个共识结束请求,其他共识节点接收到结束请求后做好结束准备,监督节点接收到结束请求后规定结束区块并广播共识结束消息。同时,在本轮共识周期结束后根据各共识节点行为更新节点信誉分数。

13、优先地,所述步骤s1中,所述的信誉值需要多轮共识周期的积累,首次参与共识节点无所述的信誉值,选择前几名进入区块链网络的节点作为第一批共识组,当各节点经过一段时间信誉积累后,所述的信誉分值成阶梯状态分布,表现正常且拥有最多数量的一个信誉阶梯维持分数作为信誉基础线,能够维持在自身级别或者向上增长信誉值的节点作为所述的正向节点。

14、优先地,所述步骤s2中,每个有意维持自身信誉值的节点都会定期向系统更新自身和周围邻居信息状态,上一轮周期所有区块的交易都已确认,可以通过遍历区块获取节点的交易数据,步骤s1中选出了所述的正向节点集合,可以根据节点集的邻居信息、交易数据构建所述的通信与交易双层网络。在构建的所述的双层网络基础上,对处于两层网络中的某个正向节点的计算各层节点关键性,最后综合计算出所述的综合关键性,并进行最终排序,选取正向节点集中的前20%,这个比例可以根据正向节点个数进行调整,当正向节点个数偏少的时候适当提升比例可以使共识过程更稳定安全,同时,按照名次决定共识组中各个节点所担任的角色,第一名作为主节点,第二名作为监督节点,第三名和第四名分别为热备节点和冷备节点,其余节点为共识组成员。

15、优先地,所述步骤s3中,所述的主节点若非进行首轮共识,需要确认是否接收到上一轮共识组提交确认的最后一个区块,如果有遗漏需请求上一轮共识节点补齐,在此基础上开始制作所述的预制区块;所述的预制链是由还未经共识组确认提交的小型区块链,所述的预制区块为预制链中的一个块,所述的发布协议的规则具体指:

16、 (1)主节点维持一个发布窗口,发布窗口中为一次可发布的预制区块,初始时,在本地持续积累预制区块,形成预制链,以初始发布速度和1个窗口大小发布区块。

17、 (2)按照接收的提交确认消息次数,逐次增加发布窗口大小,当收到第2n次提交确认消息后窗口大小变为n(n>1);按照接收准备确认消息的时间差决定发布速度,准备确认的时间间隔越小,发布速度对应加快。

18、 (3)当对应某个预制区块接收到一定数量的区块报警信息后,应减小窗口大小,减缓发布速度,当报警区块被证明是合法区块时,恢复自身原先的发布速度和窗口大小。

19、 (4)在发布区块期间,如果所述的主节点出现故障宕机后,将有由热备份节点接替,如果所述的主节点发布了错误的区块,将由冷备份节点接替,接替者也遵守发布协议。

20、 (5)发布速率由窗口大小和发布速度决定,发布速率应根据所述的主节点和共识节点的自身能力和网络状况进行动态调整,应适应网络环境和能力较弱一方,节点能力具体指能代表计算机性能的通信能力和计算能力。

21、 (6)共识节点未接收到某区块时请求重发,主节点应按请求中的区块序号进行重发,当收到多次重发请求时,应降低发布速度,当某段预制区块链都收到重发请求,应回退窗口并限制最大发布速度和窗口大小。

22、 (7)执行此协议是在客户端发来的交易请求消息数量充足的前提下,若消息不足,那么将按照初始窗口大小和发布速度发布区块。

23、优先地,所述步骤s4中,所述的小型预制链为各个所述的共识节点持续接收到预制区块后,将其按照区块序号顺序缓存在自己的区块池中,形成一条未验证的预制区块子链,共识节点发挥自身的计算资源优势,不等待同一区块的准备确认或提交确认消息,持续进行下一区块验证,同时对监管节点发来前面某一块的准备确认并行的完成提交签名和发送提交消息。所述的单区块准备消息为单个预制区块的准备消息,通信压力较小、验证速度较快的节点可以每验证完一个区块便发送一次,及时反馈给监督节点、主节点或备份节点信息。所述的多区块准备消息是由连续的多个区块验证结果组成,节省通信资源。

24、优先地,所述步骤s5中,所述的报警信息是共识节点验证过程中先发识别出某个问题区块,发送的区块合法性不认可签名,对主节点、监督节点、备份节点具有警惕作用,可以在预制区块尚未完全确认不合法时,接到警报提前进行备份行为,若区块真的不合法则可以快速切换至备份链。一个共识节点不认可此区块,不代表此区块会被整个共识组拒绝,在未接收到监督节点发送的启用备份预制链消息前,此共识节点有两种处理方式:

25、 (1)基于乐观猜想,假定自身由于某些误解产生错判,此区块为合法正确的,在假定此区块正确的基础上,继续对后续区块进行本地验证,但暂不发送验证消息。

26、 (2)基于悲观猜想,认定自身的判定正确,此区块存在错误交易信息为非法区块,可以停止验证主节点发布的预制区块,等待验证冷备节点发送的备份预制区块。

27、优先地,所述步骤s6中,所述的监督节点持续接收各共识节点发送的区块准备消息,需要对应为每个预制区块创建一个消息缓存池,当某个预制区块的认可签名数量满足阈值后,发送从上次确认后的区块到此次确认区块的多区块准备确认消息,并清空这些块的消息缓存池。

28、优先地,所述步骤s7中,共识节点对于预制链中的区块验证有快有慢,当节点完成当前区块的准备阶段后不会无效等待其他节点对此区块的确认消息,而是进入后一区块的准备阶段,当收到此区块的准备确认消息后再并行的完成提交阶段的验证。同一个区块的准备阶段和提交阶段的整体执行逻辑是串行的,而处于准备阶段的区块和处于提交阶段的区块是并行进行验证的。

29、优先地,所述步骤s8中,所述的合法小型预制链是被共识组认证过后的区块组成的小型链,广播时,除了合法小型预制链的各个区块完整信息,也必须附带小型预制链的最后一个区块的提交确认签名集合以便于非共识节点进行整体合法性验证。

30、优先地,所述步骤s9中,所述的非共识节点合包括:步骤s1中为挑选的非正向节点,步骤s2中落选的正向节点。所述的非共识节点同时接收一批区块,可能会存在丢块现象,故需要先按照区块序号进行缓存,缺失的区块向邻居节点或者某个共识节点发送请求区块消息,首先对各个区块哈希值与之前主节点广播的哈希值链进行对比,确保区块接收无误,之后验证提交确认消息中包含的共识组成员提交签名,确认区块合法性无误,完成两种验证后依次写入本地区块链中。

31、优先地,所述步骤s10中,所述的共识结束消息指附带有结束标志的提交确认消息,是为了有序解散共识组和稳定达成一致性,一轮共识周期结束时间前任意一个共识节点都可在共识组内发起共识结束请求,监督节点收到结束请求消息后在接下来的准备确认消息中附带结束标志,其他共识节点认可此准备确认消息中的最后一个区块作为所述的结束区块,则在包含此区块的提交消息中附带结束标志,监督节点针对此块统计结束标志数量,满足阈值后广播所述的附共识结束消息,所述的共识节点行为是指节点按照共识规则执行则加分,若是存在拜占庭行为清空分数,存在不作为行为则扣分,其行为要求分别为:

32、 (1)主节点行为包含有本地打包预制区块,发布预制区块给共识节点,广播预制区块哈希值给非共识节点,接收报警信息改变发送窗口大小,根据重发请求消息重发区块和改变发布速度和窗口大小。

33、 (2)监督节点行为包含有收集准备和提交消息的签名并发送确认消息,集齐警报信息后启用备份节点,监督主节点发布的区块包含的交易信息是否异常,确认区块合法后广播验证结果和小型预制区块链,管理共识过程,领导结束一轮共识周期。

34、 (3)热备份节点行为包括同步与主节点制造区块,主节点宕机后接替最新发布区块的后续预制链的发布;冷备节点行为包括接收到报警信息后制造备份预制链,发布备份预制区块。

35、 (4)共识节点行为包括对预制区块数据进行验证,对确认消息签名进行验证,发送准备消息和提交消息,发送报警消息,发送主节点超时未传消息,发送预制区块重传消息,发起共识结束请求,补发非共识节点的缺失区块。

36、本发明具有以下有益效果:

37、 (1)算法采用阶梯信誉模型,筛选出积极保持诚实行为的节点,降低共识过程出现拜占庭行为的出现概率,提高算法的安全性。

38、 (2)算法通过双重网络关键节点关键性计算方法,选举出区块链网络中占据重要节点位置和交易贡献影响力大的节点,提升共识效率,维护区块链网络社区的稳定性。

39、 (3)算法提出一种快速发布区块和两阶段并行验证的改进一致性共识流程,充分利用节点计算资源,提升系统的吞吐量。

本文地址:https://www.jishuxx.com/zhuanli/20241015/315692.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。