# The Modification of pBFT Algorithm to Increase Network Operations Efficiency in Private Blockchains
## 3 Modification of the pBFT Algorithm  
Since pBFT is a BFT consensus algorithm, final agreement is possible by consensus of nodes corresponding to two thirds of all nodes. The consensus of pBFT requires duplicate verification and confirmation by all nodes, which increases network operation cost and causes duplicate processing.  
In this paper, we propose mpBFT in order to increase network operation cost, which is a disadvantage of pBFT, and to efficiently operate duplicate verification for all nodes.  
\begin{table}
\begin{tabular}{l} \hline Node: Primary Node + Backup \\ Sends the client’s state conversion request—request(M) —to the primary node \\ Request result cleanup and Pre\_Prepare by Primary(Leader) Node \\ -Generate sequential number for request (N) \\ -Sending Pre\_Prepare message to Backup \\ \textless{}Pre\_Prepare, V,N,D(M)> \\ v: the view to which the message is sent \\ N: sequential number \\ D(M): Summary of M \\ \end{tabular} \begin{tabular}{l} \\ Verification of whether D(M), V,N correspond to each other for the Pre\_Prepare message of any backup node a \\ -if T: Send Prepare to all nodes on the rest of the network \\ -else: do not accept message \\ -Prepare-C Pre\_Prepare, V,N,D(M), a) \\ a: Node number for which Pre\_Prepare was verified \\ \end{tabular} \begin{tabular}{l} \\ Each node collects Pre\_Prepare and Prepare messages \\ Check if the status of prepared certificate: If the number of collected Pre\_Prepare messages is \\ 2f + 1 and Prepare is 2f or more, it becomes the prepared the request node. \\ \end{tabular} \
\begin{tabular}{l} A node that satisfies the prepared certificate sends a commit message to all nodes in the network. \\ -commit-commit, V,N,a) \\ Each node collects commit message \\ -commit certificate: node with 2f + 1 commit message \\ \end{tabular}
\begin{tabular}{l} A node that satisfies the prepared certificate and the commit certificate accepts the request: \\ satisfies safety \\ Request dismissal if not satisfied: Some sacrifices to Liveness \\ \end{tabular}
\end{table}
Table 1: pBFT Process algorithm [19,20].  
In mpBFT, for the purpose of operating an efficient BFT consensus algorithm in an asynchronous network, flexible consensus algorithm selection through status bits for client requests and the consensus process of the leader node group are applied. The difference from the previously announced Tendermint is the application of a flexible algorithm and the method of selecting a representative node.  
First, to apply a flexible algorithm, apply the status bit to the client's request and determine whether the requested content is based on processing or future queries. If the request is for simple transaction processing, the mpBFT algorithm can quickly reach consensus without a duplicate agreement, and verification is applied through leader nodes. If transaction sharing and verification by all nodes such as a query is required, the existing pBFT method and mpBFT should be properly mixed and utilized.  
The difference between mpBFT and pBFT is that leader node groups can be selectively used in response to client requests. Considering that it is a network in which only trusted nodes participate, verification of the leader node group is possible in order to reduce the duplicate verification process. In case of failure, it is necessary to reply to the client that agreement is not possible. When selecting a leader node, a node weight is assigned based on the node's reliability, frequency of use, and previous history. For the leader node election, the method of RAFT, the existing consensus algorithm, is modified and applied.