-
Notifications
You must be signed in to change notification settings - Fork 11
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
Penalty is too high for delegators and stakers #13
Comments
I think Polkadot has an interesting approach to slashing, the penalties vary on how severe an attack is: See here for more context: https://polkadot.network/polkadot-consensus-part-4-security/ In Polkadot delegators (called "nominators") share the slashing penalty with the validators. Which actually makes sense, because those are the people giving their vote and power to a certain validator. If the penalty for delegators is too low, they probably won't delegate as mindful as they would do if they are in the same boat as the validators. I agree that 100% penalty in ANY scenario is brutal and therefore I think Polkadot's approach is very interesting. Coordinated attacks (by multiple validators) are penalized way more, than if only a single validator is failing/acting maliciously (might be because of an incorrect network setup, etc. ...). |
As @rekt0x already mentioned, penalty rules must be the same for validators and delegators, since delegators increase validator's weight in consensus algorithm. If delegator's penalty were lower than validator's, then validator would delegate to himself (except minimum validator stake) to minimize the possible penalty
Sure, from my point of view it makes perfect sense. But of course it has to be discussed first. The curve which Polkadot mentions may not be as secure as 100% penalty. It gives 100% penalty only on 33% of Byzantine nodes. If 1/3W are already Byzantine, then it's too late for penalties already, as the attack had a chance to succeed. So probably we could give 100% penalty if 1/4W of validators were Byzantine "at once". "at once" could mean that cheaters were confirmed in the same window of 5 epochs. If we implement it as a piecewise linear function, then we can use the curve with following dots:
I've got those dots as not-a-knot spline interpolation of those dots:
Also it might make sense to use not a piecewise linear function, but rather a direct short formula (it would be simpler to implement). As an example, this function is very close to dots above: This curved penalty will have economical consequences for delegators. Delegators will have a trade-off between delegating to validators who have smaller total stake (hence lower possible penalty) and delegating to validators with greater self-funding (hence those validators are more trustworthy) |
Might be a good trade-off.
Which probably is more favourable as delegators should delegate to validators with more self-stake and with this implementation there is also an economic reason to do so. |
@rekt0x Thanks for the above valuable suggestions. We've discussed to find out the most suitable option. Ideally, all stakes of a cheater(s) and his delegators will be burnt once a cheating is detected. The cheater will be excluded from the next epoch and the delegated stakes to him/her won't be counted. Details are being considered. |
Currently, if a staker is labelled as a cheater, then the staker and delegators (if any) lose all their staked or delegated tokens respectively:
The penalty is too high.
Perhaps 20% for stakers, and 10% for delegators, is more reasonable.
The text was updated successfully, but these errors were encountered: