Withdrawals are a mechanism where some or all ETH held by an active validator can be accessed by said validator. There are only two types of voluntary withdrawal, either retrieving:
- all stake and yields (which is known as a full withdrawal); or
- only the yields (which is known as a partial withdrawal).
As such there are typically two desired outcomes for being interested in undergoing the withdrawal process: to stop (perhaps temporarily) being an active validator or to retrieve yield for any variety of monetary purposes. Most validators are interested in the latter option so that yield can either be invested into running an additional validator on the network or spent on any range of goods and services.
Reasons for withdrawal
Protections against crashes
Historically Ethereum did not allow withdrawal of any variety to occur prior to The Merge. This was to protect the proof-of-stake network initially while in its infancy. Since withdrawals have been allowed the network has remained stable and the count of active validators has continued to grow despite occasional dips in the value of ETH. One functionality implemented that has perhaps ensured the prevention of panic selling (and malicious attacks on the network) is the churn limit that guarantees no more than ~0.0015% of all stake can be withdrawn each 6.4 minutes (each epoch). This equates to a maximum of ~0.3% of all stake per day.
Churn limits only apply to full withdrawals where all stake and yield is retrieved. Partial withdrawals, where only yield is retrieved, are not restricted by this guarantee, but are instead fixed to a static 16 validators per slot (32 slots in an epoch). We have denoted this as a “scan limit” within this article for the purposes of clarity.
Generally, about 115,000 partial withdrawals will be performed on any given day as a maximum. Full withdrawals are additionally defined by this limit. Two tables are provided below to demonstrate the significance of both limits.
Voluntary and involuntary exits
Already several references have been made in regard to “voluntary” withdrawal methods. Most validators will only ever need to consider these methods, but some (either maliciously or accidentally) will be slashed involuntarily. Slashing is explored in greater depth in another article but succinctly it is intended as a punishment for actions that are likely to be performed by malicious or non-performant validators which involve losing a significant portion of stake and yield before being forcibly kicked from the network. Technically this counts as a type of withdrawal (more commonly referred to as a forced exit) in that the validator is able to access their stake and yield - what remains of it at least. Being slashed is the only form of involuntary exit from Ethereum.
Different types of withdrawal
With an understanding of the categories of withdrawal presented to validators it is important to emphasise some essential criteria. To access funds and to proceed with a withdrawal it is required that the validator has designated a withdrawal address. Typically this is specified when becoming a validator for the first time and placing a stake, but it is possible to activate without providing such details. Regardless of whether an address is denoted initially or not there is only one opportunity available to change the original address (or to rectify the lack of one). To undergo this change a signed message of a particular format must be broadcast to the network - noting that any mistake will be irreversible and will result in no capacity to retrieve any stake or yields.
While Ethereum staking is secure from risks of sudden market crashes in the case of sell-off behaviour, it is important to consider the risks of key management. All validators are provided with a pair of keys and a mnemonic when activated which either the private key or the mnemonic must be securely stored (preferably both). If one loses access to both of these details this will result in no capacity to retrieve any stake or yields as the request to perform a full withdrawal, or change the withdrawal address, requires signing by a key. Hence, key management and backups for all validator client data is essential to give one the best chance to be protected from risk.
Withdrawals that allow access to returned yield without exiting from participating as an active validator, known as partial withdrawals, are automatic and fixed to the aforementioned “scan limit”. To be eligible for this automatic process (beyond the need to have a withdrawal address specified) requires that the correct “withdrawal credentials” prefix is set for the validator. Once this has been set any ETH held by the validator beyond their first 32 ETH is withdrawn to the address specified at regular intervals. If there are 670,000 active validators the intervals for each individual validator will periodically occur approximately every 5 days. Retrieved yields consist of rewards earned for performing activities such as proposing a block, attesting to a block or aggregating signatures for a block. Transaction fees earned as a reward for including transactions within a proposed block are automatically delegated without requiring a partial withdrawal.
To conduct a full withdrawal the first step is to sign an exit message and broadcast this to the network. As with a partial withdrawal the validator must await the “scan limit” to be included in a block as up next for withdrawal. In contrast though when included in the block the network will recognise that due to the signed exit message that the validator is requesting a full withdrawal which begins the voluntary exit stages.
If looking to understand how withdrawals work for the purposes of retrieving yield reading only the sections relevant to partial withdrawals will be sufficient. To sum up these sections would be to say that partial withdrawals are automatic for all ETH earned if one has set the right prefix in their withdrawal credentials.
If looking to understand how withdrawals work for the purposes of ceasing, or temporarily pausing, being a validator (and as such accessing all staked ETH and yields) reading only the sections relevant to full withdrawals will be sufficient. To sum up these sections would be to say that full withdrawals are not automatic and require not only the right prefix to be set in one’s withdrawals credentials but also to broadcast a signed exit message to the network.