The consensus algorithm in cryptocurrincies is known to be a solution to the Byzantine general problem.
Because of this, the voting system, which is the consensus algorithm used by Casper and Tendermint, applies the Byzantine Fault Tolerance(BFT).
The main feature of the BFT is that more than two-thirds of all voters require a digital signature in order to finalize the block.
But I think that the consensus algorithm that generates blocks by voting in cryptocurriencies is not a Byzantine general problem(BGP).
Byzantine Fault Tolerance: https://en.wikipedia.org/wiki/Byzantine_fault_tolerance
So, I think this problem started with Satoshi's claim.
Satoshi's email: http://satoshi.nakamotoinstitute.org/emails/cryptography/11/
I have not thought about the fact that the PoW consensus algorithm is a solution to the BGP, so I do not have any comments yet.
Now, let me briefly look at the BGP through Lamport's paper, which first raised the BGP, in order to understand the BGP.
Lamport's paper: http://bnrg.cs.berkeley.edu/~adj/cs16x/hand-outs/Original_Byzantine.pdf
The figure below shows a brief overview of the BGP of this paper.
The BGP in this figure is made up of one commander and two lieutenants, showing how they decide to attack or retreat.
The commander can only command the lieutenants to attack or retreat.
This figure tells us how many byzantines (traitors) needed to make the right decision among them. Here, the traitor is called the byzantine.
The byzantine is lieutenant 2 in Fig. 1 and a commander in Fig. 2.
And these figures reveals the characteristics of the byzantine.
Let's first look at Fig. 1, where lieutenant 2 is a traitor.
So, lieutenant 2 delivers the retreat to Lieutenant 1 instead of the attack from the commander.
Because of this, lieutenant 1 receives an order (attack, retreat), because lieutenant 2 has forged a command from the commander.
In this case, lieutenant 1 receives a command (attack, retreat) and thus he is unable to decide whether to attack or retreat.
Eventually, the commander alone attacks the castle and this army loses in the war.
Fig. 2 shows that byzantine is the commander.
In this case, the commander orders lieutenant 1 to attack and lieutenant 2 orders to retreat.
In other words, this commander delivers different orders to each Lieutenant to defeat the war.
In this case, lieutenant 1 and lieutenant 2 are each ordered by the commander to attack and retreat.
Figure 3 shows the solution to this. This is because they can not make the right decisions in the presence of the traitors.
In this case, since lieutenant 3 is a traitor, he sends x to lieutenant 2 instead of v received from the commander.
Eventually, lieutenant 2 receives (v, v, x) from the commander, lieutenant 1 and lieutenant 3, and thus they make the right decisions. The lieutenant 2 is able to make a majority decision.
In conclusion, these voting system in cryptocurrencies make the right decisions if the traitors are less than one-third of the total voters, so they must get at least 2/3 of the votes from all voters.
For this reason, the BFT algorithm can finalize the blocks when more than two-thirds of all voters agree to the blocks.
However, it is important to know that all of the above cases were oral l messages. That is, the traitor can forge the messages.
Thus, if you add a digital signature to a message, nobody can forge it, so the system of voting for cryptocurriencies is not a two-thirds problem, but a majority of problem.
Since I knew BFT, I thought that the consensus algorithm of the voting systems was not the BGP.
Currently, almost all cryptocurriencies such as Tender Mint and Casper are using the BFT system.
Below is why I think the voting system in the cryptocurriencies is not the BGP.
First, when the validators or block producers votes to finalize the blocks, they are not Byzantine of Lamport's paper because they digitally sign their votes.
This is because the voters can not forge the votes of other voters and leaders can not send different blocks to voters.
In other words, the voting system in cryptocurriencies is not an oral messages, but a signed messages.
Second, all voters participate in the vote in cryptocurriencies.
In lamport's paper, however, the lieutenant does not include his own decision, so that he decides only by the votes he receives.
In other words, the lieutenants who decides attack and retreat do not participate in the vote.
For reference, all lieutenants decide whether to attack or retreat, based on the majority of messages they receive in this paper.
However, the BFT in cryptocurriencies is a voting system in which all voters participate.
The BGP consists of 1) a commander and 2) the lieutenants who submit to the command of the commander.
In this way, the BFT algorithm first draws the leader, then the leader creates the block, and then the other voters vote on it.
So, the BFT is the same structure as the BGF.
To avoid this, I thought how both leaders and voters would participate in the creation of the blocks.
My method is that the leader specifies all of the txids to be included in the current block, broadcasts it, and the voters create this block with the txids and broadcast the hash of this block to the network.
This is not a BGP because both the leader and the voters in my method participate in the block creation together.
So, my method requires that all voters (validators) broadcast the same block hash to the network if the order of all txids to be included in the block is the same.
For this reason, I do not think that the voting system in cryptocurriencies is a Byzantine general problem.
I think the voting system in cryptocurriencies is the majority problem.
@dan