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.