Ethereum Official Staking Withdrawal Guide & FAQ

Ethereum.org发布于2023-02-10更新于2023-02-10

文章摘要

The withdrawal function will be enabled through a two-part simultaneous network upgrade: Shanghai + Capella.

On February 10th, the Ethereum official website updated the staking withdrawals page, which introduced details related to Ethereum staking withdrawals, including staking reward collection, staking withdrawal steps, withdrawal time cycle, etc., as follows:

How do I prepare?

Current stakers

Some users may have provided a withdrawal address when initially setting up their staking deposit—these users have nothing more they need to do

The majority of stakers did not provide a withdrawal address on initial deposit, and will need to update their withdrawal credentials. The Zhejiang Testnet Launchpad has instructions on when and how to do this

New stakers (not yet deposited)

By default, new stakers looking to automatically enable reward payments and withdrawal functionality should provide an Ethereum withdrawal address they control when generating their validator keys using the Staking Deposit CLI tool

This is not required at time of deposit, but will prevent the need to update these keys at a later date to unlock your funds

The Staking Launchpad will guide you through staking onboarding.

Important notices

Providing a withdrawal address is a required step for any validator account before it will be eligible to have ETH withdrawn from its balance.

Each validator account can only be assigned a single withdrawal address, one time. Once an address is chosen and submitted to the Beacon Chain, this cannot be undone or changed again. Double-check ownership and accuracy of the address provided before submitting.

There is no threat to your funds in the meantime for not providing this. Failure to add withdrawal credentials will simply leave the ETH locked in the validator account as it has been until a withdrawal address is provided.

Exiting staking entirely

Providing a withdrawal address is required before any funds can be transferred out of a validator account balance.

Users looking to exit staking entirely and withdraw their full balance back must also sign and broadcast a "voluntary exit" message with validator keys which will start the process of exiting from staking. This is done with your validator client and submitted to your beacon node, and does not require gas.

The process of a validator exiting from staking takes variable amounts of time, depending on how many others are exiting at the same time. Once complete, this account will no longer be responsible for performing validator network duties, is no longer eligible for rewards, and no longer has their ETH "at stake". At this time the account with be marked as fully “withdrawable”.

Once an account is flagged as "withdrawable", and withdrawal credentials have been provided, there is nothing more a user needs to do aside from wait. Accounts are automatically and continuously swept by block proposers for eligible exited funds, and your account balance will be transferred in full (also known as a "full withdrawal") during the next sweep.

When are staking withdrawals enabled?

Withdrawal functionality will be enabled through a two-part simultaneous network upgrade, Shanghai + Capella.

Shanghai

Withdrawal functionality will be enabled in the upcoming Shanghai upgrade planned for Q1/Q2 2023 (as with any upgrade, timing subject to change). This enables previously staked ETH to be deposited into execution layer accounts, closing the loop on staking liquidity, and taking one more step on Ethereum’s journey towards building a sustainable, scalable, secure decentralized ecosystem.

Shanghai marks the end of an undefined lock-up period for ETH staking. Users will be free to:

Stake their ETH

Earn ETH rewards that will be distributed automatically

Un-stake their ETH to regain full access to their entire balance

And of course, re-stake to sign back up and start earning more rewards

Capella

For the Shanghai upgrade to take effect, a simultaneous upgrade to the Beacon Chain must take place named Capella. Node operating stakers should stay tuned to client communication channels to be alerted of upcoming client updates planned for Q1/Q2 2023.

Stakers who need to update their validator withdrawal keys can broadcast this message once the Capella upgrade has taken place.

How do withdrawal payments work?

Whether a given validator is eligible for a withdrawal or not is determined by the state of the validator account itself. No user input is needed at any given time to determine whether an account should have a withdrawal initiated or not—the entire process is done automatically by the consensus layer on a continuous loop.

When a validator is scheduled to propose the next block, it is required to build a withdrawal queue, of up to 16 eligible withdrawals. This is done by originally starting with validator index 0, determining if there is an eligible withdrawal for this account per the rules of the protocol, and adding it to the queue if there is. The validator set to propose the following block will pick up where the last one left off, progressing in order indefinitely.

While a proposer is sweeping through validators for possible withdrawals, each validator being checked is evaluated against a short series of questions to determine if a withdrawal should be triggered, and if so, how much ETH should be withdrawn.

Has a withdrawal address been provided? If no withdrawal address has been provided, the account is skipped and no withdrawal initiated.

Is the validator exited and withdrawable? If the validator has fully exited, and we have reached the epoch where their account is considered to be "withdrawable", then a full withdrawal will be processed. This will transfer the entire remaining balance to the withdrawal address.

Is the effective balance maxed out at 32? If the account has withdrawal credentials, is not fully exited, and has rewards above 32 waiting, a partial withdrawal will be processed which transfers only the rewards above 32 to the user's withdrawal address.

How frequently will I get my staking rewards?

A maximum of 16 withdrawals can be processed in a single block. At that rate, 115,200 validator withdrawals can be processed per day (assuming no missed blocks). As noted above, validators without eligible withdrawals will be skipped, decreasing the time to finish the sweep.

Expanding this calculation, we can estimate the time it will take to process a given number of withdrawals:

As you see this slows down as more validators are on the network. An increase in missed blocks could slow this down proportionally, but this will generally represent the slower side of possible outcomes.

Frequently asked questions

Once I have provided a withdrawal address, can I change it to an alternative withdrawal address?

No, the process to provide withdrawal credentials is a one-time process, and cannot be changed once submitted.

Why can a withdrawal address only be set once?

By setting an execution layer withdrawal address the withdrawal credentials for that validator have permanently been changed. This means the old credentials will no longer work, and the new credentials direct to an execution layer account.

Withdrawal addresses can be either a smart contract (controlled by its code), or an externally owned account (EOA, controlled by its private key). Currently these accounts have no way to communicate a message back to the consensus layer that would signal a change of validator credentials, and adding this functionality would add unnecessary complexity to the protocol.

As an alternative to changing the withdrawal address for a particular validator, users may choose to set a smart contract as their withdrawal address which could handle key rotating, such as a Safe. Users who set their funds to their own EOA can perform a full exit to withdrawal all of their staked funds, and then re-stake using new credentials.

What if I participate in liquid staking derivatives or pooled staking

If you are part of a staking pool or hold liquid staking derivatives, you should check with your provider for more details about how staking withdrawals will affect your arrangement, as each service operates differently.

In general, users will likely have nothing they need to do, and these services will no longer be limited by the inability to withdrawal rewards or exit validator funds after this upgrade.

This means that users can now decide to redeem their underlying staked ETH, or change which staking provider they utilize.

Do full withdrawals happen automatically?

No, if your validator is still active on the network, a full withdrawal will not happen automatically. This requires manually initiating a voluntary exit.

Once a validator has completed the exiting process, and assuming the account has withdrawal credentials, the remaining balance will then be withdrawn during the next validator sweep.

How can I withdrawal a custom amount?

Withdrawals are designed to be pushed automatically, transferring any ETH that is not actively contributing to stake. This includes full balances for accounts

It is not possible to manually request specific amounts of ETH to be withdrawn.

你可能也喜欢

交易

现货
合约
活动图片