Reduce onboarding gas & align value accrual by removing batch balancer and replacing it with a per-sector fee #1105
Replies: 15 comments 41 replies
-
Thanks @irenegia agree on this Just on 2 - dynamic pricing. I'm not sure on the merits of this approach. I don't think we should be disincentivising onboarding via a higher fee unless there are constraints (like with gas fees). If Filecoin found rapid traction what would be the benefit of increasing the fee at the expense of possibly slowing that down? Adjusting down in periods of declining growth I could understand but this also happens naturally with more of the simple rewards being distributed amongst the lower QAP. |
Beta Was this translation helpful? Give feedback.
-
Moving the question from @beck-8 in the FIP draft here for discussion: #1113 (comment)
|
Beta Was this translation helpful? Give feedback.
-
Flagging here that there is a live FIP Draft for review of this proposed change! Please review FIP-0100 at #1113 and add questions and comments for further discussion here! |
Beta Was this translation helpful? Give feedback.
-
Here is the Post Event Summary from the Monday Feb 10 Filecoin AMA: https://docs.google.com/document/d/1f4QPS4Hjx_he9OKxzZpVZGHcA3pGz_J6DWTIknw4rmM/edit ❓ FAQs from the ConversationEconomic and Network Impact
Protocol and Storage Provider (SP) Impact
Technical and Network Functionality
Gas Fee and Base Fee Considerations
Implementation and Timeline
|
Beta Was this translation helpful? Give feedback.
-
I have several questions around where/how the fee is paid. First up:
The answer is (2) as far as I know, but I wanted to be explicit here. Second, are fees charged for all partitions, even if a partition isn't proven (for example, an SP skips a proof)? This matters because, if an SP skips a proof, there won't be a Third, assuming we're deducting from the miner actor, how are we accounting for these fees?
Option (2) would, IMO, simplify SP operations but I'm not sure if that has the right incentive structure. I also really don't want SPs to fail windowed post because they haven't topped up funds for fees. Furthermore, if we're charging fees in cron (e.g., because the SP skipped a proof), we'd have to go with option (2) at that time because we can't fail to charge the fee in cron. |
Beta Was this translation helpful? Give feedback.
-
Could you please elaborate further on the 30% reduction in gas units? To calculate the current onboarding cost, one sector from SP f02865213 was randomly selected as a sample. The messages for PC2 and C2 are as follows: From the messages, we can observe: |
Beta Was this translation helpful? Give feedback.
-
Fee Predictability Concerns around fee predictability before sealing a sector were brought up in an out of band discussion. Specifically, the concern is:
Our proposed solution is to:
Implementation wise, I'd prefer to record the fee directly in terms of per-byte power instead of just recording the circulating supply. This makes the fee trivial to understand. It also makes it easier for future FIPs to potentially change how this fee is calculated (if we find problems with the current method, find better methods, etc.). |
Beta Was this translation helpful? Give feedback.
-
Burn on termination We've discussed burning up-front and burning over time, but we haven't yet discussed burning on termination and only on termination. The idea is:
The upsides to this approach are:
The downsides are:
|
Beta Was this translation helpful? Give feedback.
-
Paying in WindowedPoSt versus at deadline end Some of the implementers prototyping this FIP discussed when to pay the fee: when the WindowedPoSt message is submitted or in cron at the end of every deadline. Based on #1105 (comment), it seems like we need to do something in cron: we need to pay for unproven partitions. Our realization was that, if we have to do that anyways, we might as well:
The only downside here is that we'll need to record the aggregate power in the deadline (which we don't currently do) in order to apply the %BR limit to the fee, but that's not a huge deal. Also, if we do this in cron, we won't need to call out to the power/reward actor because cron feeds all the necessary information into the miner actor directly. The only added cost here is that non-faulting miner actor will perform a slightly more expensive cron operation as it will need to send some funds to the burnt funds actor, but we don't expect that'll be a significant burden (we don't need to invoke the burnt funds actor, just move some funds around). The impact on the end user is:
|
Beta Was this translation helpful? Give feedback.
-
Moving question on the FIP predictions from @herrehesse here:
|
Beta Was this translation helpful? Give feedback.
-
One conversation that's been ongoing while evaluating implementation options + tradeoffs is when to charge and account for the new per-sector fee: 1) upfront 2) daily over time or 3) at termination. This FIP proposes option 2) daily over time for a few reasons:
The design of the fee was specifically constructed around daily accounting to minimize overhead and allow for increased network value accrual without bottlenecks on SP operations. Our focus is finding a viable implementation pathway to achieve this design. |
Beta Was this translation helpful? Give feedback.
-
🧵 Thread for API/interaction questions/requirements
|
Beta Was this translation helpful? Give feedback.
-
Miscellaneous clarifications for the FIPBelow are items I've heard raised or discussed, but I didn't see in the FIP the last time I looked (and the PR for marking it as "Draft" is merged so I'm avoiding commenting there.). I'm putting them down as potential amendments to make:
|
Beta Was this translation helpful? Give feedback.
-
I think that folks have been modeling this into their evaluation already - but wanted to clarify that the per-sector fee specified in the FIP (https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0100.md#per-sector-fee-added) is defined for a 32 GiB QAP sector (and adjusts proportionally to power). This is consistent with how all the included graphs, simulations, and comparisons vs a BR or IP-based fee design were calculated. 👍 |
Beta Was this translation helpful? Give feedback.
-
Update for this week:
|
Beta Was this translation helpful? Give feedback.
-
Context and Motivation
In the ongoing effort to reduce per-sector onboarding gas costs (see #1092), we have identified the following active work streams:
Supporting the DDO Pipeline: For example, adding DDO deal tracking capabilities to Spark.
Storage Gas Optimizations and Miner Configuration Improvements: Tracking this work here;
Enabling Full Adoption of Batching and Aggregation to Scale Onboarding Growth: This involves ensuring that batching for precommit and batching/aggregation for provecommit are always rational (ie, cost-effective for SPs).
This new discussion focuses specifically on the third point—making batching and aggregation pipelines cost-effective while aligning network value accrual with onboarding growth. Currently, the cost-effectiveness of these pipelines is governed by the BatchBalancer mechanism, which is tied to the base fee. In the sections below, we provide an overview of the current system, highlight its limitations, and propose a practical solution to address these challenges and enable fast progress. This proposal builds on previous work done by CryptoNet (see here and #587).
Filecoin's current fee structure consists of two main components:
Gas Fees: As in other blockchains, gas fees mediate access to limited blockchain execution capacity. These fees are burned, generating network revenue proportional to the execution resources used.
Batch Balancer Mechanism: Beyond blockchain execution, the Filecoin network provides a storage-auditing service to SPs through the proofs of storage verified on-chain. Historically, before proof aggregation, each proof verified a single unit of storage (sector), meaning gas fees captured the value of the storage auditing service. However, the introduction of proof aggregation (where one proof audits multiple sectors) disrupted this alignment. The batch balancer was introduced to address this misalignment but has become outdated, and, as recent work on gas onboarding optimization (Onboarding rate and gas optimizations #1092) highlights, it now acts as a bottleneck to fully adopting aggregation and batching.
Problem Statement: Gas fees – a system primarily intended to charge for execution resources – alone do not properly capture network value for Filecoin, negatively impacting the overall Filecoin economy. Filecoin value accrual via fees should grow proportionally to network adoption and demand, and be resilient to technical optimizations that reduce gas fees and increase chain bandwidth. While the batch balancer mechanism tried to solve this, at the same time it creates these inefficiencies:
It discourages full adoption of batching and aggregation by making these operations less rational (cost-effective). Batching and aggregation improves the overall efficiency of Filecoin, and increases the onboarding capacity of the network.
It couples gas fees with storage auditing in a way that limits predictability and increases exposure to base fee volatility. Gas fee pricing is designed to prevent the network from overusing execution resources; it should not be so directly tied to onboarding levels.
It poses challenges for aligning technological improvements (such as optimizations that reduce gas congestion) with economic incentives (value accrual alignment with network growth).
Proposal and Effects
To address these issues, we propose removing the batch balancer mechanism and replacing its value accrual effect with a per-sector fee, separate from gas fees. This change has multiple benefits:
Fee Design Principles
The fee should accord with the following design goals:
Proposal Directions
We are exploring two high-level fee models:
We are evaluating variations of these models that tie fees to broader economic indicators, such as circulating and total token supply. Proposals are being evaluated based on how well they achieve the Fee Design Principles above.
Conclusion
This proposal introduces a more predictable and rational fee structure that replaces the batch balancer with a per-sector fee, providing Storage Providers with a cost structure that is more stable and easier to plan around. By decoupling gas fees from service fees, this should better capture network value, encourage technological innovation and optimization, and ensure the long-term economic sustainability of the Filecoin network.
Please give your initial thoughts and questions; this is a work in progress, and your feedback will help ensure this approach benefits all parts of the Filecoin ecosystem.
Beta Was this translation helpful? Give feedback.
All reactions