There are many problems in the Byzantine family of questions whose names are slightly different and related in different ways. In general, the problem concerns a network of nodes, all of which are connected to all, some of which are honest and some are contradictory, i. Each of these nodes has some "inputs" that may be different for each and they want to agree on a common view. The "input" may be the amount of new transactions to be confirmed, for example, in the case of Bitcoin.
The canonical problems in space that are equivalent (if you can solve one, you can solve the other) are formulated as follows:
The Byzantine Agreement problem, A group of nodes must agree on a certain value. The protocol must (a) end within a limited time, (b) all honest nodes achieve the same result and (c) the result obtained must match the input of one of the nodes.
The problem of Byzantine generals, A group of nodes has a specific "leader" called a "general." The leader has an input value and the rest of the nodes must agree on a value. The protocol must (a) end within a limited time, (b) all honest nodes achieve the same result, and (c) if the leader is honest, the value agreed upon by all should be the value of the leader.
These issues were presented by Lamport in his contribution.
These problems can be modified to allow less connectivity or errors that are not Byzantine (that is, allow no malicious information, but only errors that do not attempt to actively infiltrate the system). You can also add digital signatures to the mix to simplify the issues.
In the case of Bitcoin, the problem is a harder version. anonymous Byzantine agreement. In this case, the number of parties can be changed arbitrarily, and the parties do not know who is sending the individual messages. The solution to this is the use of proof-of-work.
To answer your original question Byzantine agreement against Byzantine fault tolerance, By and large, these titles refer to the same problem of correspondence. In particular, BA is used to refer to the specific problem of consensus on a decision under Byzantine attitudes. BFT refers to the drafting of a generic protocol (which does not necessarily require an agreement), such as the Byzantine Generals Protocol, to address a problem under Byzantine errors, i. H. malicious mistakes, to solve. The generic problem of BFT and the problem of BA are equivalent. If you have an agreement, you can be fault tolerant. and if you are fault tolerant, you can reach an agreement.