PBFT means a practical Byzantine fault-tolerant algorithm proposed by Castro and Liskov in 1999. The problem of inefficiency of original Byzantine fault-tolerant algorithm is solved, and the complexity of the algorithm is reduced from exponential level to polynomial level, which makes Byzantine fault-tolerant algorithm feasible in practical system application.
PBFT is a replication algorithm of state mechanism, that is, service is modeled as state machine. State and replication in different nodes of distributed system. Each copy of the state machine saves the state of the service and implements the operation of the service. The set of all copies is represented by the capital letter R. Use integers from 0 to R-1 to represent each copy. For ease of description, assume R = 3F + 1. Here, f is the maximum number of copies that are likely to fail. Although there may be more than 3F + 1 replicas, additional replicas do not improve reliability beyond performance degradation.
The algorithm flow of PBFT is as follows: First, the client sends a request to the master node to invoke the service operation, and then the master node broadcasts the request to other copies. All copies execute the request and send the result back to the client. The client needs to wait for F + 1 different replica nodes to return the same result as the final result of the whole operation. Like all state and replication technologies, PBFT imposes two restrictions on each replica node, and all nodes must be deterministic. That is to say, the result of operation must be the same when the given state and parameters are the same. Secondly, all nodes must be executed from the same state.Under these two constraints, even if there are invalid replica nodes, the PBFT algorithm agrees on the overall order of execution of requests for all non-invalid replica nodes to ensure security.
The algorithm can not solve the problem of information confidentiality, and invalid copies may leak information to attackers. In general, it is impossible to provide information confidentiality, because service operations need to use parameters and service state to handle arbitrary calculations. All replicas need this information to perform operations effectively. Of course, it is possible to achieve privacy through secret sharing mode in the presence of malicious copies, because parameters and partial states are not visible to service operations. PBFT algorithm agrees that each node is composed of business participants or supervisors, and security and stability are guaranteed by business stakeholders. The consensus delay is about 2 to 5 seconds. It basically meets the requirements of commercial real-time processing. Consensus is efficient and can meet the demand of high-frequency trading volume.