-
Notifications
You must be signed in to change notification settings - Fork 23
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
Define and implement block rewards #246
Comments
Sorry just this wording is strange to me:
You mean an /otherwise/ well-behaving node? Like they were good so far except they didn't reveal preimages, they're not good anymore right? |
I mean that no matter if a node ( |
When is node B queried about knowing about A's preimages? Or in other words, how does it make a statement "I confirm A has not revealed their preimage"? |
So far it does not. The only moment it will make such a statement will be from nomination. |
some thoughts about this ticket, please share of what you think: 1. I think this idea is contra-productive. It will give an incentive to validators NOT to forward other validators signature, and eventually could end up with less signature. There were some suggestions to counteract this by I think we should just give the block reward based on who is enrolled, and that way validators have no financial reason NOT to forward other people's signature. Now, bad-mannered validators can try to slow down other validator's enrollment by voting with 'no' to their enrollment request. However we could combine the enrollments during voting from the current vote and from our knowledge of what we think who should enroll and vote on that 'enriched' proposal. As long as 50% of the validators are not malicious, we would have a very high chance of getting all the enrollment requests into the next block. 2. I think people already have an incenentive for stacking on the flash layer, they can set their own fees that they charge for being an intermediate node, so we don't have to reward them from the block reward. From what I gathered from Andrei it would be very difficult if not impossible to prove that people offered liquidity on the flash layer, hence it would be difficult to reward them from the block reward. |
|
AFAIK, block signing can go on for a while even after the block is externalized, right? So we can't know which validators will be signing the block in the consensus phase.
This does not make sense to me in a "layered" approach. Lower layers should probably never rely on upper layers. |
There supposed to be a delay in paying out the block rewards to tackle the exact situation you mentioned. So for Block X, we wait until Block X+Y, and then we try to make a consensus of who actually signed. We would do the consensus in a very similar/strict way to how we do the consensus of which validators are slashed. (I am not suggesting here that we should give out rewards based on who signed, just mentioning the original design. I would prefer giving out rewards by who enrolled) |
I agree, but maybe we should have more strict slashing rules to better distribute the fees/rewards. |
Yes, we should make the block reward payout contingent on whether the node is slashed or not, just like you did with the transaction fees. What else would you add to the slashing policy btw. Also if we really want to base the block reward on the block signatures, it would be clearer anyway to make it part of the slashing policy/consensus algorithm, and during the block reward calculation we just look at who is slashed for missing signatures(or slashed for anything else really). I think we already have an incentive for validators to stay online and work as expected - they will be slashed if they don't share their preimages. If they already have an incentive to stay online and work AND we don't give validators other incentives TO hide other validators signatures(as the original proposal would have given them an incentive to hide), then I think we could assume they will sign and forward the signatures. |
For a validator to be deemed active, we should check more than just preimages. A validator who just reveales preimages and does nothing else is actually not contributing to overall network stability. Two rules come to my mind for slashing; |
This is extremely hard to prove. A node could vote once (with hashes nobody knows about so the vote is never accepted) and then refuse to vote again. Does that mean they're an active and well-behaved validator? Probably not. But it's hard to prove because the history of voting is not stored anywhere (and it's too much data to store on-chain). |
Documenting some of the decisions that were made through offline discussions and their consequences(It is still not to late to change them)
Let me know what you think, especially about the last point. |
The rewards are now defined but there are still more PRs coming to complete the implementation of payouts with the correct distribution and at the end of the next payout period. |
Still some more PRs coming. |
Premise
The white-paper defines a few things w.r.t. rewards: categorization, amount, randomness...
However, freezing rewards will be removed, as they are a form of passive income which would make our coin a security.
While the total amount of rewards is likely to stay the same, the distribution among the various categories will change to align incentives with the goals stated in the white-paper.
Incentive
One of the goal of the white-paper is to separate the political incentive from the economical incentive.
The direction we are heading towards is to have low rewards for simple validators, and increasingly higher rewards for L2 providers (validators with > 40k).
Since L2 liquidity cannot be slashed (that'd be double spend), we assume that every validator has exactly 40k.
Additionally we need to give incentive for validators to:
In the second case, the lack of propagation / cooperation (e.g. by withholding pre-images) could be used as an attempt to slash a well-behaving node.
prerequisite: #2245
The text was updated successfully, but these errors were encountered: