What is an Unspent Transaction Output (UTXO)?
Cryptocurrency transactions are the transfer of information in a blockchain database comprising inputs and outputs. The user provides their cryptographic wallet key to confirm their ownership of the coins or tokens to be used in a transaction and sends one or more UTXOs for the inputs.
The UTXOs used are considered spent and cannot be reused. The unspent outputs from the transaction become new UTXOs that can be spent in a future transaction.
UTXOs are written into the blockchain script, or programming language, and processed continuously, forming part of the beginning and end of each crypto transaction.
The UTXO model is a core element in the functioning of Bitcoin (BTC) and some other cryptocurrencies. As UTXOs can only be used once, they help to prevent multiple transactions spending the same funds, which is known as double-spending.
A wallet balance of 0.2 BTC is not a fraction of a coin but a collection of UTXOs from previous transactions. Multiple UTXOs can be retrieved in a single transaction to pay for a purchase or transfer funds if they are signed with the wallet key.
The Bitcoin UTXO model uses a “first in, first out” (FIFO) approach so that the UTXOs received first are spent first in a transaction. When a user initiates a Bitcoin transaction, the blockchain script combines the UTXOs to cover the transaction amount, including fees. Any excess value from these UTXOs is returned as a new UTXO.
Some advanced wallet software now allows a user transferring funds to manually select which UTXOs to spend, creating more flexibility in determining the order in which UTXOs are spent.
UTXOs are indivisible, so they cannot be partially spent. It works like a change in a cash transaction. If you make a purchase for $15 and pay with a $20 bill, you receive $5 in change that you can spend in a future transaction.
To make a purchase for 0.2 BTC with a 0.3 BTC UTXO, you would break up the 0.3 BTC as a transaction input to send 0.2 BTC to the seller – which becomes a spent output. The remaining 0.1 BTC would be returned to your wallet as a change in the form of a new UTXO.
When you initiate a crypto transaction, UTXOs are unlocked and transferred from your wallet to the recipient. They are locked in the new owner’s wallet until they are used in another transaction. The database becomes populated with the records of the changes in ownership.
Transaction Security and Anonymity
Anyone can track the ownership of a cryptocurrency from its creation through various transactions, as UTXOs are associated with the public wallet addresses on the blockchain. This creates transparency while allowing owners to maintain their privacy unless they reveal their wallet addresses.
As each transaction uses unique UTXOs for each transaction, creating new UTXOs for unspent funds, it is challenging to identify the parties involved in the flow of funds. This enhances user privacy and makes it difficult for malicious attackers to exploit vulnerabilities.
The process is managed automatically by the blockchain protocol and does not require trust in the recipient to return the change. Each transaction has an associated script that validates the owner and ensures that the funds can only be spent by the recipient.
The UTXO model is important for tracking crypto supply on a blockchain network and verifying transactions. Every UTXO transaction requires the owner to provide verification, which helps prevent scams or fraud.
UTXO Model vs. Account Balance Model
The UTXO approach, which Bitcoin uses, contrasts with the account balance model, which Ethereum uses. While a Bitcoin user’s wallet balance tracks all the UTXOs and combines them in transactions, the account balance model ensures that the account balance is equal to or larger than the transaction amount.
Each user’s crypto balance is stored in an account. When they initiate a transaction, the sender’s account balance decreases, and the recipient’s balance increases.
The UTXO model is typically considered to be more flexible and secure and uses less storage than the account balance model, which needs to store large blocks of data. Using UTXOs provides more control over the way crypto funds are used and under what conditions they can be spent.
UTXOs have expanded beyond the original transaction processing concept on the Bitcoin blockchain. Smart contract platforms, including Ethereum, have developed UTXO-like models to enable complex programmable functionalities using “account states” that function like UTXOs, allowing for the execution of decentralized applications (DApps) and smart contracts.
The Role of UTXOs in Bitcoin NFTs
As the Bitcoin blockchain was initially created for financial transactions rather than data storage, it was previously not possible to create a fully on-chain non-fungible token (NFT) on Bitcoin in the same way as smart contract-enabled blockchains such as Ethereum can.
However, the Bitcoin Ordinals Protocol launched in January 2023, which assigns a numerical order to each satoshi (sat), the smallest unit of BTC. Sats are connected to specific UTXOs and transfer in a FIFO order based on Ordinal Theory.
A UTXO can contain one or more sats. As sats can be assigned inscriptions such as images, text, or video, they can be used to attach content to the blockchain, similar to an NFT.
Limitations of the UTXO Model
While the UTXO model offers advantages in terms of security, privacy, and mitigating double-spending, it also has limitations:
- As UTXOs are indivisible, the lack of granularity can be uneconomic in small transactions in which users want to spend only a fraction of their funds, as the transaction fees may be higher than the value of the transaction.
- UTXOs can result in more complex transactions, as users may need to create multiple transactions to collect the necessary funds to transfer. This can affect the blockchain network’s efficiency and scalability, causing network congestion and slower processing times. Increasing the transaction throughput requires optimizations to handle a larger number of UTXOs efficiently. Developing wallets and applications on UTXO-based blockchains can also be more complex than on account balance-based chains.
- The UTXO database can grow large over time, increasing the storage requirements for network nodes. This can potentially affect decentralization by making it more resource-intensive for participants to maintain a copy of the entire blockchain.
- While UTXO-based models have been adapted for smart contract platforms, they may still be less suited to complex programmable functionalities than account balance models and require workarounds. The scripting language used in Bitcoin’s UTXO model is intentionally limited for security reasons, but this restricts the smart contracts that can be implemented on the Bitcoin blockchain.
- While UTXOs contribute to privacy by making it harder to trace senders and recipients, certain spending patterns can still compromise user privacy. For example, a user combining multiple UTXOs into a single transaction could potentially reveal the linkage of those UTXOs and their ownership.
The UTXO model is a blockchain protocol’s mechanism for tracking cryptocurrency coins and limiting double-spending. A UTXO is an unspent amount of cryptocurrency remaining after a transaction that can be used in a new transaction. When a crypto transfer is initiated, UTXOs are unlocked and transferred from the sender to the recipient.
On the Bitcoin blockchain, which does not support executable smart contracts that can create NFTs, UTXOs enable a form of NFTs known as Bitcoin Ordinals.