# eBFT

## EO Byzantine Fault Tolerance (eBFT)

eBFT is a secure and novel network employed by EO. It consists of a **consensus engine** **(IBFT)** and **External Validator Set Configuration Protocol (Aegis)**. eBFT utilizes the[ IBFT consensus engine](https://arxiv.org/abs/1909.10194) to seal blocks, provide specific network capabilities, and govern the network. EO EigenLayer-integrated smart contracts on Ethereum work in tandem with the [Tendermint](https://tendermint.com/)[-based](https://tendermint.com/) consensus engine, fully implementing the Aegis Protocol.

eBFT's **External Validator Set Configuration Protocol** **(Aegis)** is implemented through a set of core smart contracts adhering to the Aegis protocol's specification. These contracts integrate restaking functionality, configure the validator set, and record commitments of the EO state.&#x20;

* **Immediate block finality**: At every chain height, only one block is proposed, and so forking and uncle blocks are avoided. This also mitigates transactions being reverted once on-chain later.
* **Reduced time between blocks**: The construction, validation, and execution time of block forming is efficiently managed, increasing the chain's blockrate.
* **High data integrity and fault tolerance**: IBFT 2.0's Aegis configured Validator Set, part of the Ethereum Validator set,  proposes each block. \~66% of these validators must verify the block before addition, making malicious block approval very infeasible. The proposer of the block rotates over time (based on [Tendermint](https://tendermint.com/)), ensuring a faulty node cannot exert long-term influence over the chain.

#### State transitions <a href="#state-transitions" id="state-transitions"></a>

IBFT 2.0 defines a sequence of state transitions that determine chain-wide consensus on the state. A validator proposes a block to be added, which specifies operations updating the blockchain's state.

Validators of the Ethereum Validator Set accept valid proposed blocks. Each validator's voting allocated stake determines their voting weight, and a supermajority of validators must verify a block for it to be accepted.&#x20;

When a validator proposes a new block, other validators verify it and vote on whether to accept it, and this can be repeated if needed. During each round of repetition, a threshold number of validators must verify and sign the block for it to be added to the blockchain. If the threshold isn't reached, the next round will begin. Another validator will then propose a block and repeat the process.

If the proposed block is verified and signed by the threshold number of validators, it's accepted and reflected in the new state of the blockchain.

The proposer is chosen to construct a block at the block rate. The proposer selection mechanism is based on [Tendermint](https://tendermint.com/), through a deterministic selection algorithm. Validators with more voting power get selected more frequently.

#### Consensus Benefits <a href="#consensus-benefits" id="consensus-benefits"></a>

A validator's voting power is proportional to the amount staked. This means that validators with more stake will have more voting power and, therefore, more influence over the decision-making process on the network. This also provides an economic incentive for validators to behave honestly and act in the network's best interest.

EBFT is using the [PolyBFT stack](https://github.com/0xPolygon/polygon-edge), leveraging its external staking design and cross-chain features. The Aegis protocol completes and secures the network through integration with Ethereum native validators through EigenLayer.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.eo.app/docs/concepts/ebft.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
