Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

whistleblower rewards #1631

Closed
ethers opened this issue Feb 26, 2020 · 7 comments
Closed

whistleblower rewards #1631

ethers opened this issue Feb 26, 2020 · 7 comments

Comments

@ethers
Copy link
Member

ethers commented Feb 26, 2020

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).

@ghost
Copy link

ghost commented Feb 26, 2020

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:

@ralexstokes
Copy link
Member

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

@djrtwo djrtwo closed this as completed Mar 17, 2020
@greg7mdp
Copy link

greg7mdp commented Jan 5, 2021

Is there a financial incentive for running a slasher then?

@rauljordan
Copy link
Contributor

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

@greg7mdp
Copy link

greg7mdp commented Jan 5, 2021

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?

@rauljordan
Copy link
Contributor

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

@greg7mdp
Copy link

greg7mdp commented Jan 5, 2021

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants