Problem Definition
Learn the definition of the Byzantine problem.
We'll cover the following
Overview
The system model contains a collection of processes that processes may exhibit Byzantine behavior, i.e., processes are non-faulty.
For the Byzantine failure model, the agreement and validity conditions are slightly different from those we defined in this definition
Correctness conditions for the Byzantine agreement problem
There are processes, of which at most might exhibit Byzantine behavior, i.e., at least processes are correct, and any non-faulty process starts with an initial input value . The non-faulty processes must decide on one of those values, satisfying the following properties:
- Termination: Every non-faulty process eventually irreversibly decides on a value in finite time.
- Agreement: All non-faulty processes decide for the same value, i.e., no two non-faulty processes decide differently.
- Validity: If all non-faulty processes started by proposing the same initial value , then any non-faulty process in the decided state has chosen that value , i.e., for all non-faulty processes .
Note: Since the set of initial values only consists of binary values , this kind of agreement is also called the Binary Byzantine agreement. Any algorithm that solves the Byzantine agreement for binary values can be used as a subroutine for solving the general Byzantine agreement.
According to
While only non-crashing processes are able to reach the decided state in the fail-stop model and hence every correct process decided for the same value at the end, faulty processes are able to state an incorrect decision variable at the end of the agreement process in the Byzantine failure model.
Get hands-on with 1400+ tech skills courses.