Improvement of the PBFT Algorithm Based on Grouping and Reputation Value Voting

Improvement of the PBFT Algorithm Based on Grouping and Reputation Value Voting

Shannan Liu, Ronghua Zhang, Changzheng Liu, Chenxi Xu, Jie Zhou, Jiaojiao Wang
Copyright: © 2022 |Pages: 15
DOI: 10.4018/IJDCF.315615
Article PDF Download
Open access articles are freely available for download

Abstract

An improved practical Byzantine fault tolerance (Practical Byzantine Fault Tolerant consensus algorithm based on reputation, RPBFT) algorithm based on grouping and reputation value voting is proposed for the problems of high communication complexity, poor scalability, and random selection of master nodes of the practical Byzantine fault tolerance (PBFT) consensus algorithm of the consortium chain. First, the consistency process is optimized to take the response speed of nodes to each group leader as the basis of grouping, and the intragroup consensus is performed. The group leader then takes the result of intragroup consensus and participates in extra-group consensus to reduce the frequency and time of internode communication. Second, the reputation model and voting mechanism are proposed, and the group leader is generated by node reputation value voting, which enhances the initiative and reliability of trusted nodes and reduces the abnormal nodes as group leader. Finally, a simulation and performance testing system based on this improved scheme is built to prove the effectiveness as well as the usability of the scheme through simulation experiments. The experimental results show that when the number of network nodes is 36, the throughput of the RPBFT algorithm is six times that of PBFT. Therefore, the consensus delay is reduced by 91.7%, and the communication overhead is reduced by 37.8%.
Article Preview
Top

Pbft

Consistency Protocol

The PBFT algorithm was proposed in 1999 as an algorithm specifically designed to solve the Byzantine general problem (Gao, Z., & Yang, L., 2020; Yu, G., et al., 2020). The algorithm aims to solve the problem of ensuring the consistency and correctness of the final decision in the presence of malicious nodes throughout the network.

The PBFT algorithm can tolerate no more than (n-1)/3 amount of malicious or faulty nodes (n is the total number of nodes), as shown in equation (1). If there are f malicious nodes, the number of normal nodes is at least f+1, and the total number of nodes is at least 3f+1 to allow the system to function properly, as shown in equation (2). If there is an extreme case with f malicious nodes as well as f faulty nodes, the total number of nodes is at least 3f+1 to ensure that the system can reach consensus smoothly:

IJDCF.315615.m01
(1)
IJDCF.315615.m02
(2)

In the PBFT algorithm, all nodes are classified into three types: client, master, and replica nodes. The master node mainly assigns sequence numbers to the transaction requests initiated by the clients, and the replica nodes execute the requests based on the sequence numbers to check whether there is any problem with the master node. When the master node is unable to complete the consensus, it will use the view change mechanism formula to continue the selection of a new master node as shown in equation (3). In this equation P is the master node number, V is the view number, and |R| is the number of nodes:

IJDCF.315615.m03
(3)

The consensus process of PBFT consists of five stages: request, pre-prepare, prepare, commit, and reply. The algorithm flow is shown in Figure 1.

  • Request: Client C sends a transaction request <REQUEST,o,t,c> to master node 0, where REQUEST contains the message content m and the message digest d(m). The client needs to sign the request; t is the timestamp, o indicates the operation, and c represents this client.

  • Pre-prepare: Master node 0 receives the request from client C, determines whether the number of messages being processed exceeds the limit, and if the limit is exceeded, it is first cached and then packaged and processed together later; if the limit is not exceeded, it generates <<PRE-PREPARE,v,n,d>,m> messages and broadcasts them to other nodes, where v is the view number, n is the sequence number of the request assigned a sequence number, and d is the summary of message m.

  • Prepare: Each replica node receives a “Prepare” message and verifies the current view, sequence number, transaction, and signature. If all pass, it broadcasts a <PREPARE,v,n,d,i> message to the other nodes to indicate that it received and acknowledged the request, where i is the node number; if not, it ignores the message.

  • Commit: After receiving 2f valid prepare messages, the node broadcasts a commit message <COMMIT,v,n,d,i> from the node, which receives 2f confirmation messages from other nodes, writes the received messages to the log if they are passed, executes the request, and replies with the message <REPLY,v,t,c,i,r> to the client, where r is a response of node i.

  • Reply: The result is valid when the client node receives at least f+1 identical response results from different nodes.

Figure 1.

PBFT Algorithm Flow

IJDCF.315615.f01

Complete Article List

Search this Journal:
Reset
Volume 16: 1 Issue (2024)
Volume 15: 1 Issue (2023)
Volume 14: 3 Issues (2022)
Volume 13: 6 Issues (2021)
Volume 12: 4 Issues (2020)
Volume 11: 4 Issues (2019)
Volume 10: 4 Issues (2018)
Volume 9: 4 Issues (2017)
Volume 8: 4 Issues (2016)
Volume 7: 4 Issues (2015)
Volume 6: 4 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing