Unspent transaction output

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In cryptocurrencies, an unspent transaction output (UTXO) represents some amount of digital currency which has been authorized by one account to be spent by another. UTXOs use public key cryptography to identify and transfer ownership between holders of public/private key pairs. UTXOs are formatted with the recipient's public key, thus restricting the ability to spend that UTXO to the account that can prove ownership of the associated private key. The UTXO can only be spent if it includes the digital signature associated with the public key attached the last time it was sent.

Each UTXO represents a chain of ownership implemented as a chain of digital signatures going back to the origin of the coin. This is true whether the coin was created by mining, staking, or another minting function defined by the protocol.

Bitcoin is an example of a cryptocurrency that uses the UTXO model.[1] An extended version of the UTXO model (EUTXO) is used for the Cardano blockchain.[2]

UTXO model vs. account model[edit]

The many cryptocurrencies that use the UTXO model do not use accounts or balances. Instead, individual coins (UTXOs) are transferred between users much like physical coins or cash.[3]

The UTXO model treats currency as objects. The history of a UTXO is stored only in the blocks when it is transferred, and to find the total balance of an account one must scan each block to find the latest UTXOs which point to that account. UTXOs are valid no matter their age; it is only necessary to acknowledge their ownership when they are sent, and not in each and every block. Though all nodes on a single chain must all agree on the block history, the relevant blocks to any single account's balance will likely be unique to that account.

On the other hand, an account model keeps track of each account and its respective balance for every block added to the network. This allows account balances to be checked without scanning historical blocks, but increases the raw size of each block (compression of unchanged account balances can reduce space requirements). Checking account balances is quicker, but like the UTXO model, fully verifying the origin of coins still requires auditing past blocks to the coin's origin.

UTXO set[edit]

The total UTXOs present in a blockchain represents a set, every transaction consumes elements from this set and creates new ones that are added to the set. Thus, the set represents all of the coins in a particular cryptocurrency system. The complete UTXO set can be summed to calculate the total supply of a cryptocurrency at a given point in time.[4]

Outputs are a superset of UTXOs. Accordingly, UTXOs are a subset of the outputs superset. Bitcoin UTXO lifespans have been studied.[5]

In the case of a valid blockchain transaction, unspent outputs (and only unspent outputs) may be used to fund further transactions. The requirement that only unspent outputs may be used in further transactions is necessary to prevent double-spending and fraud.

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.

Origins[edit]

The UTXO model can be attributed to Hal Finney's Reusable Proofs of Work proposal,[6] which is based on Adam Back's 1997 Hashcash proposal.[7]

See also[edit]

References[edit]

  1. ^ Delgado-Segura, S., Pérez-Sola, C., Navarro-Arribas, G., & Herrera-Joancomartí, J. (2018) "Analysis of the Bitcoin UTXO set" in International Conference on Financial Cryptography and Data Security (pp. 78-91). Springer, Berlin, Heidelberg. https://link.springer.com/chapter/10.1007/978-3-662-58820-8_6
  2. ^ Chakravarty, M. M., Chapman, J., MacKenzie, K., Melkonian, O., Peyton Jones, M., & Wadler, P. (2020) “The extended UTXO model”, in International Conference on Financial Cryptography and Data Security (pp. 525-539). Springer, Cham. https://link.springer.com/chapter/10.1007/978-3-030-54455-3_37
  3. ^ "Unspent Transaction Output (UTXO)". river.com/learn/. December 15, 2020.
  4. ^ "UTXO Set". river.com/learn/. December 15, 2020.
  5. ^ "Bitcoin UTXO Lifespan Prediction" (PDF). cs229.stanford.edu. December 11, 2015.
  6. ^ "Reusable Proofs of Work". nakamotoinstitute.org. August 16, 2004.
  7. ^ "Hashcash - A Denial of Service Counter-Measure". hashcash.org. March 28, 1997.