CHIP-0003 Minimum Fee

This is the place to discuss CHIP-0003, which will add a configurable minimum fee to Chia’s full nodes.

The CHIP is located here:

Formal reviews should be added to the Pull Request:

I think this CHIP should only proceed if we expect fee pressure to arrive significantly after the “critical mass” update their nodes.

From dashboard.chia.net, there’s still ~17% on Novembers release and a further ~20% before then. This means it could take up to a year for the CHIP to be effective. Being an outsider I’d expect fee pressure to be amounting by then.

Would there be a downside to allowing wallets to “ignore” low-value vanilla transactions?

What is your reasoning for this opinion?

Implementing such a change at the wallet level has at least one benefit and two drawbacks:
Benefit – User doesn’t see thousands of dust transactions.
Drawback – User also doesn’t see “legitimate” low-value transactions.
Drawback – It doesn’t fix anything at the blockchain level. The dust still accumulates, along with all of its downsides.

Until mass adoption, are you not implementing most of the drawbacks, with no benefits?

The difference with the wallet implementation is that you have an immediate fix for the users who are affected. Rather than potentially waiting over a year to stop future dustings, it wont fix wallets that have already been dusted.

If you make the change optional and variable like suggested in the CHIP, users can finetune to remove the dust coins without sacrificing too many mojos. Furthermore, if they wanted the dusted coins they could always re-sync with different parameters.

Fixing things at the blockchain level like this CHIP suggests risks not fixing the issue at all.

While it is true that the dust will not be completely stopped until there is mass adoption of this CHIP, the benefit would begin to be seen immediately. This is because one’s ability to dust the network would be slowed by adoption from just a small percentage of nodes. For example, with adoption from 10% of nodes (or more accurately, 10% of space), 10% of blocks would be dust-free. As adoption of the CHIP increases, so will the percentage of dust-free blocks.

Your wallet idea is not bad, but it’s an attempt to solve a different problem. It would mask both past and future dust, but would not stop the dust itself. This CHIP would not mask past or future dust. However, it would immediately slow down, and eventually stop, the dust from happening.

1 Like

Please add to " Drawbacks and Rebuttals" section
“Resembles centralized authority monetary policy”.

You state " this is an attack on individual users". Therefore it is my belief that individual users(the community) should fix it or at least have the option to leave their node as-is.

There is much in this CHIP that echoes centralized monetary policy imo and I find it disheartening.

“This specific amount was chosen to make it costly to spam the network with dust transactions”

Costly when? If it was written 2 months ago the cost was twice as much in terms of real value… if was written 2 months before that then the cost was twice that. XCH price has been going down, it is indisputable, halving every few months.

Will minimum fees go down with it? If so how is this different than the US Federal Reserve adjusting to inflation like it is stuck doing now?

“The minimum fee is sufficiently small to allow faucets to continue operating…”
It’s small until it’s not small and then who comes up with the adjustment? Chia corporate again?

Also, this part seems like a pump(probably unintentional, but inappropriate imo).

“In the medium term, as Chia’s network grows in popularity, transaction fee pressure is expected to mount. This will naturally result in a minimum fee to use the network. If this CHIP has not been implemented by that point, then zero-fee transactions could get stuck in the mempool indefinitely”

Should read “In the medium term, if Chia’s network grows in popularity…”

This CHIP should have come from the community not a Chia employee imo and therefore should be rejected and reintroduced if needed at all.

Adjusting fees to rebalance the system and discourage DDoSing seems perfectly appropriate to me, especially when we’re talking about changes amounting to fractions of a percent you couldn’t buy a granule of sugar to embelish a piece of gum with. I’d hardly call this proposal a change to “monetary policy”.
I’d call it “performance optimization”, which one should expect within a year of release of any software. I’m a farmer and a developer of XCH apps, and I’m in favor of this plan.

I don’t think this is grounds to dismiss a CHIP. I’m glad the Chia team is opening this idea for public discourse regardless of where the idea itself originated.

That being said, I am on the opposing side of implementing this CHIP for the following reasons (reiterating some of what has been said above).

  1. This CHIP does not solve for already dusted wallets to be more usable
    A UI update (such as the most upvoted “Ideas” on GitHub discussion) can improve quality of life of the GUI by not showing these dust transactions in the transaction list (and the coin selection list if this feature is added later).
    I would imagine a light wallet update can be included as well to optionally filter out transaction amounts (with or without fee) below a certain amount to speed up sync and not fetch these coins in the first place. E.g. the user is opting to ignore this dust and treat it as burned for all intents and purposes.

  2. This CHIP does not fully prevent dust storms until all nodes are updated (if ever)
    Dust transactions will continue to be included into blocks. Although it may be fewer and fewer blocks as users gradually upgrade to the new full node version, if the purpose of the dust storm is to target a specific wallet, it will still happen.

  3. Minimum fee required is not clear, especially if fee per cost is changing over time
    As @Gneale mentioned, the exact minimum fee per cost may need to be periodically updated and each time will introduce the above issue of lagged node version upgrades – and probably reraise this same discussion each time (as a CHIP?).
    Further, as more and more complex (non-vanilla) transactions start to take place on the chain, the min fee required for each will be further complicated by a changing min fee per cost. In fact, it will become something like:
    “To accept this complex offer, please include a fee of 0.0005 XCH to be confirmed within 5-15 minutes. A fee of 0.001 XCH to be confirmed within 10-20 minutes.” etc. etc.
    where the time estimate is constantly changing depending on the mempool and ALSO the distribution of netspace vs which full node version is running.

  4. This just feels unnecessary
    All the added complexity (drawbacks) just to pull ahead the timelines of a fee market that will emerge organically seems unnecessary and could create divisiveness around a non-issue. (or rather, an issue that can be addressed on the front end).

One question I do have is about database bloat. I’ve heard mentioned: “Empty blocks have a lot of overhead, so blocks full of dust aren’t really taking up much more incremental space”. Is this true?

1 Like

It’s not the value of the currency it’s the principle of the action. Saying that real value change is below the threshold of anything goes, to me, is the same as saying once the overall marketcap of XCH is low enough it’s ok to make it proof of work, proof of stake, sell it to a drug cartel, or whatever… anything goes right? It’s ok because the amount of money we are talking about can’t buy x amount of sugar.

Anyway, using fees in a centralized way like this in a proof of space/time blockchain to fix problems to me seems intellectually lazy. Fees essentially represent stake. Proof of stake doesn’t work because it centralizes power. That’s all I’m saying here. It starts small like this and grows larger. When the The World Bank is using Chia-blockchain and they don’t like something; over fragmentation of the coin set, the time it takes to sync, the wait for transaction confirmations, etc; they will see this CHIP as a precedent and a template for how to use the big 21M XCH hammer to get what they want. Again this comes from a Chia employee and the company is not public yet. I’m not saying that is what happened in this case. I’m just saying decentralization purists can look at this, if it passes, as proof of the inevitability of centralized governance of how your value can be used if you adopt Chia.

Instead to solve this problem, if it truly exists as stated, I encourage us to us principles more technical or more like Proof of Space and Time(time in particular) to deal with dust storms and the inevitability of spam in a digital network.

  1. Increase the clvm cost of spam like coin spends (for example each CREATE_COIN in the same spend bundle incurs normal clvm cost to the power of 2 * n)(1,2,4,16,32,64,128,256,512,etc)
  2. Use time lock chialisp requirements for spamlike coin spends. Lookup the parent coin heights a certain number of levels in retrospect and if not deep enough reject the spendbudle until enough time passes that the depth is reach(proof of time).
  3. This is non-technical but really needs to be said. Let’s make this project useful enough to the outside world that they want to fill the blocks with real transactions for real valued things like goods and services incurring real clvm cost that will organically raise fees and make dust storms naturally too expensive.

This whole thing is such a waste of time.

This CHIP is an attempt to solve a problem on Chia’s blockchain. If you have a competing proposal, then please propose a competing CHIP.

That is already an option with this CHIP. It would set a default value, which you are free to modify.

I’m not going to make predictions about the price of XCH, but let’s just look objectively at a few possiblities.

  1. At the current price of XCH ($35):
    Number of tx you could send for one penny: 28
    Daily cost to spam the network: $1163
  2. Let’s say the price gets cut in half two more times ($8.75):
    Number of tx you could send for one penny: 112
    Daily cost to spam the network: $291
  3. Let’s say the price increases by 100x ($3500):
    Number of tx you could send for one penny: 0.28 (4 cents per tx)
    Daily cost to spam the network: $116,300

I personally feel that in all three of these scenarios, it would be costly to spam the network, but not costly to use the network as a typical user.

The default minimum fee is priced in mojos and would not adjust according to the dollar value of XCH.

This CHIP would not adjust the default value in mojos. That would require another CHIP.

