Skip to content

Latest commit

 

History

History
124 lines (97 loc) · 6.08 KB

fip-0065.md

File metadata and controls

124 lines (97 loc) · 6.08 KB
fip title author discussions-to status type category created
0065
Ignore built-in market locked balance in circulating supply calculation
Alex North <@anorth>
Accepted
Technical
Core
2023-06-16

FIP-0065: Ignore built-in market locked balance in circulating supply calculation

Simple Summary

Ignore the built-in market actor's locked balances in the network circulating supply calculation, in preparation for direct commitment of data into sectors without a corresponding built-in market deal.

Abstract

The built-in storage market actor's minimum deal collateral currently functions as a mandatory data assurance mechanism. The market's collateral and deal payment balances are subtracted from total token supply when calculating the network circulating supply. This proposal is to simplify the network circulating supply definition by ignoring the built-in market's locked balance. This is logical support for subsequent protocol changes that would allow storage providers to commit data without a built-in market deal or the associated collateral. The built-in market actor does not warrant special treatment in the circulating supply calculations.

Change Motivation

The built-in market actor is expensive in gas, and offers only basic functionality. It cannot support the expansion in usage or functionality that network participants hope for, and may be replaced by more efficient and flexible user-programmed actors over time. Work is in progress to permit SPs to commit data directly into sectors without a built-in market deal, With such changes, the built-in market actor would no longer occupy a privileged position as a required intermediary.

The primary motivation for this proposal is simplicity: deal collateral and escrow are only a very small fraction of the network's locked tokens. They are not justified to treat as a special case in the circulating supply calculation, especially as the built-in market may represent only a small fraction of data commitments in the future. Other storage application contracts may represent much more, yet their balances would be ignored in this calculation.

The built-in market's balances represent a small and likely decreasing fraction of locked tokens, and the protocol will be simpler if they are ignored.

Specification

The network circulating supply is currently specified as

CirculatingSupply = Vested + Mined - Burnt - Locked
  where
Locked = PledgeCollateral + ProviderDealCollateral + ClientDealCollateral + PendingDealPayment 

The calculation of Locked is changed to account only for pledge collateral (initial pledge plus vesting rewards):

Locked = PledgeCollateral

Design Rationale

Remove built-in market balances from the network circulating supply calculation

The built-in market's locked balances are a trivial level of the network's total locked amount. Given its cost and limitations, it is unlikely that the built-in market actor could account for a large share of the network's data commitments in the future, reducing the relevance of its balances even further. We can simplify the network's specification and implementation by removing them.

As of epoch 2911690, the built-in market's locked balances are:

Built-in market account Balance
TotalClientLockedCollateral 0 FIL
TotalProviderLockedCollateral 317,498 FIL
TotalClientStorageFee 38 FIL
Total 317,536 FIL

This amounts to a tiny fraction of network stocks:

Network stock Amount Market fraction
Total locked 150,981,531 FIL 0.21%
Circulating supply 473,321,502 FIL 0.067%

Ignoring the market's balances in these calculation will thus have negligible effect on downstream values such as the sector initial pledge requirement.

Ignoring these balances in the calculation of network circulating supply will not actually unlock any tokens, it will only add them to the collection of tokens that are locked in ways that the network core does not account for.

Preparation for direct data commitments

The built-in market actor constrains the data that storage providers (SPs) can store in sectors, limiting their utility and value, and adding large costs in gas and complexity to the network core. This proposal prepares for user-programmed smart contracts to act as markets or other data applications, unconstrained by the built-in market's functionality or cost.

Backwards Compatibility

This proposal changes the calculation of the network's circulating supply, which forms part of the consensus rules. It thus requires a coordinated network upgrade.

No on-chain interfaces or state are altered.

Test Cases

The only relevant test is that the circulating supply calculation ignores balances locked in the built-in market actor.

Security Considerations

None.

Incentive Considerations

This proposal will increase the calculated circulating supply by approximately 320,000 FIL (0.067%, or ~7/10,000). This will in turn increase the sector initial pledge requirement by a slightly smaller fraction. This is considered inconsequential.

This proposal does not change any incentives associated with accepting or completing a deal with the built-in storage market actor.

Product Considerations

This proposal, or some alternative, is logical preparation for clients and providers arranging storage directly, or via a user-programmed smart contract data application, that can avoid the costs and limitations associated with mandatory use of the built-in market actor.

The built-in market actor will continue to require minimum deal collateral, so in the near term all deals will as well. Participants and developers will need to explicitly alter their arrangements should they wish to make arrangements that uses a lesser amount, when that becomes possible.

Implementation

TBA.

Copyright

Copyright and related rights waived via CC0.