Node staking / slashing #748
Replies: 3 comments
-
I think that is a good idea this can work as a "reputation" indicator for the user, farms/nodes with high amount of staked tokens are more respectable and hence get more workload. My concern is mainly on what is considered a bad behavior, detection of this bad behavior etc... I mean a farmer with good intention can get punished because of an ISP blackout for example, which is not fair. |
Beta Was this translation helpful? Give feedback.
-
I agree with what @DylanVerstraete said. Additionally, there are some more subtle things to consider. For instance, unstaking should only be possible if the amount leftover after staking is sufficient for the nodes which are still running (as you should not be able to unstake tokens which are covering currently active nodes). Yet, we have no way on chain to know if a node is actually running, only an indication based on the last uptime report. Furthermore, after a node is offline, there should be a period where the stake is also not withdrawable. This is usually needed to have a window to be able to detect malicious behavior in the past. Also there are likely other considerations. Overall, I am a big fan of the idea to stake in order to run nodes, however it should be done for all nodes, and also the tokenomics should be adapted to fit these changes |
Beta Was this translation helpful? Give feedback.
-
How about if a human factor can be involved in the slashing part? |
Beta Was this translation helpful? Give feedback.
-
This idea has been going around for a while now and I think this is a good feature on top of the node extra pricing #725.
Staking
The idea behind staking is that a farmers needs to stake X amount of tokens to back up the credibility of his node, when he stakes X amount of tokens he is able to set a custom price which was implemented in #725. When users see that a farmers has staked X amount of tokens they can be motivated to deploy on that node because it shows good intention from the farmer indicating that this nodes will be healthy and maintained.
Slashing
Whilst staking is a nice concept, it doesn't do much without slashing. Slashing means "punishing the user for bad behaviour", in our case it would mean punishing the farmers for the bad behaviour of his node(s). The problem here is that behaviour is not tracked on tfchain, the chain has no indication wether the node is
Slashing a node's stake would mean deducting tokens from it's stake and either burn these tokens or send them to a community pool, sales pool, ...
Some examples of bad behaviour:
Proposed approach
As stated above, behaviour is not tracked on tfchain so it's impossible to identify bad behaviour and slash the farmer for it. If we would do minting on chain (#492) we could also implement the slashing mechanism there. This also means that some development work needs to be done first on the minting on chain before we can start on staking / slashing of nodes.
Beta Was this translation helpful? Give feedback.
All reactions