-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Normalize slashing penalties by total supply #1348
Comments
hmm let’s think about this a bit more
…Does what Im saying make sense? |
aka:
|
@cwgoes documentation of the slack conversation cwgoes rige cwgoes rige cwgoes rige cwgoes rige cwgoes rige cwgoes rige cwgoes rige cwgoes rige cwgoes rige cwgoes rige cwgoes |
Tabled to post-launch by slashing design meeting. |
Quick question on how the slashing is enforced when > 1/3 of the validators act maliciously at the same time? This is the case when an outsider wants to take the network down by colluding with > 1/3 validators or somehow acquiring > 1/3 of the total stake. In this case, it is unlikely that individual bad actors act maliciously one at a time (in order to avoid getting caught), but may do so at a predetermined time. In this case, the BFT threshold is breached almost instantly. I am wondering how the slashing can be decided without some kind of voting just like the voting to approve the blocks. For example, the colluding nodes can arbitrarily decide to slash other honest nodes, if such voting mechanism is not instituted. I didn't see any spec on how the honest nodes as a whole decide and agree that one or more of malicious nodes must be punished. Any pointers or thinking on this is greatly appreciated. |
@ragjunk That sounds like a great question - but probably best suited to a different issue. |
According to the slashing spec tracking issue this has been addressed. Closing. |
It has not but is now post-launch. |
I haven't heard any discussion about doing this. Going to close this issue. |
I think it's still worth considering. If we're going to close all the incentive-related issues can we port them somewhere? I'm willing to do this if you like. |
@cwgoes if you would like to port them to gaia that would be great. I think carrying on the discussion there is a better idea. |
That sounds fine - alas, I do not seem to have the permissions to move issues. Do you? |
Issue moved to cosmos/gaia #30 via ZenHub |
I think we might want to normalize slashing amounts by the total supply. Currently, the spec calculates slashing amounts in proportion to validator shares, which are just bonded tokens.
In between when an equivocation is made and when it is discovered, the total token supply will change due to inflation. This would have the strange property that later discovery of evidence means a (slightly) lesser penalty, since the tokens which would have been burned if the evidence was discovered earlier can be inflated as usual until the evidence is actually discovered.
With our current unbonding period and inflation parameters, the difference is minimal, but we (or governance) might want to change those parameters in the future.
If we change the calculation to
slashedTokens = slashFraction * totalBondedTokensNow * (validatorBondedTokensAtEquivocation / totalBondedTokensAtEquivocation)
, it changes the semantics to "slashed as if the validator double-signed now with the power they had at the time of equivocation", and means that slashing penalties are just as severe if evidence is discovered when the unbonding period is almost over as if it were discovered immediately.cc @ebuchman @rigelrozanski
The text was updated successfully, but these errors were encountered: