fip | title | discussions-to | author | status | type | category | created |
---|---|---|---|---|---|---|---|
0077 |
Add Cost Opportunity For New Miner Creation |
Zac <@remakeZK> |
Draft |
Technical |
Core |
2023-08-21 |
- Add opportunity cost (in FIL) to each miner actor creation to prevent the miner ID creation spam.
By imposing a cost, this proposal helps prevent the spamming of creating miner IDs in order to:
-
lighten the network chain storage burden
-
Prevent wasted resources and incremental increases in gas cost caused by wasted storage, and;
-
Avoid an attack vector whereby an attacker sends a large amount of low cost
CreateMiner
messages, thus causing network congestion and destabilizing gas fees.
It was documented that in March 2021, someone had spammed the network by sending thousands of CreateMiner messages. This caused several issues:
- Base fee increases associated with mpool congestion
- Redirect nodes away from producing blocks
- Lower overall chain performance, specifically related to cron jobs overload
As of August 2023, according to FilScan statistics, there were 601,131 Miner IDs and only 4,862 actively in use. The actual ID usage counts for merely 0.8% of all existing Miner IDs, and the abuse of ID creation trend continues. In the previous two months, only 3.7% of all newly created Miner IDs (125 Miner IDs are active out of 3,254 newly created) were active.
Users create multiple Minder IDs in order to get preferred IDs, wasting resources and unnecessarily burdening the network. Unused Miner IDs continue to occupy storage on the network. As time goes on, it is expected that the rate of wasted resources will increase, as will future gas prices.
Furthermore, allowing network participants to cheaply and easily create numerous accounts introduces a potential attack vector. Were participants to spam the network with CreateMiner messages, mpool congestion and unstable network fees could potentially affect more useful, critical, and/or time sensitive messages (i.e: SubmitWindowedPoSt, ReportConsensusFault, sector/data onboarding messages) from landing on chain.
In creating a new Miner actor,
- Currently: there is no cost associated with creating new miner actors other than the gas cost for the CreateMiner message, so users spam many new miner actors without limit
- Proposed:
Require transfer a certain amount of money to the miner's account as locked reward, and the amount of this money depends on the pledge required to reach the network's block production threshold.
Adding an opportunity cost will prevent such spammy behavior; moreover, depositing fees as locked rewards does not incur actual costs but will occupy funds and bring opportunity costs. Users need to weigh the opportunity cost of locking funds for 180 days per new miner actor. Also, the more miner actors created, the more funds need to be locked. This can prevent users from abusing miner actor creation. Additionally, this mechanism helps determine whether each new miner actor will be fully utilized since idle miners will waste locked funds in vain.
N/A
N/A
These changes have been implemented in this PR.
filecoin-project/builtin-actors#1398
There is no security consideration for this proposal; instead, it helps to prevent potential attacks by using a large number of newly created IDs, and the scenarios of network congestion and instability of gas fees that are caused by unnecessary numerous ID creations.
Charging for creating new accounts can help prevent abuse, reduce unnecessary storage, and avoid increased gas fees over time caused by such wasteful activities that burden the network with unnecessary storage; moreover, this change will be a moat against new SPs entering the Filecoin ecosystem, or existing SPs who want to scale their deployments horizontally instead of vertically (within the same miner_id).
Currently, setting no cost for miner actor creation has no benefits but potential risks and drawbacks to the network, occupying the unnecessary storage will increase the network burden and future gas fees, also expanding the potential attack exposure. Therefore, By charging the creation miner actor fees and later either burning the creation fee or converting the fees to lock rewards will stop the abuse of ID creation since they would consider the worthiness of the opportunity cost if they do so. Moreover, this proposal guides or returns to the normal phenomenon that should supposed to exist - truly implement on-demand account creation, where new accounts are only created when they are actually needed for use, or newly created accounts are put into practical use.
Since currently miners need to seal sectors exceeding the block production threshold in order to mine blocks, it is reasonable for miners to prepare and lock up at least the pledge required for these sectors. Moreover, the proposed first solution of converting fees to 180-day locked rewards adds no real capital cost, only opportunity cost. This encourages on-demand account creation, as users will create accounts based on actual needs, ensuring practical use of each new account.
Copyright and related rights waived via CC0.