CN113992398A - 一种改进的pbft共识算法 - Google Patents
一种改进的pbft共识算法 Download PDFInfo
- Publication number
- CN113992398A CN113992398A CN202111250943.6A CN202111250943A CN113992398A CN 113992398 A CN113992398 A CN 113992398A CN 202111250943 A CN202111250943 A CN 202111250943A CN 113992398 A CN113992398 A CN 113992398A
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- message
- nodes
- slave
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于区块链技术领域,涉及一种改进的PBFT共识算法。将共识算法的角色分为记账节点和共识节点,共识节点参与共识过程,对客户端的请求内容进行投票并将有效信息写入正式区块;记账节点不参与共识过程,仅需要正确记账。本发明通过在共识初始阶段设定节点性能值,改进了主节点的选取方式,并且对恶意节点做了处理,恶意节点或性能过差的节点不可以参与共识。此外,本发明解决了原始PBFT算法通信量过大的问题,在PREPARE和COMMIT阶段,通过聚合签名的使用避免了两次全网络的广播通信,降低了通信开销。
Description
技术领域
本发明属于区块链技术领域,涉及一种改进的PBFT共识算法。
背景技术
区块链是一种特殊的分布式数据库,是分布式记账、共识机制、加密算法、智能合约等技术的系统性集成创新。目前区块链已得到社会各界的广泛关注。
共识算法是区块链的核心,最早的共识研究可以追溯到分布式一致性。1982年,Lamport等人提出了拜占庭将军问题,即在存在恶意节点的分布式网络中,恶意节点会篡改数据、选择性的响应请求,这种情况下非恶意节点如何通过消息传递达成一致共识。根据能否解决拜占庭问题,可将共识算法分为拜占庭容错(Byzantine Fault Tolerance,BFT)和崩溃容错(Crash Fault Tolerance,CFT)两类。在采用BFT共识算法的分布式系统中,即使系统中存在恶意节点,只要恶意节点少于一定比例,整个系统的可靠性就可以保证。BFT算法又可分为以实用拜占庭共识算法(Practical Byzantine Fault Tolerance,PBFT)为代表的确定性算法、以工作量证明算法(Proof of Work,PoW)为代表的概率算法。
PBFT作为目前联盟区块链使用较多的共识算法,具有耗能小、吞吐量高等优点,但是,在实际过程中,基于PBFT共识算法的区块链还存在一些性能方面的问题。最主要的问题是动态性,基于PBFT的网络节点数量固定,节点的增减都需要对共识网络进行初始化。其次,对于恶意节点来说,PBFT算法并没有惩罚机制,恶意节点还存在于网络中。除此之外,PBFT算法对于网络的带宽要求很高,多次消息广播增加了带宽的消耗。
所以,为了解决这些存在的问题,避免区块链系统受到安全和性能方面的威胁,就需要对原始PBFT算法进行改进。
发明内容
本发明旨在解决网络节点数量固定、节点的增减需要对共识网络进行初始化、对于恶意节点无惩罚机制、带宽消耗大问题。
为此,本发明提出了一种改进的PBFT共识算法,包括以下步骤:
共识算法的角色包括记账节点和共识节点,其中共识节点分为主节点和从节点。在区块链网络中,共识节点参与共识过程,对客户端的请求内容进行投票并将有效信息写入正式区块;记账节点不参与共识过程,仅需要正确记账。
一种PBFT改进共识算法生成区块的步骤如下:
步骤一:初始化或更新节点的性能值:所有节点的性能值初始化为6;
步骤二:选取共识节点:从性能值大于0的节点中随机抽取50%的节点作为共识节点,其余节点作为记账节点;
步骤三:选取主节点:从共识节点中随机选取一个作为主节点;
步骤四:根据选取的主节点开始共识过程:主节点接收客户端的请求,并将请求消息广播给从节点,共识节点针对该消息达成共识,并生成区块。具体包括如下步骤:
4.1主节点收到客户端请求后,生成预准备消息并广播给从节点;
4.2从节点收到预准备消息后,先确认消息的正确性,确认正确后生成带签名的准备消息并将准备消息发送给主节点;
4.3主节点收到各从节点的准备消息后,对准备消息进行聚合并广播给从节点;
4.4从节点收到聚合后的准备消息后,先确认消息的正确性,确认正确后生成带签名的提交消息并将提交消息发送给主节点;
4.5主节点收到各从节点的提交消息后,对提交消息进行聚合并广播给从节点;
4.6从节点收到聚合后的提交消息后,先确认消息的正确性,确认正确后向客户端回复执行成功消息并生成区块;
步骤五:达成共识之后,所有记账节点同步生成区块。
进一步地,所述步骤一中,在进行第一次共识也就是在初始化节点性能值时,所有节点性能值均初始化为6;在之后的共识过程中,若节点网络出现问题,则性能值-1;若节点同意恶意消息内容,则性能值-2;若节点生成区块异常,则性能值-3。
进一步地,所述步骤二中,若记账节点总数小于20,则所有的记账节点都作为共识节点。若记账节点总数大于20,则从性能值大于0的记账节点中随机抽取50%的节点作为共识节点。
进一步地,所述步骤三中,从共识节点中随机选取一个作为主节点,如果主节点发生异常,则再从共识节点中随机选取一个主节点,本次共识重新开始。
进一步地,所述步骤四中,在准备阶段和提交阶段,每个从节点向当前的主节点发送投票消息,当主节点至少获得所有共识节点的三分之二回应后,才通过聚合签名算法对投票消息进行聚合,并且每个从节点可以通过验证聚合签名来验证多数共识节点是否已投票;主节点将聚合消息广播到所有从节点,从而降低了系统的通信开销。
本发明的有益效果是:通过设定性能值,改进了主节点的选取方式,并且对恶意节点做了处理,恶意节点或性能过差的节点不可以参与共识。此外,本发明解决了原始PBFT算法通信量过大的问题,在PREPARE和COMMIT阶段,通过聚合签名的使用避免了两次全网络的广播通信,降低了通信开销。
附图说明
图1为改进的PBFT共识算法框架图。
图2为改进的PBFT共识算法流程图。
图3为改进的PBFT共识算法中共识节点评分更新流程图。
具体实施方式
下面结合附图和具体的实施方式对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例如图1至3所示,本发明提出了一种改进的PBFT区块链共识方法,包括以下步骤:
共识算法的角色包括记账节点和共识节点,其中共识节点分为主节点和从节点。在区块链网络中,共识节点参与共识过程,对客户端的请求内容进行投票并将有效信息写入正式区块。记账节点不参与共识过程,仅需要正确记账。具体的,假设有A、B、C、D,共4个节点。
所述共识方法生成区块的步骤如下:
步骤一:初始化或更新节点的性能值:所有节点的性能值初始化为6,
Weight_a=6,Weight_b=6,Weight_c=6,Weight_d=6。
步骤二:选取共识节点:从性能值大于0的节点中随机抽取50%的节点作为共识节点,其余节点作为记账节点。因为节点的性能值均大于0,且节点数为4,故所有节点均作为共识节点,即共识节点为A、B、C、D。
步骤三:选取主节点:从共识节点中随机选取一个作为主节点,假设主节点为D。
步骤四:根据选取的主节点开始共识过程:主节点D接收客户端的请求,并将请求消息广播给从节点A、B、C。
4.1主节点D收到客户端请求后,生成预准备消息并广播给从节点A、B、C;
4.2从节点A、B、C收到预准备消息后,先确认消息的正确性,确认正确后生成带签名的准备消息Signed_PA_a、Signed_PA_b、Signed_PA_c,并将准备消息发送给主节点D;
4.3主节点D收到各从节点的准备消息Signed_PA_a、Signed_PA_b、Signed_PA_c后,对准备消息进行聚合,得到聚合消息Signed_PA_abc并广播给从节点A、B、C;
4.4从节点A、B、C收到聚合后的准备消息Signed_PA_abc后,先确认消息的正确性,确认正确后生成带签名的提交消息Signed_CM_a、Signed_CM_b、Signed_CM_c,并将提交消息发送给主节点;
4.5主节点D收到各从节点的提交消息Signed_CM_a、Signed_CM_b、Signed_CM_c后,对提交消息进行聚合,得到聚合消息Signed_CM_abc并广播给从节点A、B、C;
4.6从节点A、B、C收到聚合后的提交消息Signed_CM_abc后,先确认消息的正确性,确认正确后向客户端回复执行成功消息并生成区块。
步骤五:达成共识之后,所有记账节点同步生成区块,此例中A、B、C、D均为共识节点。
上述实施例仅为本发明的优选实施例,并非对本发明保护范围的限制,但凡采用本发明的设计原理,以及在此基础上进行非创造性劳动而做出的变化,均应属于本发明的保护范围之内。
Claims (1)
1.一种改进的PBFT共识算法,其特征在于,包含如下步骤:
共识算法的角色包括记账节点和共识节点,其中共识节点分为主节点和从节点;在区块链网络中,共识节点参与共识过程,对客户端的请求内容进行投票并将有效信息写入正式区块;记账节点不参与共识过程,仅需要正确记账;
一种PBFT改进共识算法生成区块的步骤如下:
步骤一:初始化或更新节点的性能值:所有节点的性能值初始化为6;
步骤二:选取共识节点:从性能值大于0的节点中随机抽取50%的节点作为共识节点,其余节点作为记账节点;
步骤三:选取主节点:从共识节点中随机选取一个作为主节点;
步骤四:根据选取的主节点开始共识过程:主节点接收客户端的请求,并将请求消息广播给从节点,共识节点针对该消息达成共识,并生成区块;具体包括如下步骤:
4.1主节点收到客户端请求后,生成预准备消息并广播给从节点;
4.2从节点收到预准备消息后,先确认消息的正确性,确认正确后生成带签名的准备消息并将准备消息发送给主节点;
4.3主节点收到各从节点的准备消息后,对准备消息进行聚合并广播给从节点;
4.4从节点收到聚合后的准备消息后,先确认消息的正确性,确认正确后生成带签名的提交消息并将提交消息发送给主节点;
4.5主节点收到各从节点的提交消息后,对提交消息进行聚合并广播给从节点;
4.6从节点收到聚合后的提交消息后,先确认消息的正确性,确认正确后向客户端回复执行成功消息并生成区块;
步骤五:达成共识之后,所有记账节点同步生成区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111250943.6A CN113992398A (zh) | 2021-10-26 | 2021-10-26 | 一种改进的pbft共识算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111250943.6A CN113992398A (zh) | 2021-10-26 | 2021-10-26 | 一种改进的pbft共识算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113992398A true CN113992398A (zh) | 2022-01-28 |
Family
ID=79741965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111250943.6A Pending CN113992398A (zh) | 2021-10-26 | 2021-10-26 | 一种改进的pbft共识算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113992398A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745131A (zh) * | 2022-04-06 | 2022-07-12 | 广东钜联信息科技有限公司 | 一种区块链的pbft改进共识算法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505091A (zh) * | 2019-08-23 | 2019-11-26 | 昆明理工大学 | 一种基于pbft改进的共识方法 |
CN110677485A (zh) * | 2019-09-30 | 2020-01-10 | 大连理工大学 | 一种基于信用的动态分层拜占庭容错共识方法 |
US20200403776A1 (en) * | 2019-06-18 | 2020-12-24 | Electronics And Telecommunications Research Institute | Apparatus and method for achieving distributed consensus based on decentralized byzantine fault tolerance |
CN112417046A (zh) * | 2020-11-23 | 2021-02-26 | 宙通科技(南京)有限公司 | 一种应用于区块链共识机制的并行化拜占庭容错方法 |
CN112600678A (zh) * | 2021-03-02 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
-
2021
- 2021-10-26 CN CN202111250943.6A patent/CN113992398A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200403776A1 (en) * | 2019-06-18 | 2020-12-24 | Electronics And Telecommunications Research Institute | Apparatus and method for achieving distributed consensus based on decentralized byzantine fault tolerance |
CN110505091A (zh) * | 2019-08-23 | 2019-11-26 | 昆明理工大学 | 一种基于pbft改进的共识方法 |
CN110677485A (zh) * | 2019-09-30 | 2020-01-10 | 大连理工大学 | 一种基于信用的动态分层拜占庭容错共识方法 |
CN112417046A (zh) * | 2020-11-23 | 2021-02-26 | 宙通科技(南京)有限公司 | 一种应用于区块链共识机制的并行化拜占庭容错方法 |
CN112600678A (zh) * | 2021-03-02 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
LIJUN XIAO等: "A Novel Research in Internet Finance Combining", 《IEEE》 * |
包振山等: "基于树形拓扑网络的实用拜占庭容错共识算法", 《应用科学学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745131A (zh) * | 2022-04-06 | 2022-07-12 | 广东钜联信息科技有限公司 | 一种区块链的pbft改进共识算法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108616596B (zh) | 基于动态授权和网络环境感知的区块链自适应共识方法 | |
CN110784346B (zh) | 一种基于信誉值的pbft共识系统及方法 | |
CN112685796B (zh) | 一种基于区块链的区块共识方法以及相关设备 | |
CN111355810B (zh) | 一种基于信誉与投票机制的改进pbft共识方法 | |
CN110298754B (zh) | 一种应用于区块链的共识方法 | |
CN109255713A (zh) | 一种区块链网络中某一时间段内记账权的获取方法 | |
CN111682942B (zh) | 一种应用于许可链的二元加权拜占庭容错共识方法 | |
CN112532396A (zh) | 一种基于聚合签名的优化拜占庭容错方法及存储介质 | |
Yu et al. | Improved blockchain consensus mechanism based on PBFT algorithm | |
CN114050904B (zh) | 一种基于两层级领导节点分片结构的共识系统及方法 | |
CN112395113B (zh) | 实用拜占庭容错共识方法及装置、可读存储介质 | |
CN114218612A (zh) | 一种适用于联盟链高频交易场景的共识方法 | |
Wang et al. | Byzantine fault tolerant algorithm based on vote | |
CN114422513A (zh) | 一种基于Raft-PBFT的区块链共识方法 | |
CN113992398A (zh) | 一种改进的pbft共识算法 | |
CN114338040A (zh) | 一种区块链节点的分组多链三次共识方法 | |
CN115277722A (zh) | 一种基于信誉值模型的dr-pbft改进算法 | |
CN114499874B (zh) | 一种应用于工业互联网的拜占庭容错共识优化方法 | |
CN116455685A (zh) | 一种在广播网络下的pbft改进共识方法 | |
CN102761520B (zh) | 认证信息处理方法和系统 | |
CN116232893A (zh) | 分布式系统的共识方法、装置、电子设备及存储介质 | |
CN115378788A (zh) | 基于分层共识和强化学习的区块链性能自适应优化方法 | |
CN114205092B (zh) | 一种乐观的不需要回退的拜占庭容错共识方法 | |
Chen et al. | An Efficient Byzantine Fault-Tolerant Consensus Mechanism Based on Aggregate Threshold Ring Signature | |
Jiang et al. | An efficient Byzantine fault-tolerant consensus mechanism based on threshold signature |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20220128 |