https://github.com/ethereum/consensus-specs
Ethereum Proof-of-Stake Consensus Specifications
https://github.com/ethereum/consensus-specs
Last synced: 5 months ago
JSON representation
Ethereum Proof-of-Stake Consensus Specifications
- Host: GitHub
- URL: https://github.com/ethereum/consensus-specs
- Owner: ethereum
- License: cc0-1.0
- Created: 2018-09-20T05:12:54.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-07-09T21:20:14.000Z (6 months ago)
- Last Synced: 2025-07-10T05:07:43.862Z (6 months ago)
- Language: Python
- Homepage:
- Size: 23.4 MB
- Stars: 3,746
- Watchers: 240
- Forks: 1,095
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome - Consensus Specification
- best-of-crypto - GitHub - 22% open · ⏱️ 05.06.2024): (Smart Contract Platforms)
README
# Ethereum Proof-of-Stake Consensus Specifications
[](https://discord.gg/qGpsxSA)
[](https://github.com/ethereum/consensus-specs/actions/workflows/generate_vectors.yml)
This repository hosts the current Ethereum
[proof-of-stake](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/)
specifications. Discussions about design rationale and proposed changes can be
brought up and discussed as issues. Solidified, agreed-upon changes to the
specifications can be made through pull requests.
## Specifications
Core specifications for Ethereum proof-of-stake clients can be found in
[specs](specs). These are divided into features. Features are researched and
developed in parallel, and then consolidated into sequential upgrades when
ready.
### Stable Specifications
| Seq. | Code Name | Fork Epoch | Links |
| ---- | ------------- | ---------- | ---------------------------------------------------------------------------- |
| 0 | **Phase0** | `0` | [Specs](specs/phase0), [Tests](tests/core/pyspec/eth2spec/test/phase0) |
| 1 | **Altair** | `74240` | [Specs](specs/altair), [Tests](tests/core/pyspec/eth2spec/test/altair) |
| 2 | **Bellatrix** | `144896` | [Specs](specs/bellatrix), [Tests](tests/core/pyspec/eth2spec/test/bellatrix) |
| 3 | **Capella** | `194048` | [Specs](specs/capella), [Tests](tests/core/pyspec/eth2spec/test/capella) |
| 4 | **Deneb** | `269568` | [Specs](specs/deneb), [Tests](tests/core/pyspec/eth2spec/test/deneb) |
| 5 | **Electra** | `364032` | [Specs](specs/electra), [Tests](tests/core/pyspec/eth2spec/test/electra) |
### In-development Specifications
| Seq. | Code Name | Fork Epoch | Links |
| ---- | --------- | ---------- | ------------------------------------------------------------------ |
| 6 | **Fulu** | TBD | [Specs](specs/fulu), [Tests](tests/core/pyspec/eth2spec/test/fulu) |
### Accompanying documents
- [SimpleSerialize (SSZ) spec](ssz/simple-serialize.md)
- [Merkle proof formats](ssz/merkle-proofs.md)
- [General test format](tests/formats/README.md)
### External specifications
Additional specifications and standards outside of requisite client
functionality can be found in the following repositories:
- [Beacon APIs](https://github.com/ethereum/beacon-apis)
- [Engine APIs](https://github.com/ethereum/execution-apis/tree/main/src/engine)
- [Beacon Metrics](https://github.com/ethereum/beacon-metrics)
- [Builder Specs](https://github.com/ethereum/builder-specs)
### Reference tests
Reference tests built from the executable Python spec are available in the
[Ethereum Proof-of-Stake Consensus Spec Tests](https://github.com/ethereum/consensus-spec-tests)
repository. Compressed tarballs are available for each release
[here](https://github.com/ethereum/consensus-spec-tests/releases). Nightly
reference tests are available
[here](https://github.com/ethereum/consensus-specs/actions/workflows/generate_vectors.yml).
## Contributors
### Installation and usage
Clone the repository with:
```bash
git clone https://github.com/ethereum/consensus-specs.git
```
Switch to the directory:
```bash
cd consensus-specs
```
View the help output:
```bash
make help
```
### Design goals
The following are the broad design goals for the Ethereum proof-of-stake
consensus specifications:
- Minimize complexity, even at the cost of some losses in efficiency.
- Remain live through major network partitions and when very large portions of
nodes go offline.
- Select components that are quantum secure or easily swappable for
quantum-secure alternatives.
- Utilize crypto and design techniques that allow for a large participation of
validators.
- Minimize hardware requirements such that a consumer laptop can participate.
### Useful resources
- [Design Rationale](https://notes.ethereum.org/s/rkhCgQteN#)
- [Phase0 Onboarding Document](https://notes.ethereum.org/s/Bkn3zpwxB)
- [Combining GHOST and Casper paper](https://arxiv.org/abs/2003.03052)
- [Specifications viewer (mkdocs)](https://ethereum.github.io/consensus-specs/)
- [Specifications viewer (jtraglia)](https://jtraglia.github.io/eth-spec-viewer/)
- [The Eth2 Book](https://eth2book.info)
- [PySpec Tests](tests/core/pyspec/README.md)