Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions EIPS/eip-7251.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@
description: Allow validators to have larger effective balances, while maintaining the 32 ETH lower bound.
author: mike (@michaelneuder), Francesco (@fradamt), dapplion (@dapplion), Mikhail (@mkalinin), Aditya (@adiasg), Justin (@justindrake), lightclient (@lightclient), Felix Lange (@fjl)
discussions-to: https://ethereum-magicians.org/t/eip-7251-increase-the-max-effective-balance/15982
status: Last Call
last-call-deadline: 2025-02-21
status: Final
type: Standards Track
category: Core
created: 2023-06-28
requires: 7002, 7685

Check failure on line 11 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `requires` contains items not stable enough for a `status` of `Final`

error[preamble-requires-status]: preamble header `requires` contains items not stable enough for a `status` of `Final` --> EIPS/eip-7251.md:11:10 | 11 | requires: 7002, 7685 | ^^^^^ has a less advanced status | ^^^^^ has a less advanced status | = help: valid `status` values for this proposal are: `Draft`, `Last Call`, `Review`, `Stagnant` = help: see https://ethereum.github.io/eipw/preamble-requires-status/

Check failure on line 11 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `requires` contains items not stable enough for a `status` of `Final`

error[preamble-requires-status]: preamble header `requires` contains items not stable enough for a `status` of `Final` --> EIPS/eip-7251.md:11:10 | 11 | requires: 7002, 7685 | ^^^^^ has a less advanced status | = help: valid `status` values for this proposal are: `Draft`, `Last Call`, `Review`, `Stagnant` = help: see https://ethereum.github.io/eipw/preamble-requires-status/

Check failure on line 11 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `requires` contains items not stable enough for a `status` of `Final`

error[preamble-requires-status]: preamble header `requires` contains items not stable enough for a `status` of `Final` --> EIPS/eip-7251.md:11:10 | 11 | requires: 7002, 7685 | ^^^^^ has a less advanced status | = help: valid `status` values for this proposal are: `Draft`, `Last Call`, `Review`, `Stagnant` = help: see https://ethereum.github.io/eipw/preamble-requires-status/
---
## Abstract

Expand All @@ -29,7 +28,7 @@

| Name | Value | Comment |
| - | - | - |
| `CONSOLIDATION_REQUEST_TYPE` | `0x02` | The [EIP-7685](./eip-7685.md) type prefix for consolidation request |

Check failure on line 31 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7685.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7685.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 31 | | `CONSOLIDATION_REQUEST_TYPE` | `0x02` | The [EIP-7685](./eip-7685.md) type prefix for consolidation request | | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant` = help: see https://ethereum.github.io/eipw/markdown-link-status/
| `CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS` | `0x0000BBdDc7CE488642fb579F8B00f3a590007251` | Where to call and store relevant details about consolidation request mechanism |
| `SYSTEM_ADDRESS` | `0xfffffffffffffffffffffffffffffffffffffffe` | Address used to invoke system operation on contract |
| `EXCESS_CONSOLIDATION_REQUESTS_STORAGE_SLOT` | `0` | |
Expand All @@ -55,13 +54,13 @@

#### Consolidation request

The new consolidation request is an [EIP-7685](./eip-7685.md) request with type `0x02` consisting of the following fields:

Check failure on line 57 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7685.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7685.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 57 | The new consolidation request is an [EIP-7685](./eip-7685.md) request with type `0x02` consisting of the following fields: | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant`

1. `source_address`: `Bytes20`
2. `source_pubkey`: `Bytes48`
3. `target_pubkey`: `Bytes48`

The [EIP-7685](./eip-7685.md) encoding of a consolidation request is as follows. Note we simply return the encoded request value as returned by the contract.

Check failure on line 63 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7685.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7685.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 63 | The [EIP-7685](./eip-7685.md) encoding of a consolidation request is as follows. Note we simply return the encoded request value as ... | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant`

```python
request_type = CONSOLIDATION_REQUEST_TYPE
Expand Down Expand Up @@ -552,7 +551,7 @@

1. ***Increasing the `MAX_EFFECTIVE_BALANCE`, while creating a `MIN_ACTIVATION_BALANCE`.*** The core feature of allowing variable size validators.
2. ***Allowing for multiple validator indices to be combined through the protocol.*** A mechanism by which large node operators can combine validators without cycling through the exit and activation queues.
3. ***Adding execution layer partial withdrawals (part of [EIP-7002](./eip-7002.md)).*** Allowing Execution Layer messages to trigger partial withdrawals in addition to full exits (e.g., a `100 ETH` validator can remove up to `68 ETH` without exiting the validator).

Check failure on line 554 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7002.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7002.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 554 | 3. ***Adding execution layer partial withdrawals (part of [EIP-7002](./eip-7002.md)).*** Allowing Execution Layer messages to trigg... | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant`

Check failure on line 554 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7002.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7002.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 554 | 3. ***Adding execution layer partial withdrawals (part of [EIP-7002](./eip-7002.md)).*** Allowing Execution Layer messages to trigg... | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant` = help: see https://ethereum.github.io/eipw/markdown-link-status/

Check failure on line 554 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7002.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7002.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 554 | 3. ***Adding execution layer partial withdrawals (part of [EIP-7002](./eip-7002.md)).*** Allowing Execution Layer messages to trigg... | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant` = help: see https://ethereum.github.io/eipw/markdown-link-status/
4. ***Making the initial slashing penalty negligible.*** This reduces the risk of consolidation for large validators.

The [Rationale](#rationale) section contains an explanation for each of these proposed core features. A sketch of the resulting changes to the consensus layer is included below.
Expand Down Expand Up @@ -592,7 +591,7 @@

For large staking pools that already control thousands of validators, exiting and re-entering would be extremely slow and costly. The adoption of the EIP will be much higher by allowing in-protocol consolidation.

### Adding execution layer partial withdrawals (part of [EIP-7002](./eip-7002.md))

Check failure on line 594 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7002.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7002.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 594 | ### Adding execution layer partial withdrawals (part of [EIP-7002](./eip-7002.md)) | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant`

Check failure on line 594 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7002.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7002.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 594 | ### Adding execution layer partial withdrawals (part of [EIP-7002](./eip-7002.md)) | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant`

Check failure on line 594 in EIPS/eip-7251.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

proposal `eip-7002.md` is not stable enough for a `status` of `Final`

error[markdown-link-status]: proposal `eip-7002.md` is not stable enough for a `status` of `Final` --> EIPS/eip-7251.md | 594 | ### Adding execution layer partial withdrawals (part of [EIP-7002](./eip-7002.md)) | = help: because of this link, this proposal's `status` must be one of: `Draft`, `Last Call`, `Review`, `Stagnant`

For validators that choose to raise their effective balance ceiling, allowing for custom partial withdrawals triggered from the execution layer increases the flexibility of the staking configurations. Validators can choose when and how much they withdraw but will have to pay gas for the EL transaction.

Expand Down
Loading