In the early days of Bitcoin, a sender had to manually set the details of each transaction. This meant they had to understand how transactions worked more than is necessary today.
If you were transacting back then, you would have understood that any transaction you received (any input), but not spent, was known as an ‘unspent transaction output’ (UTXO). In other words, you would have known that all the bitcoins you own on the blockchain are UTXOs.
For the casual user today, however, understanding the details of UTXOs has become less important. UX (user experience) designs for wallet applications have evolved to a level where wallets can handle most behind-the-scenes technical processes.
But how UTXOs are structured can affect the size of the fees you pay, so it is still important to understand the concept, especially when average fees are high. Regardless of fee size, UTXOs are a core component of how Bitcoin works as a payment method.
How UTXOs work
When you spend money from a physical fiat wallet, you can retrieve the exact amount you want and leave the rest untouched. However, when you spend from your Bitcoin wallet, every coin in it has to be retrieved, the amount needed is deducted, and then the remaining balance is returned back to the wallet.
The process of spending bitcoins from a wallet application is similar to paying for an item with a large dollar bill. The merchant receives the bill, deducts what you owe them and returns the change back to you.
A Bitcoin wallet is not the same as a physical wallet, however. It doesn’t receive or hold any money. Instead, it stores the digital signatures that allow you to sign transactions.
Bitcoin ownership is assigned and maintained through the shared public ledger—the blockchain. When you make a transaction, you merely use the digital signatures in your wallet to authorise a transfer of ownership of coins assigned to you.
What you hold on the blockchain is the right to move access to particular bitcoins to other public addresses of your choice. A Bitcoin wallet is the platform through which you exercise your rights over those units on the shared public ledger. Sending bitcoins basically means giving up your rights over units on the ledger by signing them off to another user.
When you receive bitcoins, the sender transfers ownership of their coins to the public address you provide them. They use the private keys (digital signatures) in their wallets, which must correspond to their public address, to sign the transaction.
From your point of view as a receiver, each transaction is an ‘input’.
Likewise, when you decide to send bitcoins, you authorise that the coins’ ownership moves to the public address of the receiver. From your point of view as a sender, this transaction is an ‘output’.
It is impossible to spend a fraction of a UTXO. Every output must be spent as a whole from a single address on the blockchain, with change returned to another address in the sender’s wallet. A wallet automatically generates a ‘change address’ to which the balance from the transaction will be returned after the required amount is deducted from the output. The change becomes a new UTXO that can be spent later.
Several UTXOs can be combined to create a single output. A portion of the excess goes to miners as transaction fees and the rest goes back to the change address.
If you receive a lot of small transactions (inputs) into your wallet, you will have to combine them to create one large output. This may demand a high transaction fee from you as the sender.
When users realize they are required to pay a high fee, and they don’t understand it is due to the high number of UTXOs their wallet has to combine, they may blame the wallet. It is important to know that receiving a lot of micropayments may cost you a higher transaction fee than average to spend them even when fees are low in general.
UTXO patterns make it possible to track a single bitcoin unit all the way back to the time it was first mined. And this is what makes Bitcoin pseudo anonymous rather than anonymous.
Users are able to mask their identity on the blockchain, as they are not required to link personal information to public addresses where they receive inputs, hold UTXOs and send outputs. However, other ways to trace identities back to specific addresses remain.