Understanding Byzantine Generals Problem
The Byzantine Generals problem is about the dilemma in which a group of generals, each commanding a portion of the Byzantine army, encircle a city. These generals wish to formulate a plan for attacking the city.
In its simplest form, the generals must decide only whether to attack or retreat. Some generals may prefer to attack, while others prefer to retreat. The important thing is that every general agree on a common decision. For a halfhearted attack by a few generals would fail the attack. The problem is complicated with the presence of treacherous generals.
For instance, if nine generals are voting, four of whom support attacking while four others are in favor of retreat, the ninth general may send a vote of retreat to those generals in favor of retreat, and a vote of attack to the rest.
Those who received a retreat vote from the ninth general will retreat, while the rest will attack (which may not go well for the attackers). The problem is complicated further by the generals being physically separated and having to send their votes via messengers who may fail to deliver votes or may forge votes.
Approach to this dilemma:
The problem here is really about reaching a consensus. It is impossible for every “soldier” to communicate with each other since there were no phones back then.
The approach to this problem nowadays can be answered in multiple ways. One of the first solutions was to create a central authority that would determine the consensus but will also give them the power to dictate and change terms as they like until Bitcoin came into existence.
In Bitcoin (BTC) to reach consensus, nodes validate blocks of data by reaching consensus on the solution to a given problem. A byzantine agreement is reached when a certain minimum number of nodes agrees that the solution presented is correct. Thereby validating a block and allowing its inclusion in the blockchain.
Ripple (XRP) decided to take things to a different level. By giving up some features of Bitcoin, so they could focus on speed. In the case of Ripple, Ripple foundation selects the validators (or nodes). These validators send a message back and forth and use a voting process to confirm the new ledger. If over 66% of validators agree on the ledger, it is included in the network. It is significantly faster and efficient in comparison to PoW and PoS consensus, but compromises on decentralization.