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?
Create a more fair marketplace for stakepools by paying the minimum fixed pool fee to qualifying pools before calculating pool and delegator rewards.
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.
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.
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.
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.
No backwards compatibility is needed.
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.
This would require changes in the way cardano-node calculates pool and delegator rewards.