Прeскачане към основното съдържание

Помогнете с превода на тази страница

🌏

Виждате тази страница на английски език, защото все още не сме я превели. Помогнете ни да преведем съдържанието.

Преведете страницата

Тук няма грешки!🐛

Тази страница не се превежда. Засега нарочно сме я оставили на английски език.

Staking withdrawals

  • The Shanghai upgrade enables staking withdrawals on Ethereum
  • Validator operators must provide a withdrawal address to enable
  • Rewards are automatically distributed every few days
  • Validators who fully exit staking will receive their remaining balance
Leslie the rhino with her staking rewards

Кога излиза?

April 12, 2023

Staking withdrawals will be enabled through the Shanghai/Capella upgrade. This Ethereum network upgrade is expected to take place in the first half of 2023. More below

The Shanghai/Capella upgrade enables staking withdrawals on Ethereum, allowing people to unlock ETH staking rewards. Reward payments will automatically and regularly be sent to a provided withdrawal address linked to each validator. Users can also exit staking entirely, unlocking their full validator balance.

Staking rewards

Reward payments are automatically processed for active validator accounts with a maxed out effective balance of 32 ETH.

Any balance above 32 ETH earned through rewards does not actually contribute to principal, or increase the weight of this validator on the network, and is thus automatically withdrawn as a reward payment every few days. Aside from providing a withdrawal address one time, these rewards do not require any action from the validator operator. This is all initiated on the consensus layer, thus no gas (transaction fee) is required at any step.

How did we get here?

Over the past few years Ethereum has undergone several network upgrades transitioning to a network secured by ETH itself, instead of energy-intensive mining as it once was. Participating in consensus on Ethereum is now known as "staking", as participants have voluntarily locked up ETH, placing it "at stake" for the ability to participate in the network. Users who follow the rules will be rewarded, while attempts to cheat can be penalized.

Since the launch of the staking deposit contract in November 2020, some brave Ethereum pioneers have voluntarily locked funds up to activate "validators", the accounts that have the right to formally attest to and propose blocks, following network rules.

Before the Shanghai update, you couldn't use or access your staked ETH. But now, you can opt-in to automatically receive your rewards into a provided account, and you can also withdraw your staked ETH whenever you want.

How do I prepare?

Current stakers

You can enter your validator index number here to see if you still need to update your credentials (this can be found in your client logs):

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 scheduled for April 12, 2023. 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 to be fully prepared for the upgrade scheduled for April 12, 2023.

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

Subscribe to the EF Blog(opens in a new tab) to receive email notifications for the latest protocol announcements.

Test your setup on Goerli launchpad(opens in a new tab)

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.

More of a visual learner?

Check out this explanation of Ethereum staking withdrawals by Finematics:

Validator "sweeping"

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.

🕛
Think about an analogue clock. The hand on the clock points to the hour, progresses in one direction, doesn’t skip any hours, and eventually wraps around to the beginning again after the last number is reached.

Now instead of 1 through 12, imagine the clock has 0 through N (the total number of validator accounts that have ever been registered on the Beacon Chain, over 500,000 as of Jan 2023).

The hand on the clock points to the next validator that needs to be checked for eligible withdrawals. It starts at 0, and progresses all the way around without skipping any accounts. When the last validator is reached, the cycle continues back at the beginning.

Checking an account for withdrawals

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.

  1. Has a withdrawal address been provided? If no withdrawal address has been provided, the account is skipped and no withdrawal initiated.
  2. 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.
  3. 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.

There are only two actions that are taken by validator operators during the course of a validator's life cycle that influence this flow directly:

  • Provide withdrawal credentials to enable any form of withdrawal
  • Exit from the network, which will trigger a full withdrawal

Gas free

This approach to staking withdrawals avoids requiring stakers to manually submit a transaction requesting a particular amount of ETH to be withdrawn. This also means there is no gas (transaction fee) required, and withdrawals also do not compete for existing execution layer block space.

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 slots). 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:

Number of withdrawalsTime to complete
400,0003.5 days
500,0004.3 days
600,0005.2 days
700,0006.1 days
800,0007.0 days

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

Further reading

Картинка на талисмана Rhino за лончпада на eth2.

Присъединете се към общността на залагащите

r/ethstaker е общност за всеки, който иска да обсъжда залагането в Етереум – присъединете се за съвет, поддръжка и да си говорите всичко за залагане.

Discord(opens in a new tab)Reddit(opens in a new tab)Уебсайт(opens in a new tab)

Was this page helpful?