Prepay Min Fixed Fee CIP

Odin and I have been working on a CIP to make the minimum fixed fee more fair to pools with less stake.
Below is a start on this CIP which we are opening up for discussion before we officially submit it.
What do you think?
Shawn

Simple Summary

Create a more fair marketplace for stakepools by paying the minimum fixed pool fee to qualifying pools before calculating pool and delegator rewards.

Abstract

The current minimum fixed pool fee places a large and unfair burden on delegators to pools with smaller amounts of stake.
This incentivizes people to delegate to pools with higher stake causing centralization and creating an unequal playing field for stakepool operators.
Paying the minimum fixed pool fee before calculating pool and delegator rewards eliminates the imbalance between stakepools with less or more stake allowing for fair competition between stakepools and more fair rewards for delegators to stakepools with less stake.

Motivation

Paying the minimum fixed pool fee before calculating pool and delegator rewards creates a more fair marketplace for all stakepool operators, gives delegators to pools with less stake more fair rewards, and increases decentralization, which is a goal of Cardano.

Specification

TODO Need to look at specs and see what relevant changes need to be made.

Note that only the minimum fixed fee is prepaid. Any amount above the minimum defined as the pool fixed fee would still be paid out of the pool rewards as is done now.

Things to consider
Will the cost of this proposal be taken from:
Redistributing the amount already allocated to stakepool blockrewards
Decreasing the amount going to the treasury, (increasing the total amount going to stakepools)

(A) would be the easier option since it would not change the total rewards distributed, and would probably therefore have less side effects.

Do we need a hard cap on the cost? i.e. the fixed pool fee is covered for a maximum of N*k block producing pools,where N is some small integer.
Or can we rely on the parameter k to keep the number of block producing pools small enough?

If there is a cap we need to decide what happens if there are more block producing pools then the cap allows.

If we go with (A) for the source of the prepaid min fee funds, then a cap is a good idea.
We can determine N by looking at the number of pools making blocks in recent epochs compared to current k value.
If more than N*k pools make blocks then the total cap is divided equally among all pools making blocks. In this case, each pool will recieve somewhat less than the min fixed fee as the prepaid part of the pool rewards. The difference between the prepaid amount and the pool’s declared minimum fee would be paid out of the pool rewards as is done currently.

Rationale

TODO Need to add detailed explanation.
In summary, the proposed changes would create a more fair marketplace for stakepools, provide more fair rewards for delegators to smaller pools and would reduce incentives for centralization providing a more resilient network.

Backward Compatibility

No backwards compatibility is needed.

Test Cases

TODO Need a statement about test cases.
Perhaps we could show an example of how the rewards would change for the pools and average delegators to a large and small pool.

Implementations

This would require changes in the way cardano-node calculates pool and delegator rewards.

2 Likes

I love the idea - I feel there is unfortunately too much at play favorizing big actors, but this becomes a complex effort to redesign the incentive scheme - effectively right now, K works as designed, I understand it as effectively benefiting the bigger players.
Looking forward to what comes up - and Invite you to push it through as a CIP so it can be merged / get visibility (even though implementation still lays with IO…)
Thanks for pushing out proposals like those @shawnim !

Possible ideas to help the “little guys” to increase decentralization:

  • Factor into the reward equation the amount of delegating stake addresses in addition to the actual amounts delegated.
  • Favor ADA from delegation over ADA from pledge or operators. I think it already does this to some degree?
  • Scale saturation maximums based on pledge to allow small, mid, and large pools to co-exist.
  • Charity incentives such as registering non-profit pools to increase slot leader chances.
  • Epoch elections rotate repeated slot leaders. Top 10 pools rotate after 3 epochs in top 10, top 100 after 15 epochs in top 100, etc.
  • Minimum fee calculated by percentage of pledge.
  • Lock operator pledge for 1+ years to prevent sponsoring or promoting/pumping pools temporarily.
  • Penalize whale pools or private pools from being selected as slot leaders. 65M ADA SPO, 100% margin fees, etc