# Unspent transaction output

In cryptocurrencies, an unspent transaction output (UTXO, often capitalized as UTxO) is a distinctive element in a subset of digital currency models. A UTXO represents a certain amount of cryptocurrency that has been authorized by a sender and is available to be spent by a recipient. The utilization of UTXOs in transaction processes is a key feature of many cryptocurrencies, but it primarily characterizes those implementing the UTXO model.
UTXOs employ public key cryptography to ascertain and transfer ownership. More specifically, the recipient's public key is formatted into the UTXO, thereby limiting the capability to spend the UTXO to the account that can demonstrate ownership of the corresponding private key. A valid digital signature associated with the public key must be included for the UTXO to be spent.
UTXOs constitute a chain of ownership depicted as a series of digital signatures dating back to the coin's inception, regardless of whether the coin was minted via mining, staking, or another procedure determined by the cryptocurrency protocol.
Prominent examples of cryptocurrencies adopting the UTXO model include Bitcoin and Cardano. Cardano utilizes an extended version of the UTXO model known as EUTXO.

## Origins

The conceptual framework of the UTXO model can be traced back to Hal Finney's Reusable Proofs of Work proposal, which itself was based on Adam Back's 1997 Hashcash proposal. Bitcoin, released in 2009, was the first widespread implementation of the UTXO model in practice.

## Comparison: UTXO Model vs. Account Model

Cryptocurrencies that utilize the UTXO model function differently compared to those using the account model. In the UTXO model, individual units of cryptocurrency, termed as unspent transaction outputs (UTXOs), are transferred between users, analogous to the exchange of physical cash. This model impacts how transactions and ownership are recorded and verified within the blockchain network.
In the UTXO model, each unit of currency is treated as a discrete object. The history of a UTXO is documented only within the blocks where it is transferred. To ascertain the total balance of an account, one must scan each block to find the latest UTXOs linked to that account. While all nodes within a blockchain network must consent on the block history, the blocks relevant to an account's balance are unique to that account.
On the contrary, the account model preserves a record of each account and its corresponding balance for every block added to the network. This setup enables quicker balance verification without the need to scan historical blocks, but it increases the raw size of each block (though data compression techniques can be utilized to alleviate this). Regardless of these disparities, both models necessitate the inspection of past blocks to fully authenticate the origin of coins.
In the UTXO model, each object is immutable - units of coins cannot be 'edited' in the same way an account balance is modified when a transaction occurs. Rather, the balance is computed from the transaction history dating back to when the coins were first minted. This simplicity enhances security as a UTXO either exists in its anticipated form or it does not. In contrast, the account model requires meticulous verification of the account's status during transactions, which can lead to oversights if not conducted correctly.
The UTXO model's inherent characteristics also make it well-suited for off-chain protocols, such as sidechains and the Lightning Network. Conversely, the account model simplifies the task of storing the 'state' of transactions, but this ease doesn't necessarily imply superiority. The Extended UTXO (EUTXO) model, for example, introduces more explicit and cleaner state transitions, reducing the potential for unexpected outcomes. Although the EUTXO model may be more complex to handle, it offers enhanced security and straightforwardness.

## UTXO set

The collective of UTXOs present in a blockchain constitutes a set. Each transaction in the network removes some elements from this set (those being spent) and adds new ones (those being created). This UTXO set effectively represents all the coins within a specific cryptocurrency system at a given time.
In a broader sense, outputs are a superset of UTXOs, making UTXOs a subset of the outputs. This relationship and the dynamics of UTXOs, such as their lifespan within Bitcoin's system, have been subjects of research.
In valid blockchain transactions, only unspent outputs (UTXOs) are permissible for funding subsequent transactions. This requirement is critical to prevent double-spending and fraud. Accordingly, inputs in a transaction are removed from the UTXO set, while outputs create new UTXOs that are added to the set. The holders of private keys, such as those with cryptocurrency wallets, can utilize these UTXOs for future transactions.

## The Extended UTXO (EUTXO) Model

The Extended UTXO (EUTXO) model is an advanced iteration of the traditional Unspent Transaction Output (UTXO) model. It expands on the fundamental UTXO model, incorporating enhanced features to increase flexibility and utility while maintaining the model's inherent advantages in security, predictability, and parallelizability.
In the EUTXO model, UTXOs can be linked to arbitrary pieces of data and logic in the form of smart contracts. This allows UTXOs to carry state in a way that remains compatible with the parallel processing of transactions and the predictable resource consumption inherent to the UTXO model. It results in more expressive and complex contracts compared to those feasible under the basic UTXO model, bridging the gap between the UTXO and account models in terms of contract functionality.
Each UTXO in the EUTXO model is associated with a data value that can change as the UTXO is consumed and new ones are created, allowing contracts to maintain state across transactions. This enriched data structure offers the EUTXO model an extended ability to facilitate smart contract development while still maintaining the immutability and auditability of the standard UTXO model.
The EUTXO model is used in cryptocurrencies like the Cardano blockchain to facilitate more complex financial transactions and automated scripts. It serves as the basis for Plutus, Cardano's smart contract development platform, and allows it to handle complex, stateful contracts while maintaining a high level of security and predictability.
Despite its added complexity, the EUTXO model maintains the critical advantages of the UTXO model. It preserves predictable resource consumption, a valuable property for contract execution, and it supports high degrees of parallelism for transaction processing, a crucial feature for blockchain scalability.