ethereum / staking-deposit-cli

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

Generate Exit Validator messages #334

Open rajkat1001 opened 1 year ago

rajkat1001 commented 1 year ago

Staking deposit cli should be modified to generate signed EVM (exit validator message json files) by taking in the mnemonics + mnemonic-password + validator-signing-passphrase.

Please make this tool as worthy of using as ethdo is said by many to be. But unfortunately many have used the launchpad staking-deposit tools with Windows support and are left out so disappointed now.

Windows version to go with the launchpad program highly needed. Syntax:

./staking-deposit-cli.exe generate-exit-validator mnemonic-phrase=xx,yy,zz.....aa --mnemonic-password=mpassword validator-password=valpassword

All other functions like current bls-to-execution-key-change etc.. to remain as they are.

If you want to see how such EVM is generated from mnemonics+mnemonic-password and the validator-password, please check the code implemented for same funciton in Ethdo.

uwuforever commented 1 year ago

Generating the actual message is not hard, but you need beacon node RPC access to broadcast it. The rational is, if you have a beacon node synced and set up, you could just use it to exit directly, and if you don't, you'll have to get one to use the signed message anyways. But free message publishing will soon be easily available, and I would expect the validator exit tools to follow shortly :)

As for the differences, in an exit message, you sign the epoch of your exit, and in a BLS-withdrawal message, you sign your old BLS public key and your new withdrawal address. It is incredibly similar.

As for ethdo... even your actual staking machine is Windows?? But even if it is, you can use wsl on Windows to run Linux based code.

rajkat1001 commented 1 year ago

One does not need to know much technical details if one can use a signed message developed off deposit tool and directly publish on beaconcha.in or some similar interface.

In my case, the staking machine is Linux. The widows machine is just used offline to make the deposit, keystore, withdrawal and voluntary json exit messages.

uwuforever commented 1 year ago

...and directly publish on beaconcha.in or some similar interface.

Beaconcha.in only started doing that like a week ago, and only on the Zhejiang testnet at the moment. Before that you either ran your own beacon node server and used your person RPC endpoint/CLI client, or you looked for someone's paid RPC server URL that wasn't sufficiently hidden.

rajkat1001 commented 1 year ago

Yes that's true. I ran my own beacon node used own endpoints and local cli interface.

My hope is that the developers of staking-deposit-cli add support well in advance for generating VEMs without having to depend on the various concensus client interfaces or having to use them to broadcast the message in expectation that same can be submitted through beaconcha.in or some other public tool in near future.

Obviously everyone is not technical enough and if some mechanism is soon provided, it will be easier to pass on the information to one's heirs or would be successors who want to manage these assets without all the pain of learning a whole lot of things. This is what the hardware wallets and other desktop wallets were designed for.. to make it easy to generate and publish signed messages.

As long as it is understood that VEM should be able to be generated by the deposit-cli and (w)could be implemented before mainnet comes alive, I am saying that it will be a well served cause for the community.