Byzantine agreement[1,2] is a classical problem concerned with reaching agreement on a single bit of data in a network of $n$ players, out of which $t$ players may be faulty. Each player starts with an input bit $b_{i}$ and the objective is that all non-faulty players output the same bit $d$ (agreement), under the constraint that $d=b_{i}$ for some node $i$ (validity).
The difficulty of this task depends on the failure model of the faulty players. In Byzantine agreement, the faulty players are allowed to behave arbitrarily (including actively breaking the protocol, colluding, etc). Byzantine agreement is an important problem in classical distributed systems, used to guarantee consistency among distributed data structures.
No content has been added to this section, yet!
Cryptocurrencies and Blockchain Protocols
Bitcoin, Ethereum (PoW/PoS models): Use variants of BA for reaching consensus on the blockchain state, although not traditional BA. Tendermint, HotStuff, PBFT-based blockchains (e.g., Cosmos, Diem): These rely directly on classical Byzantine Fault Tolerant (BFT) protocols. Algorand also uses a cryptographic sortition + BA protocol (BA⋆) to select committees and finalise blocks.
Permissioned Distributed Ledgers: Hyperledger Fabric OR IBM Blockchain use PBFT-style consensus mechanisms. These systems operate in enterprise settings where nodes are known but still not fully trusted, making BA protocols essential.
A Byzantine Agreement protocol is formally defined to satisfy the criteria of agreement, validity and termination. The agreement simply requires every non-faulty player to output the same bit. Validity excludes the trivial solution of always outputting a specific bit by requiring that the agreement value is at least proposed once. Termination means that any protocol is required to eventually finish. Formally, Byzantine agreement is achieved if:
In Byzantine Agreement, node failures are modelled as Byzantine Failures. In this failure model, the failed nodes are allowed to behave arbitrarily, including maliciously trying to prevent the non-faulty nodes from reaching agreement. In particular, failed nodes can collude together.
[1] Lamport, Leslie, Robert Shostak, and Marshall Pease. “The Byzantine generals problem.” In Concurrency: the works of leslie lamport, pp. 203-226. 2019.
[2] Ben-Or, Michael, and Avinatan Hassidim. “Fast quantum byzantine agreement.” In Proceedings of the thirty-seventh annual ACM symposium on Theory of computing, pp. 481-485. 2005.
Byzantine agreement[1,2] is a classical problem concerned with reaching agreement on a single bit of data in a network of $n$ players, out of which $t$ players may be faulty. Each player starts with an input bit $b_{i}$ and the objective is that all non-faulty players output the same bit $d$ (agreement), under the constraint that $d=b_{i}$ for some node $i$ (validity).
The difficulty of this task depends on the failure model of the faulty players. In Byzantine agreement, the faulty players are allowed to behave arbitrarily (including actively breaking the protocol, colluding, etc). Byzantine agreement is an important problem in classical distributed systems, used to guarantee consistency among distributed data structures.
No protocols implement this functionality yet.
No content has been added to this section, yet!
Cryptocurrencies and Blockchain Protocols
Bitcoin, Ethereum (PoW/PoS models): Use variants of BA for reaching consensus on the blockchain state, although not traditional BA. Tendermint, HotStuff, PBFT-based blockchains (e.g., Cosmos, Diem): These rely directly on classical Byzantine Fault Tolerant (BFT) protocols. Algorand also uses a cryptographic sortition + BA protocol (BA⋆) to select committees and finalise blocks.
Permissioned Distributed Ledgers: Hyperledger Fabric OR IBM Blockchain use PBFT-style consensus mechanisms. These systems operate in enterprise settings where nodes are known but still not fully trusted, making BA protocols essential.
A Byzantine Agreement protocol is formally defined to satisfy the criteria of agreement, validity and termination. The agreement simply requires every non-faulty player to output the same bit. Validity excludes the trivial solution of always outputting a specific bit by requiring that the agreement value is at least proposed once. Termination means that any protocol is required to eventually finish. Formally, Byzantine agreement is achieved if:
In Byzantine Agreement, node failures are modelled as Byzantine Failures. In this failure model, the failed nodes are allowed to behave arbitrarily, including maliciously trying to prevent the non-faulty nodes from reaching agreement. In particular, failed nodes can collude together.
[1] Lamport, Leslie, Robert Shostak, and Marshall Pease. “The Byzantine generals problem.” In Concurrency: the works of leslie lamport, pp. 203-226. 2019.
[2] Ben-Or, Michael, and Avinatan Hassidim. “Fast quantum byzantine agreement.” In Proceedings of the thirty-seventh annual ACM symposium on Theory of computing, pp. 481-485. 2005.
Byzantine agreement[1,2] is a classical problem concerned with reaching agreement on a single bit of data in a network of $n$ players, out of which $t$ players may be faulty. Each player starts with an input bit $b_{i}$ and the objective is that all non-faulty players output the same bit $d$ (agreement), under the constraint that $d=b_{i}$ for some node $i$ (validity).
The difficulty of this task depends on the failure model of the faulty players. In Byzantine agreement, the faulty players are allowed to behave arbitrarily (including actively breaking the protocol, colluding, etc). Byzantine agreement is an important problem in classical distributed systems, used to guarantee consistency among distributed data structures.
Cryptocurrencies and Blockchain Protocols
Bitcoin, Ethereum (PoW/PoS models): Use variants of BA for reaching consensus on the blockchain state, although not traditional BA. Tendermint, HotStuff, PBFT-based blockchains (e.g., Cosmos, Diem): These rely directly on classical Byzantine Fault Tolerant (BFT) protocols. Algorand also uses a cryptographic sortition + BA protocol (BA⋆) to select committees and finalise blocks.
Permissioned Distributed Ledgers: Hyperledger Fabric OR IBM Blockchain use PBFT-style consensus mechanisms. These systems operate in enterprise settings where nodes are known but still not fully trusted, making BA protocols essential.
A Byzantine Agreement protocol is formally defined to satisfy the criteria of agreement, validity and termination. The agreement simply requires every non-faulty player to output the same bit. Validity excludes the trivial solution of always outputting a specific bit by requiring that the agreement value is at least proposed once. Termination means that any protocol is required to eventually finish. Formally, Byzantine agreement is achieved if:
In Byzantine Agreement, node failures are modelled as Byzantine Failures. In this failure model, the failed nodes are allowed to behave arbitrarily, including maliciously trying to prevent the non-faulty nodes from reaching agreement. In particular, failed nodes can collude together.
[1] Lamport, Leslie, Robert Shostak, and Marshall Pease. “The Byzantine generals problem.” In Concurrency: the works of leslie lamport, pp. 203-226. 2019.
[2] Ben-Or, Michael, and Avinatan Hassidim. “Fast quantum byzantine agreement.” In Proceedings of the thirty-seventh annual ACM symposium on Theory of computing, pp. 481-485. 2005.