# Research on Progress of Blockchain Consensus Algorithm:
## 3 Blockchain Consensus Algorithm
### Non-Byzantine Fault-Tolerant Consensus Algorithm
#### 3.2.2 Paxos Algorithm  
The Paxos algorithm was proposed by [PERSON], an expert in the field of distributed technology, in 1990. This algorithm can make a distributed network that may have network failures, machine downtime, message delay or loss, etc., quickly achieve data consistency, and ensure the security of the distributed network. The Paxos algorithm aims to solve the distributed consistency problem, so that multiple participating nodes in the distributed system can reach a consensus after multiple steps. In the Paxos algorithm, node roles are divided into three categories: proposer, acceptor, and learner. A node does not just have a single role, but it can play multiple roles, and there is a certain transformation relationship. There may be one or more Proposers, which are responsible for making proposals. There must be multiple acceptors. They vote on the specified proposal, accept the proposal if they agree, and reject it if they disagree. The learner collects the proposals accepted by each acceptor and promotes the formation of the final proposal based on the principle of the minority obeying the majority. In practical applications, the Paxos algorithm can be roughly divided into two working phases: the preparation phase and the submission phase. In the preparation stage, the proposer first sends multiple proposals, including the number and proposal value of each proposal, to each acceptor. The acceptor saves the various proposals sent by the proposer, compares them, and saves the proposal with the maximum proposal number; at the same time, the acceptor returns the maximum proposal value received to the proposer and discards proposals with a proposal number less than the maximum number after checking the original or received proposal numbers. In the submission stage, after the proposer receives more than 1/2 of the total number of acceptors, the proposers will return the received proposal and send them to all other acceptors. In this process, the recipient continues the work in the preparation phase, compares the proposal numbers sent, saves the largest proposal number, and updates the proposal value, and the learner forwards it after obtaining the voting result. When more than half of the recipients in the system have the same proposal value, the consensus is reached, and the consensus result is that multiple nodes participate in the work and get the same proposal value. The Paxos algorithm flow is shown in Figure 3.  
The Paxos algorithm was first applied to prove that the system is safe and efficient. The communication between nodes does not need to verify the identity and signature, and the design is rigorous and logical. Due to the multi-role participation message passing mechanism adopted by the Paxos algorithm, the algorithm is non-Byzantine fault-tolerant. Scenarios such as the failure of less than half of the acceptors or the failure of the proposer will not affect the operation of the algorithm. After the proposal number or the content of the proposal is confirmed, even if less than half of the proposers fail, the result will not be affected. However, the required accuracy and conditions for the Paxos algorithm implementation are also relatively harsh. It is only applicable to private chains and cannot be applied to environments with malicious nodes. Subsequently, based on the Paxos algorithm, researchers successively proposed improved Paxos-like algorithms such as Multi Paxos [50] and Cheap Paxos [51]. These algorithms have obvious improvements in computational efficiency and security. For example, the Multi-Paxos algorithm accelerates the consensus among nodes by strengthening the authority of the leader. The Cheap-Paxos algorithm proposes to replace the faulty node with a less expensive auxiliary node to ensure the safe operation of the blockchain. The Mencius algorithm [52] reduces the work delay and achieves load balancing through the master-slave rotation system of replicas.