-
Notifications
You must be signed in to change notification settings - Fork 106
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
Add Rewards #2188
Comments
Being a little more specific, I've found the following lines in the codebase where rewards should be minted:
Would you mint rewards somewhere else? Your opinion about this also important: @cgrigis, @Gilthoniel, @gnarula, @jeffallen, @nkcr, @tharvik |
Quick finish of BLS? -> collect later signatures and append them to future blocks. Actual reward is calculated in block + 10 or so, in order to account for these messages, too There are multiple ways to implement this feature, not clear what is intended because it's under-specified. For example:
|
The Quick finish means that the sub-leaders will forward signatures from their leaves if already a threshold are available. So if a sub-leader has 4 leaves, he will already forward the signatures if it received only 3, and the 4th once it is available. But this poses a problem for rewarding slow nodes, because they would not receive any rewards, as they are always late. We could also rotate the leader much more often (like every 10 blocks), and then the new leader could add all his missing signatures in his first block. Would you have time working on this? You would have to add some description how this should work, and once @LefKok is OK with it, I can show you how to implement it. |
Thank you Linus, now I understand what you mean by "Quick finish of BLS" and how it fits the "Liveness Incentives" in the MOTOR paper, Section IV. E. 2) Nonetheless, there is an issue with the "Reward Allocation Incentives" (Section IV. E. 1): all nodes defecting is a Nash equilibrium. Assume that every type of node has a different cost: c^l for leaders, c^sl for sub-leaders and c^leaf for leaves (s.t. c^l > c^sl > c^leaf). Theorem. In each round of MOTOR with n nodes (i.e., where there are leaders, sub-leaders and leaves), the strategy of all nodes defecting is a Nash Equilibrium.
Therefore, all nodes defecting is a Nash Equilibrium. QED. An analogous result can be obtained for a strategy in which leaves do not sign/gossip transactions, sub-leaders do not collect/aggregate transactions from leaves and leaders create empty blocks, while everyone collects their reward: their payoff is maximised by ignoring transactions, not incurring costs and collecting rewards. @LefKok, all-defection strategies are profitable when there are no penalties associated to non-cooperative strategies, and rewards are the same for different types of nodes in spite of their different costs: a proper reward allocation must take into account all these details. For a proper example, an incentive compatible reward mechanism where cooperation is a Nash equilibrium (Theorem 7) is described in my zk-PoI paper at Section 5.1. |
"Assume that every type of node has a different cost: c^l for leaders, c^sl for sub-leaders and c^leaf for leaves (s.t. c^l > c^sl > c^leaf)." I would say that this cost is so marginal that modelling to 0 is practical enough to circumvent the problem that appears in asynchronous distributed systems that doing nothing is always the best thing (since your messages might be dropped by the network) |
Far from it, the empirical costs of running a node aren’t cheap:
A stronger impossibility result prevent us from achieving cooperation between the nodes. Theorem. In each round of MOTOR with n nodes (i.e., where there are leaders, sub-leaders and leaves), with rewards shared proportionally according to , the strategy of all nodes cooperating can never be a Nash equilibrium. Assuming that nodes deviate unilaterally, we can reason that:
Therefore, all nodes cooperating can never be a Nash Equilibrium. QED. @LefKok, the theoretical point here is that it’s an indispensable requirement for any reward allocation mechanism to prove that cooperation is a Nash equilibrium (e.g., Theorem 7 of my zk-PoI paper at Section 5.1), otherwise the mechanism could get broken. |
Discussing with Lefteris, we should start using rewards for ByzCoin:
Look at MOTOR paper https://eprint.iacr.org/2019/676.pdf
Signing rewards
Proof-of-Personhood
Transaction costs
PoP-example
The text was updated successfully, but these errors were encountered: