Elected block proposer has not been slashed
EIP-6988 proposes a change to the Ethereum network where the elected block proposer will not be slashed for including invalid transactions in a block. This is because the proposed EIP-1559 update will make it easier for block proposers to include all valid transactions in a block, reducing the likelihood of invalid transactions being included. The proposal also suggests considering multi-dimensional resource limits as a pragmatic way to achieve moderate scalability gains while retaining security. The backwards incompatible gas repricing requires a scheduled network upgrade, but users and miners will be able to continue operating with no changes except for a rule to stop adding new transactions into a block when the total calldata size reaches the maximum. Overall, the proposal aims to improve the efficiency and security of the Ethereum network.
Video
Original
Abstract
Introduces a modification to the consensus layer specification which ensures that slashed validator cannot be elected as block proposer.
Motivation
A block proposed by a slashed validator is rejected by the corresponding validity check in the phase0/process_block_header
function as defined in the consensus layer specification.
At the same time the definition of the phase0/compute_proposer_index
allows for a slashed validator to be elected as a proposer. This contradiction effectively leads to a missed proposal if it is supposed to be made by a slashed validator.
The impact of the proposed fix in the case of a single slashing on Ethereum Mainnet is negligible but it becomes significant in the case of correlated slashings. For instance, a correlated slashing of 1/10th
of a validator set can lead to 1/10th
of missed proposals in a number of epochs after the slashing.
Specification
Specification of the proposed change can be found in /_features/eip6988/beacon-chain.md
.
Rationale
Modifying get_beacon_proposer_index
This function is modified to read a proposer index from a beacon state if a slot of a latest block header is the same as the state.slot
.
This modification is done to make the function return correct proposer index in the case when the proposer of a given block is being slashed during processing of the block.
Backwards Compatibility
This fix changes proposer election mechanism in a backwards incompatible way and requires a hard fork to be deployed.
Test Cases
The following test cases were added to cover this change:
test_slashed_proposer_rewarded_for_sync_aggregate_inclusion
test_slashed_proposer_rewarded_for_attestation_inclusion
test_slashed_validator_not_elected_for_proposal
test_slashed_validator_elected_for_proposal
Reference Implementation
Reference implementation is in the same place as Specification.
Security Considerations
There are no observed security issues introduced by the proposed change.
Copyright
Copyright and related rights waived via CC0.
Not miss a beat of EIPs' update?
Subscribe EIPs Fun to receive the latest updates of EIPs Good for Buidlers to follow up.
View all