I’ve created this topic in order to spin the CDD discussion out from the ‘Lower the default relay fee’ thread and into its own thread so we can get a clearer picture of
who is employing it in their software right now?
what are the benefits?
Those points at the very least are worth documenting as part of the ongoing discussions.
Thanks @freetrader for creating the topic. I’m a little confused about the first bullet point though.
Hmm. Nobody. It has been disabled in BTC since 2016, and in BCH since BCH existed. BCH has never used this mechanism (it did exist, but disabled, in the codebase at one point but was never used, AFAIK). It definitely does not exist now.
EDIT: Oh I see what you mean. Yeah I do think Flowee at least has some code still in their codebase for this (perhaps?). But even so “resurrecting” the old core code (or designing new similar logic) is not a difficult task… the logic is pretty easily implemented.
As for the second bullet-point:
It’s an “easy” alternative to modifying the existing 1 sat/B fee default. We just don’t touch the default (or we may, but that is orthogonal to this).
Just enabling CDD prioritization again is a way for BCH to offer 0-fee or very-low-fee tx capability to wallets wishing to take advantage of it. If we enabled CDD as a way to add “fee-like” priority to txs, then we could say “BCH has free txs!” as a marketing / public perception thing.
This should also mitigate the worry that if BCH does really moon to $20k or $50k per coin at some point – everybody could still transact (provided they were using aged coins to do so). Nobody would be priced out.
This, unlike simply lowering the fee – comes with “built-in” flood protection. Whatever the price may do (including crash!), we can forever offer extremely low-cost and/or free txs on BCH without the transaction-flood-worry being an issue (since it’s impossible to flood coindays coins without significant “locking” of funds for a significant amount of time).
In summary: Unlike lowering fee**, which carries the flood risk in the event of catastrophic price crash – CDD guarantees flooding is forever not an issue while at the same time making free (or very low fee) txns possible immediately (once rolled-out).
** - Note that one can do CDD and also lower fee at the same time. It’s not either/or. They are just 2 alternatives that can be done together or separately.
The main benefit is that flooding mempools is no longer just a question of dollars per day. Flooding becomes something that takes expertise, patience and locking up real amounts of funds for considrerable amount of time.
The same point much more obviously stated: when there is some sort of mempool flooding attempt they will have no effect on actual economic users. Normal payments from normal people will for the VAST majority of cases end up being coins that are relatively old. They stand out as “good” transactions.
Another benefit I can think of is that it can be used to give increased relaying priority to “older coins” which would hamper potential spam/DoS attacks even further.
Also thanks @tom and @cculianu for reminding me all the most important reasons why Coin Days Destroyed were an awesome feature. I knew they were awesome, but after 5+ years I have already forgotten why.
It seems super strange to me that this hasn’t been re-implemented yet because I have a feeling Roger V. and other community members would surely cough up some money to see it through. Roger has been complaining for YEARS about this. Seems like a no-brainer (but then again, having no brain myself, it would seem that way to me lol)
Note that Nano (which has always branded itself as “the feeless coin”) tried this last year at the depth of their implosion. It felt like it worked… until they collapsed again later. (To my knowledge, “unchecked table” is one step before the mempool if we are to compare to our setup).
I’m not saying we’re anywhere close to Nano in terms of competence and track record, and I’m sure Nano devs will put more band-aids that alleviate their problem for some time, but do we really need to wade into all that complexity for… marketing “gains”? Considering the high profile implosion of several nofee-or-insanely-close-to-nofee coins (Nano, EOS, Solana), is no fee transaction even actually positive marketing?
Decisions about consensus and standardness belong in the CHIP process. For anyone who thinks this is an important idea, please understand that this is a change to the economics of BCH and requires deep, serious consideration of all aspects and consultation with a very wide set of stakeholders, especially pools and miners.
My personal take: I’ve never heard a fully thought-through description of how this is beneficial for BCH. On the other hand, I see significant room to cause problems:
Increase DOS risk
It requires deep and careful consultation with miners that I personally think will go something like this:
Hey miners, BCH fees, the things that will make BCH network viable in the long term, are roughly free right now, and the mining value is <1% of BTC, but… what do you think about spending a bunch of time talking with us about reducing the fees, BCH developers spending a bunch of very limited resources to implement said reduction of fees, and then you spending more time to setup new, possibly variable, policies around the free transactions?
… Don’t want to think about it. We’ve just lost further confidence in BCH because you are asking this.
Let’s say it uses the 5% of blockspace reserved for free tx. That free tx block space becomes contested eventually, probably quickly. Unreliable. What business use case would use transactions that are unreliable over transactions that are very close to free but reliable? If it’s a tiny number of users who benefit from it… why do we care? We can’t use that for marketing. If it’s a huge number of users that benefit from it… that necessarily means we are taking the axe to BCH’s long term lifeblood from a mining perspective.
But for someone who believes this is a great idea, they obviously might see something I don’t. It’s on that party to create a CHIP and move it forward.
I will answer this question because I was using free BTC TXes back in the day (2013-2014) and I even made a software fork of Bitcoin called NFTF in order to continue paying less fees.
Why was I sending the free TX? I was using the free transactions in order to send money when I was not in a hurry so I could wait few days.
It was absolutely expected to wait. I was expecting to wait at least several hours or 2-3 days for the transaction to confirm.
Sure, this feature can be additionally used for marketing, but it has to be emphasised that such low-fee TX are “low priority” and will take very long time to confirm, but since BCH network is near-100% reliable there is no problem.
Zero-confirmation transactions actually do work on BCH and this feature has already been present in Bitcoin in the old days and it worked nicely, so re-activating this feature should be a no-brainer.
It should also be taken into consideration that removal of this feature was mainly the work of Blockstream, Adam Back, Gregory Maxwell, Peter Todd and other enemies of Bitcoin, so I am positivie we should assume that the campaign to remove it was part of their agenda to make Bitcoin unusable as reliable, everyday money.
The argument is that for those free slots it would cease to be if more and more started to use the slot - the waiting times would go up and up. Even if it may be convenient for some users at the start, the risk is that of the feature being short-lived when entities could create a batch of dust UTXOs in anticipation, even now, and later use them to freely spam the blockchain while also reclaiming the dust BCH. This would turn the feature from “probably has to wait few days” to “no idea when this could get confirmed and nothing I can do about it because we don’t have RBF”.
They do, because of the 100% reliability mentioned above: they will ALL get mined. This would kinda break the promise and allow social attacks like “I sent this 0-fee TX and it’s been waiting for a week, BCH sucks!”
It’s funny they still have RBF though, which would allow users to change their mind about waiting in the line so I’d say it’s more of a side-effect of other design choices. With artificially scarce blocksize, the waiting time would quickly become “forever” and everyone would pay some to get out of that line, so the feature would end up never being used but carrying the technical debt of maintaining it.
The best use case for 2-5% free transactions in a block is actually consolidation. For example, let’s say that due to receiving a lot of small tips to an address, you found yourself in a corner with a lot of accumulated dust.
Without the free TX it would be uneconomical to consolidate such dust, because the fees to get it confirmed would exceed the value of the dust.
Using free TX tier you can just wait for the dust to get older and increase priority and try to consolidate it later.
It would be also great for managing UXTO set size in the future, since consolidating dust saves huge amounts of space.
This is something that could also be offered out-of-band by mining pools without introducing any complexity to protocol rules. Same like ViaBTC has both a TX accelerator and a TX broadcaster - they could allow people to post their 0-fee consolidation TX-es and have them eventually mined.
This would turn the feature from “probably has to wait few days” to “no idea when this could get confirmed and nothing I can do about it because we don’t have RBF”.
@bitcoincashautist explained well above why IMO it should not be added back. In the long term, any such space will be filled up and free transactions will enter into a nearly double-blind auction similar to capped block fee auction, except based on coin age or whatever criteria are used. Predictable delay will become unpredictable delay AND in the long term it will reduce the overall ability to scale as it eats up a big chunk of block space. Alternatively, the free space increases with demand, further diminishing attractiveness to miners and reliability of the primary transaction space.
Thinking more about the long term steady state, if miners reach a state that orphan or other risks naturally put a soft cap on even unlimited block sizes, a fee market would emerge. That would drive ever-increasing demand for the free transaction space, making it behave even worse, and disincentivizing miners.
Regarding consolidation, in the long term everybody would benefit from that, so it’s easy to imagine that consolidation itself will be incentivized rather than generic free block space.
In any case, whoever thinks it is a good idea has a big task task ahead of creating a CHIP that convinces many people that it’s not only a good idea, but a great one with economic benefits heavily outweighing drawbacks. Not only in the current state, but considering long term impact on scalability and economics.
After some consideration, your arguments are valid.
This seems reasonable.
This feature is not actually needed for anything at this time and re-introducing it could potentially cause balance problems, so adding it back would indeed be headache.
Agreed.
Since nobody actually needs it at this time and there are much more exciting things to work on, I doubt anybody would want to do it.
There doesn’t really exist any current or near-future problem to solve that could be solved by this feature. BCH will work fine without it.
Without reading my own writing from back then, I just want to quickly comment that the idea was never to make transactions not cost any money.
The point has always been to remove the hardcoded price and open the price to market forces. They may go up, they may go down.
So the point is not to ask the miners on how to, essentially, let them earn less. The point is to give them more control over the health of the coin in relation to the miners income.
Hi everyone, I’m coming back a bit from a break from crypto and social media. I’d like to apologize to the group for tossing in these discussion items like a grenade and then bolting off.
I think everyone here has made good arguments so I see no need to raise the topic again. Thanks everyone for all your great discussion and work.