-
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
Prevent validators from being penalized when the chain is not finalizing #2100
Comments
This is a known issue due to (very likely) sparse block proposals during an inactivity leak. The amount penalized is very small but serves no game theoretic purpose and is clearly discouraging for users. This is planned to be fixed at Phase 1 |
I disagree that the amount being penalised is small. As an example, one of my validators has missed only a single attestation in the last 24 hours, but its balance is down 0.05 ETH over that time. According to beaconcha.in almost all attestations were included at an inclusion distance of 0. It feels like my validator has been very reliable in difficult network conditions and yet is being punished harshly. Why wait until phase 1 to fix this? This seems like a significant weakness in the spec to me. |
As a counterpoint, another validator lost less than 0.01 Ether over the same period. It would be nice to fix this, but I don't see it as in any way critical to the launch of phase 0. Any change could introduce subtleties that make sustained periods of inactivity possible with little or no penalty, and I'd rather they were discussed in detail and prototyped than put in as a "quick fix". Also worth pointing out that any loss made during the period of inactivity leak should be made up (and more) pretty quickly once the inactive validators are kicked, as rewards will increase due to fewer active validators. |
Fair enough. I'm certainly not advocating taking shortcuts to a quick fix. However I think it's worth understanding how severely different validators are being punished and why. Time for some more Medalla data analysis I guess... |
Fixed in altair's HF accounting reform |
Because Medalla testnet does not have real incentives (besides testing and learning about ETH 2.0), ocasionally the number of Voted does not reach 60%. When this situation happens, some honest nodes start being penalized. This is what happened to my node, which at the time was always connected to 79 peers, using Nimbus, which is working fine in when blocks are finalizing.
My node pubkey is a40237ae62e6cbf4f65d82ea90ea7862346da553543d00466b655de5e655a0ca2e8a4fede966762bc12f268266da1f7a
This is my earnings graph (don't mind my double deposit test)
However, in meanwhile my node was operating correctly as beaconcha.in shows:
And also shows operating normally in beaconscan:
This penalizations seem to align with the chain liveness graph:
I believe this is bug, so I started a discussion in ETH 2.0 Discord, and this were the main points made:
@nisdas stated that I shouldn't be penalized unless I am voting in the wrong head. If that is the case, how can I configure my validator node to vote in the correct head? Is possible to identify what is the correct head? @nisdas also agreed that "is a gap that should be fixed"
Adrian Sutton (pegasys) noticed that
ok, but that is not the main issue, but that a honest validator shouldn't be penalized, specially in a period which they are really needed.
As @nisdas said,
which is something confusing and strange.
Adrian Sutton (pegasys) added that
I understand the issue, and I think that this needs to be solved unless there is a technical limitation for it.
@nisdas
Wouldn't this incentive nodes to behave in self interest during this scenario?
jqm
:randomuser
said thatI understand that in a livenet this scenario would be very unlikely, because there is high economic incentives to keep nodes running, however I see that this scenario can become reality in a possible real world events like "implementation bug", "protocol bug", "fail of submarine communications cable", "draconian crypto laws", "worldwide natural disasters", "war", etc, therefore I believe that if is possible to make this scenario more stable, it should be done.
Related issue: #2098
The text was updated successfully, but these errors were encountered: