To Dust You Shall Return

Consider a doomsday scenario. You spend the past couple years diligently dollar cost averaging and withdrawing to your wallet. You have a ton of small UTXO1‘s and bitcoin transaction fees rise so much that your bitcoin turns into dust2. You’re now unable to spend your bitcoin. For some bitcoin users, this is not a doomsday scenario, this is a reality that they experienced over the past 6 months.

During 2023 we saw very big fluctuations in bitcoin transaction fees as Ordinals3 brought a flood of new bitcoin users and with that significant increase in blockspace demand. Despite the positive press from the Bitcoin Spot ETF approval, users have faced serious challenges from high transaction fees, especially for users who have small UTXO’s. In some cases, UTXO’s were unspendable, also known as turned into dust. This transaction fee pain led many people to ask the question, how can I know if my UTXO’s are at risk? For this article, we will explore the point at which dust is created and try to help lay out a minimum plan to mitigate this risk.

Bitcoin Median Transaction Fees In sat/vB Past 6 Months

Source: Dune as of January 12, 2024

Over the past 6 months we have seen wild swings in median bitcoin transaction fees. We saw mempools clear with 0 sat/vB and soar higher than 350 sat/vB. While that might not mean much to you at face value, it can mean big challenges for users who are sending multiple small value SegWit UTXO’s in single transactions. In fact, some users saw their UTXO’s turn into dust. This obviously caused panic, and for some this caused an expensive lesson in UTXO management. This is not an article that explains UTXO management strategy, this article attempts to tell you that you absolutely want big UTXO’s. If bitcoin does what we think it is going to do, then multiple UTXO transactions as small as 0.001 BTC could be unspendable under high fee environments, and you can kiss your dust goodbye.

Before we jump into the data, we need to define what we want to look at. For us we are trying to understand if a UTXO is spendable or it is dust (non spendable). For this we will need the following:

  • Sum of UTXO’s being sent
  • Total Weight Units4
  • Transaction fee sats/vB

With this information we can make a formula that shows how much value is transferred in a bitcoin transaction after you remove the transaction fees.

Transferred Value = BTC Sent – ( ( ( Total Weight Units / 4 ) * Transaction Fee in sats/vB ) * 0.00000001 )

If the transferred value is a negative number, this means you have dust, the UTXO sum costs more to send than it is worth. Because calculating bitcoin transaction weight units is a bit complex, we will use a realistic scenario for use in building our table, assumptions, and recommendations.

For this example we are using5 basic SegWit (P2WPKH) financial transactions with the following weight units:

  • Single-input, single output, single signature, single pubkey, SegWit transaction (P2WPKH script)total weight units would be approximately 440 weight units.
  • 5 inputs, single output, single signature, single pubkey SegWit transaction (P2WPKH script) total weight units would be approximately 1,528 weight units.

Using our formula above and the SegWit transaction with (5) inputs weighing 1,528 weight units, we built the following dust table.

Dust Table

Dust Table calculated at 1,528 weight units per the5 SegWit inputs example above.

The Dust Table reveals some telling information. Dust is real, and the threshold is lower than I imagined. As transaction fees continue to rise, larger valued UTXO’s become more at risk. During the peak transaction fee times over the past month, our example transaction would be dust even for .001 BTC. That’s a little less than $50 at current market conditions. This feels incredible. 100,000 sats suddenly turned into dust. Gone. Unusable. This is terrifying.

While this example scenario does not affect all users, the lesson is very clear, make big UTXO’s! For long term storage you must not keep UTXO’s smaller than 0.01 BTC. We saw 300+ sat/vB fees last year and that will increasingly become the norm. In that fee market, multi UTXO transactions smaller than .001 are dust. Don’t be that guy.

Dust may be an afterthought for you today, we are blessed with returns to sub 50 sat/vB fees, but dust could become a costly problem for you in the future if not managed today. By understanding the relationship between UTXO weight units and transaction fees, we gain valuable insights into the lower bound sizes for UTXOs.

Dust Extremes

Modeling out the dust threshold for UTXOs is an interesting experiment because it shows you how crazy things have to get and at what point BTC becomes dust. For the table below, we are using the same data as outlined above, that is a 5 input SegWit transaction with 1,528 weight units.

This table illustrates the fee rate at which a BTC amount being sent in a 1,528 weight unit transaction will turn into dust.

Signing A UTXO

Another key finding in all this research is the cost of signing a single standard (P2PKH) UTXO. This is an extreme on the small side because it is one of the smallest transactions you can make. For this example we want to use the standard script (non-segwit) because it is the heaviest of the script types. Here are the specifics:

  • Standard (P2PKH) Script Type
  • 1 input
  • 1 Pubkey
  • 0 Outputs
  • 632 weight units

Signing Economics

Economics of signing a single standard UTXO with one signature, one pubkey, and 0 outputs weighing 632 weight units.

With this information you can understand the minimum cost of making Bitcoin transactions.

Key Takeaways

  1. Dust threshold is lower than you think, especially in high transaction fee markets
  2. When withdrawing BTC from exchanges consider waiting until your balance is ≥ 0.01 before sending to your storage.
  3. If you have many small(< 0.001 BTC) UTXO, you must consolidate them into larger UTXOs while fees are low.

You don’t have a crystal ball, and there are only so many things in your control. BTC price, blockspace demand, hashprice, hashrate, and bitcoin in general are out of your control. You have control over your keys, and the best thing you can do is be prepared for the inevitable high fee market. It will happen or Bitcoin will fail, I don’t make the rules. Do not let your precious bitcoin turn into dust. Remember this, if you do nothing then to dust you shall return.

By the sweat of your face you shall eat bread, till you return to the ground, for out of it you were taken; for you are dust and to dust you shall return.

-Genesis 3:19

FOOTNOTES

  1. UTXO (Unspent Transaction Output): [n.]
    A component of a Bitcoin transaction that represents an amount of digital currency not yet spent and available for future transactions.
    The output of a blockchain transaction that can be used as an input in a new transaction, signifying the amount of cryptocurrency remaining after the transaction is executed. ↩︎
  2. In the Bitcoin protocol, dust refers to small amounts of currency that are lower than the fee required to spend them in a transaction. Although “economically irrational”, dust is commonly used for achieving unconventional side effects, rather than exchanging value. ↩︎
  3. Ordinals Inscriptions as a phenomenon are now a little over a year old and have caused big waves in Bitcoin. They are melting some peoples brains but will eventually be priced out. ↩︎
  4. Weight Units (n.) [Bitcoin]
    A unit of measurement used in the Bitcoin network, specifically introduced with the Segregated Witness (SegWit) protocol, to calculate the size of transactions and blocks.
    A composite measure that considers both the non-witness data (like transaction inputs and outputs) and the witness data (such as signatures) of a transaction. In this system, non-witness data is weighted more heavily than witness data.
    The standard by which the block size limit is enforced in the SegWit protocol, with a maximum cap of 4,000,000 weight units per block, allowing for an efficient and flexible allocation of block space. ↩︎
  5. Using Lopp’s open source transaction calculator. LINK ↩︎

Source link