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
{{ message }}
This repository has been archived by the owner on Jan 29, 2024. It is now read-only.
Slashing can be achieved with at least two mechanisms: burning the stake of offending validators, or redistributing them to the others. This issue is about the former, which affects the number of tokens in existence, which can have an effect on the book keeping of circulating supply.
The current model of staking and circulating supply as far as I understand have the following characteristics:
Users can use the fund operation to move tokens from the parent subnet to the child subnet; this increases the circulating supply of the child subnet, which is maintained in the parent subnet.
Users can use the join and add collateral operations in the parent subnet to stake; this does not affect the circulating supply of the child subnet they are staking in.
Now let's consider a deeper hierarchy of subnets: the rootnet R, its subnet S, and a subnet of that, SS: R > S > SS.
Say validator V wants to stake in SS but they only have funds in R.
First, they fund some tokens from R to S, locking them in R, increasing the CircSupply of S, and get their tokens credited to themselves in S.
Then, they joinSS in S, locking their stake in S, and getting their voting power in SS.
Now, V does something untoward in SS, which is punishable by slashing in S.
The committee validating SS produces a checkpoint which has the slashing message, the checkpoint is sent to S.
V gets their stake burned in S. The total amount of tokens in the world has decreased, but R doesn't know.
TODO: The CircSupply of S in R should be reduced and any locked tokens in R burned as well.
I haven't seen any operation in the spec that would allow burning tokens in R without releasing them to some address. This could be the turn address, but I think the current release operation (the opposite of fund) credits the tokens to the sender.
The text was updated successfully, but these errors were encountered:
Like you suggested, it might be easier to just redistribute the "burned" amount in S. The redistribution should be done equally based on current accounts balances (linearly). This way, from a macro economic perspective, the effect is "equal" to burning. However, a classic burn operation is also possible to implement similarly to withdrawing.
Slashing can be achieved with at least two mechanisms: burning the stake of offending validators, or redistributing them to the others. This issue is about the former, which affects the number of tokens in existence, which can have an effect on the book keeping of circulating supply.
The current model of staking and circulating supply as far as I understand have the following characteristics:
Now let's consider a deeper hierarchy of subnets: the rootnet
R
, its subnetS
, and a subnet of that,SS
:R > S > SS
.Say validator
V
wants to stake inSS
but they only have funds inR
.R
toS
, locking them inR
, increasing theCircSupply
ofS
, and get their tokens credited to themselves inS
.SS
inS
, locking their stake inS
, and getting their voting power inSS
.V
does something untoward inSS
, which is punishable by slashing inS
.SS
produces a checkpoint which has the slashing message, the checkpoint is sent toS
.V
gets their stake burned inS
. The total amount of tokens in the world has decreased, butR
doesn't know.CircSupply
ofS
inR
should be reduced and any locked tokens inR
burned as well.I haven't seen any operation in the spec that would allow burning tokens in
R
without releasing them to some address. This could be the turn address, but I think the current release operation (the opposite of fund) credits the tokens to the sender.The text was updated successfully, but these errors were encountered: