Fresh Reward LIP (Draft)

LIP: TBD
Title: Fresh Reward Module
Author: Ultrafresh
Discussions To:
Status: Draft
Type: Standards Track
Created: 2022-10-12
Updated: 2022-12-12
Requires: 0042, 0051, 0058

Abstract
The Reward module provides the base reward system for a blockchain developed with the Lisk SDK. This update would allow Lisk users to have guaranteed rewards earned from voting.

Copyright
This LIP is licensed under the Creative Commons Zero 1.0 Universal.

Motivation
The goal of this LIP is to significantly increase the total value locked (TVL) of LSK tokens, including (TVL) of self-voting, as well as increase decentralization by adding more active delegates. These variables will still be easily changed, replaced, or removed for modular use.

Rationale
To increase TVL, all voters should earn tokens for participation, by voting for any actively forging, non-penalized, delegate.
-This incentivizes voters to remain active and have well informed votes. (Voting for a banned delegate will not earn any rewards)

Increase self-vote TVL by having a self-vote count with an increased voting value of 2x a normal vote (or some other increased multiplier).
-Active delegates will be incentivized to lock more self-vote instead of voting for other delegates, which will consolidate more votes and increase self-vote TVL.

Increase the number of standby delegates which will increase decentralization.
-Increasing the amount of LSK rewarded to the standby delegate pool would incentivize more forging delegates by only increasing inflation a small percentage.

Specification:
This could be implemented by distributing half of the block reward for the entire round to all voters of an active, non-penalized, delegate proportional to vote weight, with an increased weight for self-votes.

Standby Delegate slots should increase increasing decentralization. If a small small percentage of increased inflation is seen as an issue, it could be offset by increasing the burn rate of LSK tokens.

More details TBD after initial discussion and feedback.

Backwards Compatibility:
Not backwards compatible and will require a hardfork.

Reference Implementation:
TBD

Thank you @1ultrafresh for taking the time to write a LIP draft. It is indeed a very positive sign for the Lisk community that the members are actively contributing in improving the Lisk protocol.

We plan to introduce a reward sharing mechanism as mentioned here i.e. a voter will get the guaranteed rewards for voting a delegate. Moreover, the percentage of the rewards shared will be determined by each delegate, therefore delegates will have more freedom to give more rewards to the voters. This will indeed motivate voters to participate in the voting. Moreover, currently in the Lisk protocol, voting for a banned delegate does not give any rewards since the banned delegate does not forge.

This is an interesting point and it might motivate delegates to not vote for other delegates and add more votes in the form of self votes. Although, it will have no impact on rewards since if a delegate has double rewards for self-votes, then delegates will just take that into account when computing how much commission they would charge.

As mentioned here, Lisk protocol uses a weighted random selection algorithm to select standby delegates. Due to performance reasons, it is recommended not to use more standby delegates. In fact, the more standby delegates we add, the less robust will be the selection mechanism. Moreover, by increasing the number of standby delegates there will not be much changes in the TVL.

Thanks for the response!

We plan to introduce a reward sharing mechanism as mentioned here i.e. a voter will get the guaranteed rewards for voting a delegate. Moreover, the percentage of the rewards shared will be determined by each delegate, therefore delegates will have more freedom to give more rewards to the voters. This will indeed motivate voters to participate in the voting. Moreover, currently in the Lisk protocol, voting for a banned delegate does not give any rewards since the banned delegate does not forge.

The reward sharing mechanism you linked to does not seem to guarantee voting rewards if delegates can choose to share 0%. All delegates could share 0% and then voters earn nothing. The ability for a delegate to easily change their reward could also be a confusing and frustrating experience if voters are able to be “rugged” with lower sharing. Additionally, in that proposal and in the current reward module, voters are penalized with a great opportunity cost when voting for a delegate that has less capital compared to one with much more.

If voters earned a minimum from voting, they are guaranteed earned rewards for participation. Additionally, voters won’t lose nearly as much value in opportunity cost for voting for a standby delegate compared to a “rich” delegate.

