What is Bitcoin Dust & How Can We Fix It?
How is dust created?
Bitcoin is represented as Unspent Transaction Outputs (or UTXO’s). You can think of UTXO’s as the unit of Bitcoin that is transferred inside of transactions. The lifecycle of a UTXO begins in a “coinbase transaction” when miners earn bitcoin for correctly finding the Bitcoin’s next blockhash. When a mining pool earns the bitcoin from a coinbase transaction, the reward is split up to pay miners that were contributing to the pool’s hashrate. Because the value being sent to each node is small, some pools may set a minimum balance before it transfers.
UTXOs split into smaller values:
Whenever Bitcoin is sent from the pool, a single UTXO has to be split, to create change. Each full node in the network has to keep track and store the total UTXO set. Because this contributes to the growing size of the blockchain, we want to limit the number of UTXO’s in the set.
What is dust?
Each UTXO has its own transaction chain of history going back all the way back to when it was first mined into existence as a coinbase transaction. As UTXO’s get divided into smaller and smaller values of bitcoin, more UTXO’s are added to the set and the value of bitcoin within them gets smaller and smaller. When a user wants to spend a UTXO containing a small value of bitcoin it at some point no longer makes economic sense to do so. The value of bitcoin in the UTXO is so small, it isn’t enough to pay for the transaction fee required for bitcoin full nodes to relay it or for miners to include the transaction in a block. This is precisely when these UTXO’s are referred to as dust. Dust is essentially low value UTXO’s that have collected over time and have been outpriced or uneconomical to spend.
Why does dust put a strain on the network?
The mempool is the default 300 megabyte database of unconfirmed or pending transactions which is stored and unique to every node. But it is also a competitive marketplace for confirmation, when there is a backlog of unconfirmed transactions fees are relatively high, and when there is no backlog transactions fees are much lower. When fees are low, it may become economical for those who have dust UTXO’s to consolidate their sent into one large UTXO, which would also be good for the network as a whole.
If every Bitcoiner used on-chain Bitcoin transactions to buy $3 coffees, the UTXO set would dramatically increase in size. This also has adverse effects and negative network externalities such as increasing the RAM and disk space hardware requirements required for “pruned nodes” (fully validating nodes that don’t store the entire blockchain). Enter the Lightning network!
Dust on the Lightning Network?
Bitcoin used in payment channels allows for much more frequent and smaller transaction values in theory because of the need to only create new UTXO’s when a channel is opened or closed (transaction mined on-chain). OG Bitcoin artist CryptoGrafitti, put this theory to the test with a “lowest bid auction” in 2018, whoever paid the lowest would receive his Black Swan piece. There is no such thing as dust on the Lightning Network now, however, it’s commonly believed that routing fees on the Lightning Network will increase over time, so payment amounts will also once again need to increase to remain economical to be routed. Otherwise, a direct payment channel relationship with a peer is required.
What Is a Dust Attack?
Now that we’ve explained dust, lightning transactions, and UTXO’s, you can see where reality collides with theory when we approach this from an adversarial perspective. In 2017, it was widely believed certain mining pools were doing a DoS (Denial of service) attacks on Bitcoin by flooding the mempool with transactions to bid up fees and make less value UTXO’s uneconomical to consume. When this attack happens, a miner is able to include their dust UTXO’s in blocks because they can mine their own transactions without needing to communicate with nodes that wouldn’t relay them.
Chain surveillance companies will also do “dust attacks”, effectively tracing someone’s UTXO lifecycle by sending them small UTXO’s they accidentally consolidate with their other funds.
Last year, Antoine Riard disclosed a Lightning network vulnerability related to dust. Because the “dust limit” is enforced by a transaction relay policy between Bitcoin nodes, a Lightning commitment transaction (or channel update) with one of its UTXO’s below the dust limit may fail to relay in the event of a unilateral transaction. The CVE’s could have been exploited via fee blackmailing of node operators, liquidity burning of competing LSP’s, or attacking direct channel peers if the lightning node operator was also a miner.
The Future of Micropayments on Lightning
Many believe the Lightning Network to be the holy grail for “micropayments”, but it’s still unclear whether that is true due to the long term economical feasibility. This is because of the 546 satoshis dust limit default relay policy on-chain enforced by Bitcoin node operators as well as the 483 max HTLCs in flight, base fee, and ppm fee routing policies off-chain enforced by Lightning node operators. Time will tell whether the capital allocation requirements of opening and closing a channel will surpass the average Lightning Network user’s Bitcoin hot wallet threshold. All eyes are on the mempool–may the best transaction snipers win. This topic will serve as a foundation for our future Replace-by-fee, Child-pays-for-parent, zero confirmation, and package relay related deep dives.
1 sat/vbyte or bust,