The Beacon Chain's main function involves managing a group of validators who propose and verify blocks. The Active Validator Index indicates the list of all validators presently involved in the network. The term "churn" denotes how quickly validators are added or removed from this list. This proposal intends to regulate the expansion rate of this index, implying there would be a limit on the number of active validators that can be added over a certain time. The recommendation is to introduce a maximum limit to the churn of the active validator index in the Ethereum Beacon Chain.
The churn limit is determined by the number of validators currently operating on the network. As the number of active validators on Ethereum increases, more new validator activations and exits of existing validators can be processed per epoch. For every additional 65,536 validators on the Ethereum network, the number of new validators that can be activated per epoch rises by one, and the number of validator exits that can be handled per epoch also increases by one.
The core issue here is that a large validator set can pose difficulties for future Ethereum network upgrades. While the proposal does not address the root of the issue, i.e., the reasons for such fast growth, it provides a temporary fix to stop swift expansion and therefore facilitate future upgrades. The Dencun fork is predicted to occur by the end of 2023, and the Electra-Prague fork is scheduled for mid-2024. By the time of the Electra-Prague fork, the Beacon Chain size could surpass 2 million active indices.
The proposal suggests starting with a churn upper limit of 12. This number is greater than the current churn rate and may initially lead to a decrease in churn per epoch once activated. An epoch is a period of 32 slots during which validators propose and verify blocks. The churn per epoch is the rate at which validators join or leave the active validator index in each epoch.The proposal outlines two main functions for managing validator exits and activations:
initiate_validator_exit:This function initiates the process of a validator exit. It calculates the epoch in which the validator will exit (
exit_queue_epoch) and the number of validators exiting in that epoch (
exit_queue_churn). If the churn for the epoch has reached its limit, the validator's exit is deferred to the next epoch.
process_registry_updates: This function handles updates to the registry of validators. It processes validators waiting to be activated up to the limit of the churn rate for that epoch. If the churn limit has been reached, further validators in the queue will have to wait for activation until the next epoch.
In addition, the function
get_validator_churn_limit is proposed to be modified. This function calculates and returns the churn limit for the current epoch. The limit is computed based on the number of active validators and is confined within a minimum and maximum limit
MAX_PER_EPOCH_CHURN_LIMIT respectively. The
CHURN_LIMIT_QUOTIENT is used to determine the churn limit based on the current number of active validators.
The changes proposed are aimed at providing a means to limit the growth rate of the active validator set in the Ethereum beacon chain, which can be especially important as the Ethereum network evolves and grows over time.
- All About The Validator In Ethereum 2.0 Beacon Chain
- Incentives of being Ethereum Validators
- EIP-4844 Devnet-5 Testing Preparation & Progress
- Preventing Slashed Validators from Becoming Block Proposers
- Dencun: Unveiling the Upcoming Network Upgrade with Finalized Specifications
- How to Become Validator for Ethereum Blockchain?
- ETH Withdrawals: Everything You Need to Know
- What is Validator?
- SELFDESTRUCT: History, EIPs, Future
- SELFDESTRUCT in Smart Contract: Use Cases
For Press Releases, project updates and guest posts publishing with us, email to firstname.lastname@example.org.
Subscribe to EtherWorld YouTube channel for ELI5 content.
Share if you like the content. Donate at avarch.eth or Gitcoin
You've something to share with the blockchain community, join us on Discord!