Repost from Jameson Lopp DEC 16, 2023 : “Economically Unspendable Bitcoin UTXOs” The full report and all related findings are available on the official website of Jameson Lopp blog.
UTXO management guidance for avoiding footguns that can cause problems during times of high transaction fees.
Given the recent rise in transaction fees, it seems timely to introduce a somewhat new concept when it comes to UTXO management - the economically unspendable UTXO.
What is a UTXO? An Unspent Transaction Output, or in layman's terms: a deposit that has been made into your wallet. Every time you receive a bitcoin deposit, a new UTXO is created that will later need to be spent.
The Bitcoin network has always grappled with the concept of "dust" which is the creation of UTXOs that have basically no value but are undesirable because they increase the size of the global UTXO set, which is preferable to keep small enough that it can be stored in RAM. I've written about the history of dust previously:
A History of Bitcoin Transaction Dust & Spam StormsA historical analysis of spam attacks conducted on the Bitcoin network.
But I'm not referring to dust when I say "Economically Unspendable UTXO" - this is a level higher on the UTXO value scale. My definition is as follows:
An economically unspendable UTXO is a UTXO that costs more to spend than it is worth.
Of course, this is a tricky definition because the cost to spend a UTXO can fluctuate wildly over time based upon market conditions (demand for block space.)
Why Should You Care?
Since Bitcoin transaction fees are based not upon the value being transacted, but upon the data size of the transaction, it can become very important to ensure that your wallet balance is NOT composed of many low value UTXOs.
A recurring pattern I've seen while working on Bitcoin wallets for many years:
- Someone starts using Bitcoin during a bear market when transaction fees are dirt cheap. They may get into mining, dollar cost averaging, stacking, etc. This activity results in daily or weekly deposits into their wallet.
- They keep stacking regularly through the bear market, then during the bull market they decide to spend some of their funds.
- Upon attempting to spend funds, they are aghast at the recommended transaction fee, and in some cases the inability to even spend their entire balance in one transaction.
As such, the user becomes quite frustrated because the balance their wallet has been displaying to them IS NOT THEIR ACTUAL SPENDABLE BALANCE.
This situation is completely preventable, but it requires people to understand that every time you receive an on-chain deposit, there will be a future cost to spend it.
Introducing the Economically Unspendable UTXO Calculator
To this end, I'm releasing a new tool for calculating the cost of spending a given UTXO. You can find it at https://jlopp.github.io/unspendable-utxo-calculator/
It is technical in nature - you need to know what script type your particular wallet is using - but now you can get a better idea of how to plan ahead for high fee environments so that you don't find yourself with a wallet full of UTXOs that are worth less than it would cost you to spend!
How does it work? It's quite simple; after inputting the UTXO's attributes (script type and number of keys) then you'll see a line chart. Suffiice to say that anything underneath the line is in danger of becoming economically unspendable at the given fee rate. So, if we look at a 3-of-5 P2WSH UTXO, for example, we can see that at a fee rate of 300 satoshis per virtual byte it will cost around 45,000 satoshis to spend a single UTXO. Thus it's pretty poor planning to receive deposits smaller than that amount.
Bitcoin's block space is scarce - your future self will thank you for using it sparingly!
All Comments