oxen-io / oxen-core

Oxen core repository, containing oxend and oxen cli wallets
https://oxen.io
Other
312 stars 119 forks source link

stake forfeiture with deregistration? #1476

Closed rats-god closed 2 years ago

rats-god commented 3 years ago

from what i can tell, inactive nodes get decommissioned and eventually deregistered. from documentation, it looks like the deregistration process locks the stake for 30 months and then eventually releases it. looking at pulse, it seems like malicious behavior is punished in the same way:

With Pulse, the ‘nothing at stake’ problem is prevented by allowing nodes in the network to submit evidence of double signed blocks. If this evidence can be validated, the offending node can be deregistered from the network, providing a punishment for nodes who do not effectively choose a single block to sign.

(from https://docs.oxen.io/about-the-oxen-blockchain/pulse-pos-on-oxen/pulse-paper#fault-tolerance)

other blockchains typically involve some degree of forfeiture for misbehaved nodes. cosmos for example:

There must be some penalty imposed on the validators for any intentional or unintentional deviation from the sanctioned protocol. Some evidence is immediately admissible, such as a double-sign at the same height and round, or a violation of “prevote-the-lock” (a rule of the Tendermint consensus protocol). Such evidence will result in the validator losing its good standing and its bonded atoms as well its proportionate share of tokens in the reserve pool – collectively called its “stake” – will get slashed.

(from https://v1.cosmos.network/resources/whitepaper)

i couldn't find details about slashing in a quick skim, but i think it's based on ethereum's slasher algorithm:

Suppose that a user detects two signatures made by address A on two distinct blocks with height K+2000. That node can then publish a transaction containing those two signatures, and if that transaction is included before block K+3000 it destroys the reward for that signature and sends 33% to the user that ratted the cheater out.

(from https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/)

from talking in the discord, nyan added:

It would possibly make service node operators more committed if they lost 10-20% of their initial stake to the network when acting maliciously or failing to keep their node updated. A side benefit is it would also benifit the value of Oxen since it's burnt, and hence reducing the overall supply. Only part of that suggestion I really don't want to see is users staking to nodes losing their investments. They're innocent by all means.

which i agree with on all counts, and also would say that a node going offline feels adequately punished with a 30 day stake lock where actively malicious behavior is something to be more concerned about

KeeJef commented 3 years ago

I think the current way the system works with deregistrations locking Oxen for 30 days where no rewards are being earned is punishment enough. Destroying stakes for being offline seems aggressive and is likely to annoy Service Node operators and lead to a worse UX