-
Notifications
You must be signed in to change notification settings - Fork 998
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deposit-related standardisation checklist #1356
Comments
What's the purpose of standardizing a notion of address for validators? For transfers? In general I feel like just using the index as an ID for a validator would be best. |
@vbuterin What are you specifically referring to? |
|
I think they mean a checksum for the validator pubkey rather than some notion of address. The only place that this would be useful at this stage would be in the deposit contract and maybe Transfers. Agreed that most validator related activities after induction should just be denoted in indices. |
Why would a checksum be needed though? Checksums are there to protect against human error, and when is a human going to be putting in validator pubkey data anywhere? |
For both deposits (e.g. top ups) and transfers. The reason validator indices are not ideal for transfers is that it may be possible for an attacker to manipulate them (e.g. by reordering deposits), and hence steal funds. While manipulation is hard in the context of Eth1 deposits, Eth2 deposits may be easier to reorder. |
@JustinDrake Are you suggesting adding a checksum (beyond the |
The suggestion is to standardise on a user-level checksum when manipulating validator pubkeys, especially for transfers. (No substantive change to consensus.) It's possible such as standard would also be picked up at the application layer in phase 2. |
Not sure if this fits here or elsewhere, but there need to be checks somewhere that clients are generating correct deposit data. Incorrect encoding of withdrawal credentials, for example, would not be picked up until someone tried to withdraw the funds by which time it would be a tad late. The inputs to the test would be (validator private key, withdrawal private key, amount) and the output would be (deposit data root) after the signature has been applied, for example:
[Note we could use withdrawal public key rather than private key, but I figured it's better to provide both validator and withdrawal as private keys for consistency] |
@CarlBeek Have the items in this checklist been addressed? :) |
All the items (with the exception of checksums) have been standardised and implemented in the default deposit interface (private repo for now). |
For sanity we want to standardise extra-consensus various concepts related to deposits. The suggestion is to add those standards in this repo, similar to the networking standards. @CarlBeek is doing some experimentation in this repo.
The text was updated successfully, but these errors were encountered: