I’ve been doing a deep dive into the issues around Unspendable UTXOs in Bitcoin.
I’m wondering if there have been any tech advancements to solve this issue. Or is Layer 2 “channels” (like Lightning) the only way to fix (sort of) the issue so far?
I am aware that if fees are only a fraction of a penny, it is much less of an issue, but still.
Interesting topic to discuss. There are a few optional solutions:
Some projects (Solana) use a blockchain rent for outputs below a certain amount, meaning dust UTXO’s can be dropped when accumulated rent equals their value.
Another solution would be to make a special burn and donate to miners type of transaction on layer 1 for change outputs below a certain threshold. The problem is that miners would still not include those transactions since mining another transaction with a higher fee is more profitable to them, they do not care much for the total UTXO size.
Smaller transaction means cheaper, taproot might help a bit. Aggregating signatures interactively could save another 20-30% (something you can only do with Shnorr signatures). It could make it profitable again to collect dust outputs and send them to a taproot address during bear markets with low transaction fees.
Verus has as a solution that a certain percentage of their block space is for free transactions.
As long as there is space in the blockchain, you can make transactions without paying a fee. In such a way it would be easier to clean up unspent UTXO’s during bear markets when blocks that are not 100% full. The downside is, this also allows people to create dust outputs on purpose since there is no cost in fee…
There is a lot of discussion on things like scaling and on and of ramping for layer 2. Solutions such as BitVM(2), virtual UTXO’s (on layer 2), OP_Evict, OP_Check Template verify, SIGHASH_ANYPREVOUT, OP_CAT, OP_LeafSomething, OP_Tree magic.
All of these try to sort aggregate states and scripts possible on layer2 within a single transaction. Most try to use a tree like structures to reason about possible outcomes for scripts or to aggregate outcome states.
Aggregating opening and closing of many channels in a single transaction (OP_Evict or TAPLEAFUPDATEVERIFY), might be most useful specifically for spending dust outputs on lightening while aggregating openings and closings of channels.
However many dust outputs are Unspendable since they belong to old and often forgotten wallets for which there is no solution except blockchain rent. Also, the total value of dust outputs in many wallet is not interesting enough for their owners to collect. Lightening is not really a solution, but it might add some incentive since after opening channels for each dust output, you can at least spend those Sats cheaply, but still opening and closing channels is to expensive unless you can aggregate multiple opens and closes.
I think it is rather unlikely that Bitcoin will implement anything any time soon to really solve this issue. Both free blockchain space as well as blockchain rent are not really compatible with Bitcoins philosophy and come with serious downsides. Also there are many big issues and bugs in Bitcoin that should be prioritized and fixed. So my guess is that like with many other limitations of Bitcoin, we will simply have to accept and live with them for now.
PS Main source for this information is a presentation by Peter Wuille. If you want error free information, just checkout a recent youtube video of one of his presentations.
It seems like the solution many bitcoiners have settled on is E-cash.
Don’t let the people know that dust even exists.
I don’t blame them. Because dust is perhaps the most unintuitive sore thumb in the entire technology. If normies found out about it, crypto would never recover.
imagine if a purchase costs more when you use smaller bills
If ever it would become a problem for Grin, we could put a small negative cost or no cost to spending outputs since that would reduce the size of full nodes. As long as the costs of creating them is much higher than the discount for spending outputs, the fee still protects against a spamm attack.
However, Grins fee system is rather well thought, I would not dare to propose to change it unless it would be a big problem, perhaps in 100 years from now it can be reconsidered😛.
I’m not really concerned about attacks, more so I’m concerned about the usability for normal people. There are thousands of ignorant bitcoiners that are screwing themselves by amassing large amounts of “small bills” that will be unspendable in the coming years.
I fully agree with the issue. My best bet for a solution is in a single lightning channel opening with many outputs and a single closing transaction. The high fees is one of the reasons why I kind of lost my interest in Bitcoin, experimenting or daily payments on layer 1 are just not an option anymore. Lately, with Taproot wizards and new cool crypto on the horizon, I am a bit more positive that Bitcoin can be “fun” again. At the same time I do understand there are more pressing issues in Bitcoin such as preventing integer overflows that when not fix would completely crash all nodes in a few years… I understand they need to fix and clean up Bitcoin core first before adding new functionality. Whenever I hear bitcoin maxi’s talk about how “perfect” Bitcoin is, I can only pity them because they clear do not know enough about Bitcoin or they are extremely obstinate in accepting that Bitcoin actually does have limitations, flaws, bugs and historical baggage.
We can count our-self lucky that Grin is not that popular and politicized yet, meaning there is still time and space to fine tune and redesign Grin without having to much politics or resistance around it. When Grin gets mainstream attention, we might end up in a more similar situation like Bitcoin where it is harder to make changes.
Interesting, I never realized this extra advantage, PayJoins might help Grin users clean up their dust output and prevent chain growth, that is really nifty. Unfortunately a PayJoin in Bitcoin using dust outputs has no advantage whatsoever since anyone can see it is a dust output.
@trab I asked Michael at the last CC meeting. It is high on his priority list but for now he is prioritizing work on docker for automated deployment and testing of multiple MWixnet nodes.
keybase://chat/grincoin#general/64188
Just imagine Grin being at the point of having PIBD for syncing, contract flow transactions, bidirectional payment proofs, safe cancel, a solid GUI wallet with optional daily MWixnet CoinSWap and default PayJoins and different non core wallets like Grin++ and Grim wallet with their own extra’s.
Yes, we are not there yet, but slow and steadily the project is moving in that direction. I 100% believe that it is the right direction and that it will make Grin a rock solid project offering the best crypto magic has to offer right now. I would not be surprised if it will take decades if not a 100 years for something better to be discovered.
It is a great vision! And I agree we can get there.
Slightly off-topic: The only missing piece that you didn’t mention is ways to improve liquidity. If we could get decentralized liquidity pools (like Serai DEX) that would be great. Atomic Swaps would also work. The biggest lesson is just that the traditional order book system like Bisq and Haveno don’t work. There are so many reasons that they don’t work; we just need better.
And that is why a good project involves many people. I have little knowledge and no specific interest in liquidity (-pools). I know that it is important for many in the community, so it would be great if you and others who are enthusiastic about it can explore in that direction. I only know a little about Verus liquidity pools, but perhaps Serai is a better fit? It would involve diving into how exactly these pools work. Intuitively I would guess attomic swap is most fitting for Grin.
Any success there @theGrinReaper?
The deep dive already happened and apparently Grin just can’t work with it. I think because of limitations with the interactivity. However, nobody really replied to the gracious Serai developer. It’s sort of an indictment on the community that I was able to garner his interest and no one here could even bother to reply.