Unspent transaction output
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
In cryptocurrencies, an unspent transaction output (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.[1]
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.[2]
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.[2]
Prominent examples of cryptocurrencies adopting the UTXO model include Bitcoin and Cardano. Cardano utilizes an extended version of the UTXO model known as EUTXO.[3]
UTXO model vs. account model
In contrast to the account model, cryptocurrencies utilizing the UTXO model do not employ accounts or balances. Rather, the individual coins (UTXOs) are transferred between users, similar to physical cash transactions.[4] This approach has implications on how transactions and ownership are tracked and verified within the blockchain network.
The UTXO model perceives currency as distinct objects. The history of a UTXO is recorded only in the blocks when it is transferred. To calculate the total balance of an account, one must scan each block to locate the latest UTXOs associated with that account. While all nodes on a blockchain must agree on the block history, the relevant blocks for a particular account's balance will be unique to that account.
Conversely, the account model maintains a record of each account and its respective balance for every block added to the network. This arrangement allows for quicker balance checks without needing to scan historical blocks, but it increases the overall size of each block (although compression techniques can mitigate this). Despite these differences, both models require a review of previous blocks for fully verifying the origin of coins.
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.[5]
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.[6]
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.[1]
For this reason, inputs on a blockchain are removed from the UTXO set when a transaction occurs, whilst at the same time, outputs create new UTXOs, which are added to the UTXO set. These unspent transaction outputs may be used (by the holders of private keys; for example, persons with cryptocurrency wallets) for the purpose of future transactions.[citation needed]
Origins
The conceptual framework of the UTXO model can be traced back to Hal Finney's Reusable Proofs of Work proposal,[7] which itself was based on Adam Back's 1997 Hashcash proposal.[8] Bitcoin, released in 2009, was the first widespread implementation of the UTXO model in practice.[1]
See also
References
- ^ a b c Antonopoulos, Andreas M. (2017). Mastering Bitcoin: Unlocking Digital Cryptocurrencies. O'Reilly Media, Inc.
- ^ a b Delgado-Segura, Sergi; Pérez-Sola, Cristina; Navarro-Arribas, Guillermo; Herrera-Joancomartí, Jordi (2018). "Analysis of the Bitcoin UTXO set". International Conference on Financial Cryptography and Data Security. Springer: 78–91. doi:10.1007/978-3-662-58820-8_6.
- ^ Chakravarty, Manuel M.T.; Chapman, James; MacKenzie, Kenneth; Melkonian, Orestis; Peyton Jones, Michael; Wadler, Philip (2020). "The extended UTXO model". International Conference on Financial Cryptography and Data Security. Springer: 525–539. doi:10.1007/978-3-030-54455-3_37.
- ^ "Unspent Transaction Output (UTXO)". river.com/learn/. December 15, 2020.
- ^ "UTXO Set". river.com/learn/. December 15, 2020.
- ^ "Bitcoin UTXO Lifespan Prediction" (PDF). cs229.stanford.edu. December 11, 2015.
- ^ "Reusable Proofs of Work". nakamotoinstitute.org. August 16, 2004.
- ^ "Hashcash - A Denial of Service Counter-Measure". hashcash.org. March 28, 1997.