This is an interesting point and it might motivate delegates to not vote for other delegates and add more votes in the form of self votes. Although, it will have no impact on rewards since if a delegate has double rewards for self-votes, then delegates will just take that into account when computing how much commission they would charge.

The goal of this feature is not to increase the rewards but to increase the TVL of self-voting. The method to achieve this is by incentivizing self-voting more then normal voting so that delegates will consolidate their “extra” vote weight.

As mentioned here, Lisk protocol uses a weighted random selection algorithm to select standby delegates. Due to performance reasons, it is recommended not to use more standby delegates. In fact, the more standby delegates we add, the less robust will be the selection mechanism. Moreover, by increasing the number of standby delegates there will not be much changes in the TVL.

That is an issue of the Blockchain Trilemma. Balancing decentralization, security, and scalability. By increasing the number of delegates you increase decentralization as well as the minimum TVL on the network since each active delegate requires a minimum amount to be locked in self-vote.

Now, I agree this is at the expense of scalability and the trade off might not be worth it. So it would be interesting to see the loss of stability in the network by increasing the number of standby delegates by, let’s say, 5. An increase of 250% to the incentives to be a standby delegate, which would likely increase the number of standby delegates the same amount. In comparison, it is slightly less than a 5% increase in total nodes.

Thank you @1ultrafresh for your response and sorry for the delay in the reply. The research team was busy in the publishing of the two new LIP draft’s as below:

i) Introduce reward sharing mechanism

ii) Introduce dynamic block rewards module

You can have a closer look at the details now and we look forward to the feedback. About your queries, please find the response below:

It is true that in theory all delegates could set reward sharing to 0%, but this is quite unlikely to happen; this is shown by the fact that now, that no reward sharing is on-chain, many delegates share rewards with voters using off-chain tools (see, e.g., here). In fact, many delegates share much more than half of the rewards such as 70% or 80%. So we believe that this could provide even more rewards to voters than 50%.

In any case, both ideas are in the same direction and guarantee rewards for voting; I guess we all agree that sharing rewards with voters is expected to increase the participation in voting.

I guess there is a misunderstanding here. It is not true that there is profit on voting “rich” delegates in our proposed mechanism combined with the proposed block reward system. The important parameter is the commission set by each delegate. So assuming that we want to choose among a few delegates who all have the same commission (say 10%), consider the following scenario:

  • A rich delegate has 2% of total active delegate weight
  • Two medium delegates have 1% of total active delegate weight
  • Five small delegates have 0.4% of total active delegate weight

According to our reward distribution, each delegate gets 0.1 + 90.9 * weightFraction. So we have:

  • Rich delegate gets 0.1 + 90.9 * 0.02 = 1.918 LSK per round
  • Medium delegates get 0.1 + 90.9 * 0.01 = 1.009 LSK per round
  • Small delegates get 0.1 + 90.9 * 0.004 = 0.4636 LSK per round

It is easy to see that voting any amount X for a rich delegate is less profitable than splitting it into two parts of X/2 and voting the medium delegates (2* 1.009 = 2.018 > 1.918), which is less profitable than splitting it into 5 parts of X/5 and voting the small delegates (5 * 0.4636 =2.318 > 2.018) . So strictly speaking, among delegates with the same commission percentage, voters are motivated to vote for the smaller ones.

According to your proposal, delegates get 50% of rewards and 50% goes to the voters according to the votes, with self-votes having a 2x value. So indeed the delegates get more rewards compared to voting other delegates, so this might increase the self-vote TVL. However this comes at the expense of decreasing the rewards shared to voters.

In our proposed solution, the self-vote TVL is expected to increase due to the dynamic block reward combined with the commission: a delegate gets more rewards by self-voting an amount compared to voting another delegate. Furthermore, the commission plays the same role as the 2x multiplier you proposed and it can be adjusted according to each delegate.

As mentioned, increasing the number of standby delegates to a fewer number will not make any huge difference in the TVL however it will have an impact on the performance. Therefore, it is recommended that there shouldn’t be a large increase in the number of standby delegates.