Skip to content

Commit

Permalink
Merge 1c11651 into 98d0e73
Browse files Browse the repository at this point in the history
  • Loading branch information
dapplion authored Jun 22, 2023
2 parents 98d0e73 + 1c11651 commit 6500963
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions EIPS/eip-7044.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
eip: 7044
title: Perpetually Valid Signed Voluntary Exits
description: Lock voluntary exit signature domain on capella for perpetual validity
author: Lion (@dapplion)
discussions-to: https://ethereum-magicians.org/t/eip-7044-perpetually-valid-signed-voluntary-exits/14348
status: Draft
type: Standards Track
category: Core
created: 2023-05-18
---

## Abstract

Lock validator voluntary exit signature domain on Capella for perpetual validity. Currently, signed voluntary exits are only valid for two forks.

## Motivation

Currently, signed voluntary exits are valid up-to only two forks for block inclusion due to the Beacon Chain state considering only the current and previous fork. This limitation increases the complexity of some staking operations, specifically those that require the exchange of signed exits ahead of time for an unbounded number of forks.

The limited validity of voluntary exits was originally motivated to isolate them in the event of a perpetual fork. If fork A and B exist and a validator operates on both, if they send an exit, it will be replayable on both. However, this possibility is not sufficient to justify the UX degradation exposed above.

## Specification

### Consensus Layer

The mechanics of the specification can be found in the [Consensus Layer specs](https://github.com/ethereum/consensus-specs/commit/14212958d3605c5dd4f8ab617f157328f53ce559).

To make the change backwards compatible the signature domain is locked on the Capella fork

### Execution Layer

This specification does not require any changes to the Execution Layer.

## Rationale

Perpetually valid signed exits allow simpler staking operation designs. It also aligns the UX of such objects to BLSToExecutionChanges and deposits, such that downstream tooling do not need to be updated with fork future information.

## Backwards Compatibility

This change is backwards compatible to the Consensus Layer of Ethereum block processing logic.

The expectation of future validity of exits is not forward compatible. Specifically, users who have already pre-signed exits utilizing the Deneb fork domain with an expectation of their validity should be aware that these pre-signed exits will no longer be recognized as valid. Consequently, users should adjust their approach moving forward. For continued validity across forks, including Deneb and subsequent forks, users should ensure that their exits are signed using the Capella fork domain.

There are no forwards/backwards compatibility issues with the Execution Layer

## Test Cases

Test cases are work-in-progress within the standard Consensus Layer tests.

## Security Considerations

The divergent signature domains across forked networks would previously have prevented the replay of VoluntaryExits after two hard forks. This specification change causes the replay protection to no longer exist. These potential replays could impact individual stakers on both sides of a fork, but does not impact the security of the chain.

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).

0 comments on commit 6500963

Please sign in to comment.