Regardless of USD cost, faucets could always send 25,000 payments per XCH. It’s hard to predict exactly when a fee market will emerge, but if it does happen, the effective minimum fee will likely be higher than that which is proposed in this CHIP. If XCH increases significantly in value, faucets will, indeed, find it quite expensive to continue operating. However, they will likely be priced out of operation because of the natural fee market, and not because of this CHIP.

Fair enough.

1 Like

This is true. This CHIP would not remove or mask dust that already exists.

This is also true, or at least close to true. Stopping the dust would not require participation from every node, though. And as you point out, the dust would gradually slow as more nodes chose to participate.

In my previous response, I listed some extreme scenarios regarding the price of XCH and the cost to dust the network. The same answer applies here.

This would certainly be beneficial to wallet users, and will likely be added to Chia’s official wallet at some point. However, the logic to implement this is more complex than what this CHIP would do, which would simply set a default minimum fee threshold for inclusion into the mempool.

Thanks for your opinion. There is no guarantee that this CHIP will be implemented. It’s up to the community to decide whether it’s a worthwhile addition to the full node’s configuration.

I disagree that this is a centralized approach. Every full node is free to include a minimum fee, or not. It’s entirely up to them.

I should point out that the largest OG Chia pool already imposes their own minimum fee – they don’t include any transactions without fees in the blocks they farm. They’re not violating any rules when they do this. This CHIP would simply give this power to all full nodes, if it is indeed something they want to impose on the blocks they farm.

If you have a competing idea, then please submit a competing CHIP.

Yes, I totally agree. This CHIP is intended to be a stopgap measure between now and when the natural fee market eventually overtakes the minimum fee. Thank you for supporting the network and for helping it to grow.

No, this is not true. The more full a block is, the more disk space the resulting databse will consume.

I meant as it relates to regular users using the blockchain. And also assuming this proposal will be the first of several to keep the minimum fee-per-cost effective at preventing dust.
Imposing a minimum fee per cost would require complex wallet-side calculations to determine the true minimum fee (in XCH) for non-vanilla transactions (say a user looking to do a large spend bundle when interacting with NFTs). Older wallet versions may not have this support leading to a confusing user experience.

I would disagree with your assessment that $291 or $1163/day are too costly to spam the network. A motivated enough party (say, a competing or incumbent blockchain) can easily afford to.

I agree implementing this feature is outside the scope of this CHIP, but this CHIP would make implementing that feature more complicated in the future due to the reasons stated previously.

Thanks for confirming. It was @hoffmang that had said this in the past so I had understood full blocks are only slightly larger (on disk) than empty blocks.

But this systematically encourages a default fee of > zero to address dust storms that are an issue for “somebody”. Not me because I like them. They are evidence that at least somebody is paying attention to this valuable project. Even negative attention is good attention at this point imo. Just being honest. I wish I was kidding too.

Anyway, “Contractionary Monetary Policy” traditionally is defined as reduction in rates or spending to address overactive economies. I argue that in the cryptocurrency world, where Layer 1 blockspace is at a premium, contracting the number of transactions like this could be seen as monetary policy too. This fiddling around with minimum fees is one example, but there are other ways to expand or contract the quantity of transactions reaching the Chia blockchain. I hope those will be better presented.

Dan, who sponsored this CHIP and is a Chia employee, a company that has less than one hundred employees, yet controls 21M of the 25M XCH outstanding today. Any CHIP that comes about this way will be seen as a centralized action by the outside world imo and give further fuel to their argument that premines(prefarms) corrupts. I advise to tread very carefully on anything that looks like monetary policy(like this) or risk turning off people would otherwise be our greatest advocates. I wish I wasn’t the only person pointing this out, but so be it, someone has to.

There will be no lasting effect from this proposal to individual users of Chia because there is no issue for them, except to set precedent for how a centralized XCH monetary policy could work in the future.

How is this solving a different problem? The CHIP itself states that the only problem to solve is individual users wallets being filled with dust coins and that full blocks / dust are part of the network’s intended design.

The other drawback you mentioned, that the user doesn’t see “legitimate” low-value transactions, is easily solved by making the filter dust option opt-in and allowing users to disable it for specific addresses.

Filtering dust on the wallet side completely solves the stated problem, is simplest to implement and has the fewest (if any) downsides.

1 Like

Do you have examples of other chains that have set a precedent like this that resulted in more centralized monetary policy in the future?