Ethereum Consensus Specifications
This repository hosts the Ethereum proof-of-stake specifications for consensus-layer clients. Design rationale and proposed changes are discussed in issues. Agreed-upon changes are made through pull requests. Specifications can be found in specs, arranged by upgrade. Each upgrade builds on the previous, specifying only what it changes. Individual features are developed in parallel and are folded into an upgrade when ready.
Stable specifications
| Seq. | Code Name | Fork Epoch | Link |
| ---- | ------------- | ---------- | ----------------------- |
| 0 | Phase0 | 0 | Spec |
| 1 | Altair | 74240 | Spec |
| 2 | Bellatrix | 144896 | Spec |
| 3 | Capella | 194048 | Spec |
| 4 | Deneb | 269568 | Spec |
| 5 | Electra | 364032 | Spec |
| 6 | Fulu | 411392 | Spec |
Unstable specifications
| Seq. | Code Name | Fork Epoch | Link | | ---- | --------- | ---------- | ------------------- | | 7 | Gloas | TBD | Spec | | 8 | Heze | TBD | Spec |
Rendered viewers
- https://ethereum.github.io/spec-viewer/
- https://ethereum.github.io/consensus-specs/
Reference tests
Design goals
- Minimize complexity, even at the cost of some losses in efficiency.
- Remain live through major network partitions and mass node outages.
- Select components that are quantum-secure or easy to swap out.
- Use crypto and design techniques that support a large validator set.
- Minimize hardware requirements such that a consumer laptop can participate.
External specifications
- Beacon APIs
- Beacon Metrics
- Builder Specs
- Cryptography Specs
- Deposit Contract
- Engine APIs
- SimpleSerialize Specs