Eth2.0-specs: whistleblower rewards

Created on 26 Feb 2020  路  7Comments  路  Source: ethereum/eth2.0-specs

Did not find a tracking issue so that this isn't forgotten.

slash_validator(state: BeaconState,
slashed_index: ValidatorIndex,
whistleblower_index: ValidatorIndex=None)

whistleblower_index is always None (meaning the proposer gets all the reward).

Most helpful comment

the idea is that a rational block proposer will just take the whistleblower's claim and repackage it for themselves. so in phase 0, we can just go ahead and give the full "whistleblower reward" to the proposer. this differs in later phases where we can discriminate the two actors.

by allowing for a None argument as the whistleblower_index, we can reuse the same rewarding logic in both places, rather than duplicating it across the spec

All 7 comments

In other words, we are looking to learn the rationale of the following statement

In Phase 0 only the proposer gets the whistleblower reward - that is, the proposer gets the whole slashing reward (8/8 of it).

Based on the following facts:

the idea is that a rational block proposer will just take the whistleblower's claim and repackage it for themselves. so in phase 0, we can just go ahead and give the full "whistleblower reward" to the proposer. this differs in later phases where we can discriminate the two actors.

by allowing for a None argument as the whistleblower_index, we can reuse the same rewarding logic in both places, rather than duplicating it across the spec

Is there a financial incentive for running a slasher then?

There is not supposed to be a big enough incentive, as running a slasher should be altruistic. The best you can do is selfishly withhold the slashing and get lucky enough to propose a block in which you can include it

I understand but it seems wrong that there should be no incentive besides altruism, as the protocol relies on slashers to detect wrongdoing, and that running a slasher uses computing resources. Actions that are important for the correct functioning of the network should be incentivized obviously, otherwise how can we rely on them being performed?

From my understanding, it's a reasonable assumption to make because there only needs to be one honest, properly functioning slasher in the world for the protocol to be policed correctly. This is a very low bar to entry, and at least someone will run a slasher, especially given there are optimized implementations of slasher itself. As long as a single individual is altruistic, he should be able to catch slashable offenses

@rauljordan Thanks for the answer. It seems like you are an optimist :-). I still think the protocol would be improved if we incentivized people to run slashers, so we don't rely on goodwill and have more than a single point of failure. Also because of the lack of incentive there is not much interest in running slashers, and as a result not many implementations (for example Teku doesn't have one).
Honestly, I don't see the benefit of not rewarding the slasher slightly (1/8th of the slashing amount). The code simplification mentioned seems irrelevant.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

protolambda picture protolambda  路  18Comments

prestonvanloon picture prestonvanloon  路  17Comments

dankrad picture dankrad  路  14Comments

protolambda picture protolambda  路  23Comments

JustinDrake picture JustinDrake  路  24Comments