Deposit Process
Ethereum staking deposit process
Last updated
Ethereum staking deposit process
Last updated
This post will explain the depositing process and each of the phases.
Before we start, to understand the basic idea of how Ethereum 2.0 keys work, the Ethereum 2.0 Keys blog is highly recommended
Let's go through each of the states above and explain how their durations are approximately determined.
Every signed transaction visits the Mempool first, which can be referred to as the waiting room for transactions. During this period, the transaction status is pending. Depending on the chosen gas fee for the transaction, miners pick the ones that return them the most value first. If the network is highly congested (=many pending transactions), there's a high chance that new transactions will outbid(gas fees) older transactions, leading to unknown waiting times.
Once the transaction reaches the deposit contract, the deposit contract checks the transaction for its Input data and value. If the threshold of 1 ETH is not met or the transaction has no/invalid input data, the transaction will get rejected and returned to the sender.
The user-created input data is a reflection of the upcoming validator and withdrawal keys on the Ethereum 2.0 network as seen in the picture below. The full Ethereum 2.0 keys blog is here.
The Ethereum 2.0 chain only considers transactions which have been in the deposit contract for at least 2048 Ethereum 1.0 blocks to ensure they never end up in a reorged block. (=ETH1_FOLLOW_DISTANCE
)
In addition to the 2048 Ethereum 1.0 blocks, 64 Ethereum 2.0 Epochs ****must be**** awaited before the beacon-chain recognises the deposit. During these 64 Epochs, validators vote on newly received deposits.
However, missed block proposals or bad Ethereum 1.0 nodes, which provide the deposit logs to the Ethereum 2.0 network can cause longer waiting times. Therefore, run your own node!
2048 blocks = 2048 x 12 seconds = 24,576 seconds = 409.6 minutes = ~6.82 hours 64 Epochs = 64 x 6.4 minutes = 409.6 minutes = ~6.82 hours
Once the deposit is in the deposit contract, the state of the validator will switch to Deposited on the beaconcha.in explorer
The deposit is accessible now for the beacon-chain. Depending on the amount of total deposits, the validators have to wait in a queue. Eight validators per Epoch (1800 validators per day) can get activated.
The validator is now actively staking. It is proposing blocks and signing attestations - ready to earn ETH!
The transaction had an invalid BLS signature.
An active validator has not been attesting for at least two epochs.
The validator is online and currently exiting the network because either its balance dropped below 16ETH (forced exit) or the exit was requested (voluntary exit) by the validator.
The validator is offline and currently exiting the network because either its balance dropped below 16ETH or the exit was requested by the validator.
The validator is online but was malicious and therefore forced to exit the network.
The validator is offline and was malicious and which lead to a forced to exit out of the network. The validator is currently in the exiting queue with a minimum of 25 minutes.
The validator has been kicked out of the network. The funds will be withdrawable after 36 days.
The validator has exited the network. The funds will be withdrawable after 1 day.