# Practical Byzantine Fault Tolerance overview

The practical Byzantine Fault Tolerance model pBFT (Practical Byzantine Fault Tolerance) mainly focuses on providing a realistic Byzantine state machine replica that is tolerant of Byzantine faults (malicious nodes) through the assumption that there are independent node failures and manipulated messages transmitted by specific, independent nodes, the algorithm is designed to work in asynchronous systems and optimized for high performance over time running costs are impressive, and latency only increases slightly. All the pBFT (Practical Byzantine Fault Tolerance) model nodes are ordered, with one node being the primary node (the locomotive) and the other being called the standby node. All nodes in the system communicate with each other, and the goal is for all nodes to honestly come to a consensus on the system's state through a majority. Nodes communicate a lot with each other and have to prove that the message came from a particular peer and must verify that the message was not modified in transit.  For the pBFT (Practical Byzantine Fault Tolerance) model to work, it is assumed that the number of malicious nodes in the network cannot simultaneously equal or exceed 1∕3 of the total number of nodes in the system during a given vulnerability window. The more nodes in the system, the more probable it is that a number close to 1∕3 of the total number of nodes is malicious. The algorithm effectively provides both liveness and safety as long as the maximum (n-1)/1∕3), where n represents the total number of nodes, is malicious or failing simultaneously. The result is then final. The answers customers get from their inquiries are correct due to linearity. Each pBFT consensus round (called views) has four stages. This model follows a "Commander and Lieutenant" format rather than a pure Byzantine Generals Problem, in which all generals are equal due to the presence of a leader node. The stages are below. A client sends a request to the leader node to invoke a service operation. The lead node multicasts the request to the backup nodes. The nodes make the request and then send the response to the client. The client is waiting for f + 1 (f represents the maximum number of nodes that can fail) for a reply from different nodes with the same result. This result is the result of the operation. The requirement for nodes is that they are deterministic and start in the same state. The result is that all the honest nodes come to an agreement on the order of the record, and they accept or reject it. The leader node is changed in a round-robin format in every view and can even be replaced by a protocol called view change if a specific amount of time has passed that the leader node requests multicast. Many honest nodes can also decide if a leader is faulty and discard them with the next leader instead. Advantages and Concerns with the pBFT (Practical Byzantine Fault Tolerance) Model The pBFT consensus model is designed for practical applications, and its specific shortcomings are mentioned in the original academic literature, along with some key optimizations for implementing the algorithm into world-class systems. Transaction finality (No need for confirmations) Higher Energy efficiency (PoW only used for sybil defense; not consenses) Each Shard will be awarded (More even payout with lower variance)  In contrast, the pBFT (Practical Byzantine Fault Tolerance) model offers several significant advantages over other consensus models. One of the main advantages of the pBFT (Practical Byzantine Fault Tolerance) model is its ability to provide transaction completeness without needing confirmation, as in Proof-of-Work models such as the form that Bitcoin uses. If the nodes in the pBFT system agree upon a proposed block, then the block is final. This is enabled by the fact that all honest nodes agree on the system's state at that particular time as a result of their communication with each other. Another important advantage of the pBFT model over PoW systems is the significantly reduced energy usage. One round of PoW is required for each block in a Proof-of-Work model, such as Bitcoin. This has resulted in electricity consumption of the Bitcoin network by miners competing with small countries every year. With pBFT (Practical Byzantine Fault Tolerance) not computationally intensive, a significant reduction in electrical power is inevitable as miners fail to solve the PoW computation-intensive hashing algorithm for every block. Despite its clear and promising advantages, there are several key limitations to the pBFT consensus mechanism. In particular, the model only works well in the classical form with a small consensus group size due to the cumbersome amount of communication required between the nodes. The article mentions using digital signatures and MAC (Method Authentication Codes) as the message authentication format, but using MAC is extremely inefficient with the amount of data. There is an inherent inability to prove the authenticity of messages to third parties without communication between nodes in large consensus groups such as cryptocurrency networks and MACs. While digital signatures and multisigs significantly improve MAC, overcoming the communication limitations of the pBFT model while maintaining security is the most important development needed for any system that wants to implement it effectively. The pBFT (Practical Byzantine Fault Tolerance) model is also vulnerable to synchronous attacks where one party can create or manipulate a large number of identities (nodes in the network), thereby compromising the network. This is minimized compared to larger network sizes. Still, the scalability and high throughput capabilities of the pBFT (Practical Byzantine Fault Tolerance) model are reduced with larger sizes and therefore need to be optimized or used in conjunction with other consensus mechanisms
