UTXO stands for the unspent output from bitcoin transactions. Each bitcoin transaction begins with coins used to balance the ledger. UTXOs are processed continuously and are responsible for beginning and ending each transaction. Confirmation of transaction results in the removal of spent coins from the UTXO database. But a record of the spent coins still exists on the ledger. 


Bitcoin Transactions Are Like Cashier's Checks

Bitcoin transactions are similar to cashier checks. You cannot exchange them for custom amounts and must spend the entire amount stored in that data byte. But bitcoin is also unique in that transactions can be conducted using fractions of the cryptocurrency. Spending in bitcoin does not take place using a single data byte. Instead, multiple fractions of bitcoin are retrieved by the algorithm to fulfill a spending request. For example, a purchase worth 1 BTC may retrieve 0.6 BTC from one byte and 0.4 BTC from another. Change from each of these fractions is sent to the UTXO database. 

A UTXO database stores change from bitcoin transactions. Initially, it is set to empty. As transactions multiply, however, the database is populated with change records from various transactions.    

The profusion of small coins within bitcoin’s network makes certain transactions uneconomic. This is because it may cost more to transact than the actual cost of the product being purchased with bitcoin. For example, it doesn't make sense to purchase a $2 cup of coffee if the transaction fee on bitcoin’s network is greater than the price of the coffee. According to research by Jimmy Song, a prominent bitcoin developer, 13 million coins have marginal costs greater than their worth at 50 Satoshi/bit. There is another problem with increasing UTXO. The change in equipment cost required to processing UTXOs has not kept pace with its increase. 

As an example, the cost of mining rigs for fully validating nodes has not kept pace. “Allowing more transactions with no other changes would very likely accelerate the UTXO set growth making it more expensive to run a full validating node," says Gavin Andreesen.