温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
结合
动态
信用
机制
PBFT
算法
优化
方案
刘泽坤
第 49卷 第 2期2023年 2月Computer Engineering 计算机工程结合动态信用机制的 PBFT算法优化方案刘泽坤,王峰,贾海蓉(太原理工大学 信息与计算机学院,太原 030024)摘要:实用拜占庭容错(PBFT)共识算法被广泛应用于金融机构、电子货币行业、农产品溯源等领域,但存在灵活性较差、拜占庭节点处理方式不足、通信开销和网络时延较大等问题。提出基于动态机制与信用积分机制的实用拜占庭容错共识算法 DT-PBFT。引入动态加入或退出机制,使集群内的节点可以按需自由加入或退出,增加信用积分机制,通过分层机制将节点按可信任程度分为备用主节点层、中间层、警告层和清理层,采用惩罚机制降低节点连续作恶的可能性,以保证从备用主节点层中优先选择最优的主节点,大幅提高共识效率。同时,通过剔除网络清理层中的拜占庭节点,提高算法的运行效率。在此基础上,通过优化一致性协议对共识流程进行改进,减少一轮全网节点信息交互确认流程,从而降低通信开销。实验结果表明,当节点数为 22 时,相比 DGPBFT、DDBFT 和PBFT算法,DT-PBFT算法具有较优的灵活性,吞吐量和交易请求有效完成率分别为 292 transaction/s和 83.4%,CPU利用率为 50%,相比 PBFT算法,延迟降低了 350 ms。关键词:区块链;动态加入机制;拜占庭容错算法;信用机制;分层机制开放科学(资源服务)标志码(OSID):中文引用格式:刘泽坤,王峰,贾海蓉.结合动态信用机制的PBFT算法优化方案 J.计算机工程,2023,49(2):191-198.英文引用格式:LIU Z K,WAGN F,JIA H R.Optimization scheme of PBFT algorithm combining dynamic credit mechanism J.Computer Engineering,2023,49(2):191-198.Optimization Scheme of PBFT Algorithm Combining Dynamic Credit MechanismLIU Zekun,WANG Feng,JIA Hairong(College of Information and Computer,Taiyuan University of Technology,Taiyuan 030024,China)【Abstract】Practical Byzantine Fault Tolerance(PBFT)consensus algorithm is widely used in financial institutions,electronic currency industry,agricultural product traceability,and other fields,but there are problems such as poor flexibility,insufficient Byzantine node processing methods,large communication overhead,and network delay.This paper proposes a PBFT consensus algorithm DT-PBFT based on a dynamic mechanism and credit scoring mechanism.The dynamic joining or exit mechanism is introduced to enable nodes in the cluster to joining or exit freely as needed,and the credit scoring mechanism is added.Nodes are divided into standby primary node layer,intermediate layer,warning layer,and cleaning layer according to the degree of trust through the layered mechanism.The penalty mechanism is used to reduce the possibility of the continuous evil of nodes,so as to ensure that the optimal primary node is selected preferentially from the standby primary node layer,and to greatly improve the efficiency of consensus.At the same time,by eliminating Byzantine nodes in the network cleaning layer,the operation efficiency of the algorithm is improved.Based on this,the consensus process is improved through the optimized consistency protocol to reduce a round of network wide node information interaction confirmation process,thereby reducing communication overhead.The experimental results show that when the number of nodes is 22,compared with the DGPBFT,DDBFT and PBFT algorithms,the DT-PBFT algorithm has a better flexibility.The throughput and effective completion rate of transaction requests are 292 transaction/s and 83.4%,respectively,and the CPU utilization is 50%.Compared with the PBFT algorithm,the delay is reduced by 350 ms.【Key words】blockchain;dynamic joining mechanism;Byzantine Fault Tolerance(BFT)algorithm;credit mechanism;hierarchical mechanismDOI:10.19678/j.issn.1000-3428.0063464基金项目:山西省留学回国人员科技活动择优项目(20200017);山西省回国留学人员科研项目(2020-042)。作者简介:刘泽坤(1996),男,硕士研究生,主研方向为区块链技术;王峰、贾海蓉,教授、博士。收稿日期:2021-12-07 修回日期:2022-03-24 Email:网络空间安全文章编号:1000-3428(2023)02-0191-08 文献标志码:A 中图分类号:TP3112023年 2月 15日Computer Engineering 计算机工程0概述 随着互联网技术的日益发展,以比特币1为代表的数字货币随之崛起,支撑比特币系统2的底层技术(如区块链技术3)也成为研究热点。区块链技术 被 广 泛 应 用 于 金 融 业、能 源 互 联 网、农 业 等 领域4,本质是“点对点”分布式数据库,具有利用共识机制解决分布式框架问题的优势,能够有效解决去中心化问题。共识算法作为区块链的核心技术,能够信任不同节点并计算其权益,最终保证区块链系统的一致性。工作证明(Proof of Work,POW)5、权益证明(Proof of Stake,POS)、Paxos、实 用 拜 占 庭 容 错(Practical Byzantine Fault Tolerance,PBFT)等共识算法被广泛应用于金融机构、电子货币行业、农产品溯源等多个领域。POW(俗称“挖矿”)被广泛用于维护系统的一致性和安全性6,参与者(俗称“矿工”)被鼓励竞争生成一个有效的块,通过解决一道密码难题赢得奖励7,这将促使参与者投入巨大的计算资源来达成共识。奖励通常以虚拟货币的形式存在,包括资源消耗的成本和合理的利润。POW 可容纳上千节点运行,但吞吐量较低且生成新区块所需的时间较长,从而浪费电力资源和算力,不利于更大范围市场的推广。为解决上述问题,SUNNY 提出POS,设计一个可靠机制给予系统各个节点参与决策的权利。在实际应用中,POS8不需要花费算力,且记账权来源于权益,“挖矿”是几乎没有成本的9。鉴于“挖矿”的零成本,若恶意节点制造分叉链,选择在每条链上“挖矿”,此时无论哪条主链,它们均会获得收益。若大多数“矿工”都选择在所有分叉上“挖矿”,则导致区块链分叉,增大遭受双花攻击的可能性,无法保证区块链的稳定性。Paxos10基于消息传递,解决系统内容一致性问题,在执行相同的操作后,所有节点能够得到一致的结果。但 Paxos存在故障风险,若作恶节点发布假消息,网内就存储假消息。为避免上述风险的发生,基于 BFT 的 PBFT 算法应运而生,PBFT 算法的 C/S 架构使得算法复杂度大幅降低,可实现每秒上千次的交易请求和交易量,具有交易时间短、承载交易量大的优点。随着对共识算法的深入研究,PBFT算法在不断的改进优化,使证明方法、理论应用呈现多样化、多维化发展。简化的拜占庭容错(SBFT)11算法极大程度地加快算法完成共识的速率,各节点都可以自主操作,而无需与其他节点进行交互通信验证,完成快速共识。但是在 SBFT 中收集签名的收集器是恶意的,则导致 SBFT的性能大幅下降。DGPBFT12算法基于扩展节点的属性,增加节点可信度,并设计节点可信度的评估机制,通过对可信度的节点进行分组,大幅降低通信的复杂度。但当 DGPBFT 算法面对硬件错误、网络拥塞、终端遭到恶意攻击等问题时难以实现高效安全的工作12。DDBFT13将 DPOS应用于 PBFT 算法中,使得 PBFT14算法具有动态性的特点,但是因网络带宽有限,导致网络阻塞且吞吐量降低15。授权拜占庭容错(DBFT)算法由 BFT 算法演化而来,专用于许可区块链,根据持有股份数量通过投票决定节点是否能进入到共识网内。DBFT 虽然提高算法效率,但是当超过 1/3的节点协同作恶或对主节点进行攻击时,交易请求完成的主导权将被恶意节点掌控,算法的安全稳定性无法得到保障16。本文提出基于信用积分机制和动态增删节点的实用拜占庭容错共识算法 DT-PBFT。通过引入动态机制,使联盟链中节点的自主加入和退出更加灵活,增加网络的灵活性。引入信用积分机制,通过增加信用积分筛选出信用度较高的节点作为备选主节点,对恶意节点(信用积分较低的节点)进行网内的自主剔除,以有效地降低恶意节点成为主节点的概率,确保网内各个节点的安全可靠性。在此基础上,利用优化的一致性协议实现对共识流程的改进,并进行一轮全网广播,提高网络的运行效率。1传统 PBFT算法 1.1算法流程PBFT是一种状态机副本复制算法17,状态机在不同的节点上复制副本,并应用于分布式系统中。在 PBFT模型中,每次产生的主节点都会领导一次共识过程的执行,运行中伴随客户端、主节点和从节点,其中主节点、从节点为备份节点,在运行过程中都会进行数据备份7。传统 PBFT 算法的共识流程如图 1所示。传统 PBFT 算法18的共识过程分为 5 个阶段:1)请求阶段,客户端向主节点发送请求消息;2)预准备阶段,客户端向主节