ethereum / staking-deposit-cli

Secure key generation for deposits
Creative Commons Zero v1.0 Universal
535 stars 335 forks source link

Questions about withdrawal address #343

Closed dbarobin closed 11 months ago

dbarobin commented 1 year ago

I have a few questions regarding withdrawal addresses:

  1. Given that the new node sets the parameter --eth1_withdrawal_address through the Staking Deposit CLI, why is it still necessary to enter the withdrawal address on Launchpad?

img_v2_c2283fcc-ac09-47e4-8c33-f0b45b2e431h

  1. Is there a deadline for making BLS to Execution Change? Alternatively, can these be modified at any time without upgrading in Shanghai?
  2. Is it mandatory for the withdrawal address to be the same as the deposit address? Is it possible to set multiple nodes to the same withdrawal address?
  3. Can the withdrawal address be set to the multi-signature address generated by Gnosis Safe?

Thanks.

ralexstokes commented 1 year ago
  1. Is there a deadline for making BLS to Execution Change? Alternatively, can these be modified at any time without upgrading in Shanghai?

a validator that has 0x00 credentials can issue a one time BLS to Execution Change message at any time after the capella/Shanghai fork activates to swap to 0x01 credentials

  1. Is it mandatory for the withdrawal address to be the same as the deposit address? Is it possible to set multiple nodes to the same withdrawal address?

the execution layer address used in the 0x01 credential type can be any execution layer address you want and there is no correlation at the consensus layer for these so, for example, you could set 10 validators to all have the same target execution layer address

  1. Can the withdrawal address be set to the multi-signature address generated by Gnosis Safe?

if you are just talking about a deployment of the Gnosis Safe multi-sig, then yes you would just set the 0x01 credential address to the address of the deployed contract -- note that there could be caching layers in between the chain and the Gnosis Safe UI so that it may show the wrong balance but that would just be a bug in the UI (and I assume quickly fixed if it is not already accounted for)

dbarobin commented 1 year ago

OK, thank you, @ralexstokes.

Another question, if I deposit ETH into the staking contract using the--eth1_withdrawal_address, that means the deposit address is the same as --eth1_withdrawal_address, the MEV profit will send to the --eth1_withdrawal_address as before (sent to the deposit address)?

BTW, I tested depositing ETH using a multisig address generated by Gnosis Safe, but the invoked contract address is not the multisig address. The deposit address is the final address(another address in the multisig group) that invoked the staking contract. So maybe using multisig as the deposit address and the --eth1_withdrawal_address have some uncertain problem.

ralexstokes commented 1 year ago

Another question, if I deposit ETH into the staking contract using the--eth1_withdrawal_address, that means the deposit address is the same as --eth1_withdrawal_address, the MEV profit will send to the --eth1_withdrawal_address as before (sent to the deposit address)?

assuming by "MEV profit" you are referring to execution layer rewards from each block proposal, the 0x01 withdrawal credential address has nothing to do with this; they are independent addresses

BTW, I tested depositing ETH using a multisig address generated by Gnosis Safe, but the invoked contract address is not the multisig address. The deposit address is the final address(another address in the multisig group) that invoked the staking contract. So maybe using multisig as the deposit address and the --eth1_withdrawal_address have some uncertain problem.

if you use the same address you would use to send funds to the multisig as the execution withdrawal address then it should all work