基于备选候补机制的PBFT改进研究

更新时间:2023-05-07 18:54:27 阅读: 评论:0

5
网络通信技术
Network Communication Technology
电子技术与软件工程
Electronic Technology & Software Engineering
区块链技术随着比特币的出现而问世,其并非一种新的技术,而是将分布式存储、对等网络、非对称加密、共识机制等计算机技术整合起来的新型应用模式[1]。具有去中心化、公开透明、共同维护及不可篡改等特性。
最为区块链核心技术的共识算法,是近年来分布式系统研究的热点。是保证分布式系统中各节点数据一致性的关键,目前,区块链系统中所使用的经典共识算法有PoW 算法,PoS 算法、BFT 算法、PBFT 算法等,不同的算法有各自的优缺点。许多学者在共识策略、一致性协议以及区块结构等方面对PBFT 算法进行了改进,但是该算法应用在一些需要不断扩张的领域中,依旧存在节点网络静态不可变的问题[2],因此解决PBFT 算法动态性差成为一个急需解决的问题。
1 实用拜占庭容错算法
实用拜占庭容错算法(Practical Byzantine Fault Tolerance, PBFT )[3]是在1999年由Miguel Castro 和Barbara Liskov 提出的。能够在失效节点不超过(n-1)/3(n 为集群节点总数)的情况下确保共识系统的安全性和一致性[4]。PBFT 共识机制中所有节点需要保证数据达成最终一致性,为此PBFT 需进行一致性协议、检查点协议和视图更换协议[5]来确保各个节点的行动一致。
一致性协议是PBFT 共识算法的核心部分,主要通过预准备、准备和确认三个阶段来保证数据的一致性。在集群中每一次共识都是在某一个视图状态下进行的,且每个视图状态下只存在唯一的主节点,共识集群中的其他节点都是副本节点。共识的具体过程如图1所示,其中C 是客户端,副本0是主节点,副本3是失效节点。
在传统PBFT 算法的分布式系统中,所有节点相互独立,且节点发生拜占庭错误也相互独立,共识节点和拜占庭的节点的个数分别为N 、f ,两者间的约束条件如公式(1)所示:
N ≥3f+1                                                                                    (1)从上面公式可以看出,在分布式系统中,共识节点的总数和可接受的拜占庭节点数与密切相关。由于PBFT 共识机制本身没有动态机制,不能进行动态共识,因此每一轮的共识节点都是固定的。这个特性在联盟链的实际应用中有很多缺点。例如,新的节点无法加入到网络中;作恶节点也无法从网络中退出。2 算法改进2.1 算法思想
针对PBFT 算法节点无法动态感知的问题,本文将PBFT 算法进行改进,首先增设一个额外的候补节
点集合,在新增的候补节点中进行备选主节点的选取,让节点可以动态增加或删除。DPBFT 算法思路如图2所示。2.2 增加候补节点
将系统中的节点分为两部分,一部分是共识节点;另一部分是候补节点。共识节点负责系统的共识,候补节点用于备选主节点的选取。在候补节点集合中存放的是新加入系统的节点和共识过程中发生拜占庭错误的节点。
共识节点集合和候补节点集合用R1、R2表示,其定义如下:
基于备选候补机制的PBFT 改进研究
惠二鑫  赵鹏  彭俊霞
(太原师范学院  山西省晋中市  030619)
R1>3f+1                                                                                    (2)R2>f                                                                                          (3)当R1中主节点拜占庭错误或其他共识节点退出系统中时,R2中选举产生的备用主节点将其替换,被替换掉的节点将淘汰到R2集合中,保证了系统中共识节点数量的稳定,实现了节点的动态替换。
在候补节点集合R2中信任节点的选举方式采用投票选举机制。为了提升节点替换效率,R1中节点的共识和R2中信任节点的选取是同步进行的。主节点发生拜占庭错误时,使用R2中选出备选主节点将其替换,整个过程省去了视图切换。
此外为预防发生拜占庭问题的主节点重复当选主节点的可能,增加一个参数H ,候选主节点的计算公式如(4)所示:
P=(h+v1)modR2                                                                        (4)其中h 表示区块高度,R2为候补节点集合v ,表示当前视图编号P 为主节点选取结果。
将视图切换过程和主节点的选举相结合,可有效减少视图切换次数,降低了整个共识过程的共识时延。2.3 候补主节点选取
第一步:在R2中通过公式(4)计算出候选节点,该向其他节点发送自己将要选举的消息。
第二步:当R2中其他节点收到候选节点发送的消息后,进行确认。如果R2集合中有半数以上的节点同意,候选节点将被选举
摘 要:本文针对PBFT 无法对网络中的节点进行动态感知的问题,提出一种基于备选候补机制的动态共识算法,该算法通过增设额
外的候补节点集合,同时在新增的候补节点中进行备选主节点的选取,让节点可以动态增加或减少。实验结果显示,DPBFT 算法可以在保
证算法效率的前提下支持节点的增加和删除。
关键词:PBFT;共识机制;联盟链;DPBFT 图1:PBFT 共识过程
图2:DPBFT 算法思路图3:选举过程
6
网络通信技术
Network Communication Technology
电子技术与软件工程
Electronic Technology & Software Engineering
为备用主节点,否则重新选举。
第三步:为防止在选举的过程中参与投票的节点发生超时而导致恶性循环选举问题的出现。改进后的算法为每个节点设置唯一的超时值,当参与投票时节点会有序的进行投票。有效避免所有节点的得票都不足一半情况。节点分先后,最终确定一个唯一的备用主节点,用来替换共识集合R1中的问题节点。选举过程流程图如图3所示。
2.4 算法的整体流程
根据改进算法的设计思想和具体设计,给出DPBFT 算法的整体流程。如图4所示。
DPBFT 算法的总流程如下:
(1)备选主节点成功选举
(2)request 阶段:客户端向主节点发提案消息。
(3)pre-prepare 阶段:在此阶段主节点向所有副本节点发送预准备消息;
(4)副本节点验证收到的提案消息和主节点的状态。如果接收的提案消息正确,进入阶段;否则接受的提案消息被丢弃,转到(2)。如果主节点发生拜占庭错误,视图将进行切换,转到(1);
(5)prepare 阶段:向所有副本节点发送准备消息;
当某个节点收到超过2f+1准备消息并且完成验证,告知客户端发送共识达成,否则跳转到(1);
(6)reply 阶段:若有f+1个副本节点向客户端进行了反馈,则认为系统共识达成。3 实验验证及分析
本次实验测试的是在系统运行一段时间后观察PBFT 算法和DPBFT 算法中共识节点和拜占庭节点数。实验将传统PBFT 和改进后的算法中共识节点设置为10个(包含3个拜占庭节点);另外在候补集合中添加3个节点,在实验开始前候补集合中不设置拜占庭节点。实验结果如图5所示。
分析实验结果可知,当系统完成3次视图切换后,PBFT 算法中拜占庭节点的个数始终为3。而DPBFT 算法共识集合中的拜占庭节点在每次视图切换完成后都会添加到拜占庭节点候补集合中,此时候补节点中的拜占庭节点会加1。直到三次视图切换完成,PBFT 算法中的拜占庭节点全部转移到候补节点中。4 总结展望
本文针对PBFT 算法中节点网络无法动态变化,提出一种动态性的共识算法DPBFT ( Dynamic Practical Byzantine Fault Tolerance )。改进的算法通过增设额外的候补节点集合,在新增的候补节点中进行备选主节点的选取,当主节点出现拜占庭错误时,使用候补节点集合中的备选主节点进行替换,使系统中共识节点的数量可以动态增加或减少。
下一步将在DPBFT 算法的吞吐量上进行研究探索,在不影响系统共识效率的基础上增加吞吐量,使其可以更好的应用商业领域中。
参考文献
[1]Dinh T, Ji W, Gang C, et al. BLOCKBENCH: A Framework
for Analyzing Private Blockchains[C]// the 2017 ACM International Conference. ACM,2017.
[2]王海勇,郭凯璇,潘启青.基于投票机制的拜占庭容错共识算
法[J].计算机应用,2019,39(6):1766-1771.
[3]Performance Modeling of PBFT Connsus Process for
Permissioned Blockchain Network (Hyperledger-Fabric)[C]// 2017 IEEE 36th Symposium on Reliable Distributed Systems (SRDS). IEEE, 2017.
[4]陈子豪,李强.基于K-medoids 的改进PBFT 共识机制[J].计
算机科学,2019,46(12):101-107.
[5]徐治理,封化民,刘飚.一种基于信用的改进PBFT 高效共识
机制[J].计算机应用研究,2019,335(09):234-23.作者简介
惠二鑫(1995-),男,山西省吕梁市人。硕士研究生在读。研究方向为智能数据与分析、区块链技术、共识算法。
赵鹏,男,山西省太原市人。硕士生导师,教授。研究方向为智能数据与分析,移动互联应用技术。
彭俊霞,女,湖北省襄阳市人。硕士在读。研究方向为智能数据与分析,密码学技术。
图5:算法效率对比实验
图4:算法整体流程

本文发布于:2023-05-07 18:54:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/550327.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   共识   算法   进行   系统   机制
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图