You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In PoS when processing slashes we avoid iterating over individual bonds and instead slash total validator stakes. Bonds only get slashes applied when withdrawing, so the decimal precision loss can cause the sum of individual slashes to be lower or greater than the total slashed amount.
E.g. Validator A has bond from delegators X and Y, 1 (micro) token each. If both are slashed at 30% the total slash is rounded to 2*0.3=1. When slashing individual bonds on withdrawal they're both unslashed (1*0.3=0).
Similarly with slash rate at e.g. 60%, the total slashed would be 2*0.6=1 but individual 1*0.6=1 with sum 2.
I still need to check this exactly against the code.
The text was updated successfully, but these errors were encountered:
As discussed we'll want to use ceiling mult for slashed amount calculation. With that, the slashed amount on sum of the validator stake can only be lower or equal to the sum slashes on withdrawal. This means that there might be some tokens left in validator's stake that cannot be withdrawn by anyone but themselves still contribute to validator's stake and can still be slashed which should be fine.
In PoS when processing slashes we avoid iterating over individual bonds and instead slash total validator stakes. Bonds only get slashes applied when withdrawing, so the decimal precision loss can cause the sum of individual slashes to be lower or greater than the total slashed amount.
E.g. Validator A has bond from delegators X and Y, 1 (micro) token each. If both are slashed at 30% the total slash is rounded to
2*0.3=1
. When slashing individual bonds on withdrawal they're both unslashed (1*0.3=0
).Similarly with slash rate at e.g. 60%, the total slashed would be
2*0.6=1
but individual1*0.6=1
with sum2
.I still need to check this exactly against the code.
The text was updated successfully, but these errors were encountered: