The proposal to separate proof fees from execution gas proposes removing the batch balancer mechanism, instead charging SPs an explicit fee for proving or updating a sector, separate from the gas cost of the on-chain proof verification. As technological advances reduce the hardware (off-chain) and validation (on-chain) costs, and expand the availability of blockspace, the Filecoin network should continue to capture revenue based on the core functionality of network-validated, cryptographically proven storage.
This proposal expands on that idea with a self-adjusting price mechanism, restoring a feature that the batch balancer offered before the introduction of FVM. This idea is a collaboration with @Nicola.
The batch balancer was ok pre-FVM
The batch balancer mechanism had an element of demand pricing in its batch fee formula. The per-sector batch fee increases with base fee so that the total gas+fee cost of a proof increases faster than the base fee. Before the introduction of the FVM, the primary demand for blockspace is storage onboarding. This means the primary determinant of base fee is the onboarding rate and so this introduces a feedback mechanism where high onboarding rates would increase the fees associated with onboarding both via the gas cost (which could be countered by aggregation) and the batch balancer fee.
After the FVM is introduced, there will be many demands for blockspace which will change over time. The base fee will cease to be driven primarily by onboarding rate, and may fluctuate wildly. There is significant concern that volatile gas prices will price out network maintenance operations (Window PoSt) and increase costs and risks of onboarding. Technological advances that reduce the computational cost of proof verification would also further weaken the relationship between base fee and onboarding rate.
Returns depend on off-chain factors
SPs returns depend on income and costs denominated in both Filecoin tokens and fiat currencies. Mining rewards and on-chain fees are denominated in FIL, but factors like the cost of hardware, energy, and staff are usually fiat. An SP’s returns thus depend on the Filecoin token price and local costs of inputs, as well as on-chain ROI.
The prevalence of non-FIL costs makes it hard to determine the “right” price for a storage proof. The Filecoin network should capture some part of an SP’s expected return, but that return depends heavily on factors that are not observable on-chain. If the price of a proof is set too high relative to off-chain realities like macroeconomic conditions, energy costs, or the token price, storage providers will withdraw. But if the price is set too low after technological improvements or market euphoria, the Filecoin network will forgo significant revenue that it could have captured.
The original proof fee proposal suggested setting the price by governance action, a slow and impedance-prone process. As off-chain factors vary, the price would almost certainly be “wrong” most of the time.
We could instead price onboarding dynamically at the right level to both ensure sustainable SP returns and capture value as those returns improve by setting the price based on demand, as evidenced by the recent historical storage onboarding rate.
Proposal: establish a per-sector onboarding fee in proportion to the recently (~days/weeks) observed net raw-byte power growth rate. A similar fee would apply at Replica Update, and we may want to monitor the rate of replica updates in order to inform the dynamic price. This fee should also vary with sector size and probably commitment duration.
A demand-based onboarding fee would automatically adjust to changes in both on-chain and off-chain factors, and expectations thereof, influencing SP returns. SPs would be expected to commit sectors up to the rate at which the fee reduces their returns to a sustainable level (these returns would still be quite large, reflecting an acceptable risk-adjusted return on such investment).
A stabilising influence
In times of low or negative network growth, a dynamic onboarding fee would reduce the Filecoin network’s value capture to a minimum (gas would still be charged), maximally encouraging additional onboarding. Zero network growth implies that SP expected returns are, in aggregate, at the minimum sustainable level so there is no room for the network to capture revenue without losing net commitments. Despite reducing revenue, encouraging additional commitments would have a beneficial impact on the token circulating supply, since the tokens locked up in pledge far exceed the amount burnt. In times of declining growth and increasing supply, the pledge from a marginal sector is more valuable than the foregone fee.
On the other hand, in times of strong growth, a dynamic onboarding fee would increase the network’s value capture automatically in response to increased SP demand for onboarding. The increased demand implies that SP returns are strong, and a fee based on onboarding rate would increase to capture part of those return. A demand-based onboarding fee would thus act as a stabilising influence on network growth rate, curbing the peaks (while capturing strong revenues) and boosting the troughs, as compared to a fixed fee.
All of this should be decoupled from execution gas scarcity, which will become increasingly uncorrelated with storage demand and thus destabilising.
Response to technological improvements
As a concrete and not-too-hypothetical scenario, technological improvements currently in development may reduce the costs of proving sectors significantly. These improvements will reduce both the on-chain proof verification cost, and a storage provider’s hardware and energy costs for proof generation. A reduction in FIL-denominated on-chain costs could be accounted for in a fixed fee, but the reduction on off-chain costs is very hard to price in FIL. The “right” reduction depends on the proportion of SPs’ total costs that the proof generation represents, as well as the Filecoin token price at which to translate those fiat savings into on-chain fees.
A demand-based onboarding fee would automatically balance these factors. When off-chain costs decrease, SP returns would improve and so SP’s may be expected to commit more sectors in order to exploit those returns. An increased onboarding rate would push the fee up until it had captured a sustainable share of the gains.
This proposal introduces a different network parameter to be set by governance action. Instead of setting an onboarding fee explicitly, we must instead decide form and slope of the “fee market” function. The simplest reasonable function is probably linear with a floor (like the batch balancer), in which case parameters are:
- the minimum sector onboarding fee
- the rate of network raw byte power growth above which the fee increases
- the slope of the increase in fee with increased onboarding
Additional decisions include how to vary the fee with sector size (probably linearly) and commitment duration.
The reward baseline function could provide a good guide here, and it seems reasonable to couple the two concepts (so that these values change if the baseline function changes in the future). For example, we could set parameters so that the function passes through the current batch balancer floor (16M atto-FIL) when the growth rate matches the baseline function, but has a floor somewhat lower in order to boost onboarding below that point.