Minimum Pool Fees
This is background on proposed updates to two parameters: ‘K’ and the ‘minimum fixed fee’. Much of this was discussed at the discord call; this note doesn’t add new material. This note is primarily intended to summarize what was talked about and to facilitate a continued discussion.
Just to reiterate - these are changes up for consideration and I’d love to hear any constructive feedback.
Minimum pool fees are one component of the staking rewards formula. They are one of the more problematic pieces because the relative importance of these fees drift over time and need to be periodically reset to keep the same relative importance.
The primary goal of the minimum fees was to add an additional layer of protection against sybil attacks; an attempt to take over the network by creating large numbers of zero fee pools. The purpose of the minimum fees was to make it impossible for small pools starting out to economically compete with larger, established pools until they had reached a certain size (for example, by an SPO providing an amount of pledge.)
Over time, these minimum fees have changed from being a minor portion of the rewards formula to the single largest component. In 2020, pools could be much larger and were benefitting from a larger reserve (which acted to incentivize early adoption.)
Note: ‘Saturated’ in all the charts below means that a pool is optimally sized to maximize rewards. This size changes over time due to release of Ada from the reserves as well as another parameter, K, which controls how large a pool can be as a percentage of the released Ada.
In Dec 2020, we move K from 150 to 500. This is a parameter that controls how large a pool can be (and reduces that income that comes from the variable fee.) At the same time, the variable rates tended also tightened, with 1% being a very prominent number.
In March 2022, a saturated pool is 68 MM Ada. The effects of the minimum fixed fee are far more pronounced on smaller pools - like a pool with 10 MM delegation (a pool size that many people would consider “ not very small ”.)
The impact of this is troubling – we have moved from a distributed consensus, where a price is set based on a competitive market mechanism, to a price set by the minimum fee. A prominent viewpoint even being that the minimum fee should in fact represent a point where a pool can run profitably: eliminating any need for a price above the minimum allowed rate.
Implications for Security
The sybil protection aspect of the minimum fixed fee means that a pool needs to reach a certain size to be able to offer competitive economic rewards for delegators, which to me tends to mean within about 0.1%: meaning I am mostly indifferent between a pool that rewards 5.0% vs. 5.1%. (In my modeling, it means new delegators might choose to receive a 5.1% return, but existing delegators will not move for that.)
Originally, pool offering a 0% variable fee needed to reach several million Ada prior to being able to offer a competitive return with a saturated pool that took several percent return. In 2020, this would have represented an economic investment of 200K USD to clear that hurdle rate.
In the current economics, this has drifted even further – a pool with a 0% variable fee needs to start with over 10 MM USD in stake to offer a competitive return with a larger pool charging 1%. At current market prices, this is nearly 10 MM USD to clear that hurdle rate.
These has led to an unpassable hurdle rate for many pools – unless they can start at more than 10 MM Ada, they have no ability to organically grow. Not only with profit minded delegators not choose to delegate initially, but they are in fact strongly motivate to switch with larger pools: asking delegators to take a 3% return instead of a 5% return is a difficult sell.
The Change to K=750 (or K=1000)
K is the parameter that caps the maximum profits for a pool, such that attracting more delegators just splits the existing rewards between more people rather than add to the rewards. The other significant impact is that any pools over the new size cap will need to have delegators switch to a different pool. This will also be motivation for pools that are over the size cap to split into two smaller pools.
The impact of the minimum fee changes from being 38% of the total rewards to a bit more than 55% of the rewards. Whenever the fixed fee is more than half of the rewards, this means any pool that successfully splits into two is more profitable immediately, rather than the current situation where splitting requires additional delegation to become more profitable.
Obviously, running multiple stake pools is a contentious topic among the SPO community. As soon as the fixed fee represents more than half of the total rewards, the financial motivation changes from “spin up another pool as soon as all my existing ones are totally full” to “it makes sense to run two half-full pools indefinitely.”
What levels are appropriate for a fixed fee?
The necessity for the minimum fixed fee follows much of the same logic as a minimum wage vs living wage arguments; I am not going to reiterate those here.
There is a great write-up about alternative formulations for the minimum fees; if you are interested you should check that out. This would require a change to the ledger rules, not tweaking a parameter, so it is a much larger change than what I am discussing here.
There are a wide range of minimum fees that could potentially work; the current levels are too high, but that doesn’t give a lot of guidance as to what the goal should be.
The proposal that best adheres the initial specification of the minimum fixed fee, in my opinion, is to move the fee from 340 Ada to 30 Ada. This would reset the relative sensitivity of the variable fees and fixed fees back to their original levels, and it also closely matches the original fiat values of the fee, which was originally set to around $5.25 / day. That will not fully compensate pools, the intent was that the variable fee would be useful in more situations than just when demand for staking far exceeded the available capacity of stake pools.
The other key outcome for moving the minimum fee to 30 Ada is that it brings the minimum viable size of a pool from over 10 MM Ada to slightly over 1 MM Ada, about the point where a pool becomes block producing. (By minimum viable I mean that the opportunity cost for staking to a small pool with a 0% coupon is no more than 0.1% annually, compared to staking with a nearly fully saturated pool with a 1% coupon.)
Small pools are still disadvantaged, the current specification with the sybil resistance requires that to an extent, but the playing field would be significantly more level. Pools that can get to 1 MM Ada are now reasonable alternatives rather than obviously bad choices (even with a 0% fee!)
Concerns about changes to the minimum fee
I am very aware that any changes to the minimum fee are very controversial. As it has increased in importance from being a small tweak to help sybil resistance to a primary mechanism to fully compensate pools, such that any variable fee is just an extra bonus, it is now huge part of the total rewards.
Concerns from existing profitable pools about a race to the bottom for pool fees is a major concern for us as well.
The very fact that the change is controversial underscores with how much it has gotten out of control – so much out of control that it is now an obstacle to making other changes (like the K change.)
Happy to try to answer additional questions here