Unspent Transaction outputs (UTXO)

Discrete piece of cryptocurrency. For example, bitcoin is in discrete amounts of satoshi.

Each UTXO has an amount associated with it, and is owned by an account.

When a UTXO is used in a transaction it is destroyed, and one or more new UTXO created.

All nodes maintain a set of existing UTXOs, they use this to verify if a given transaction and the cryptocurrency it is attempting to spend is valid.

Example

Alice owns UTXO worth 1BTC. Alice wants to pay Bob 0.4BTC. Alice creates 2 new UTXO:

  1. UTXO 0.4BTC to bob
  2. UTXO 0.59BTC to herself (change)

Notice there is 0.01BTC missing. This is implicitly the miner’s fee, paid for mining the transaction.

Structure

Movement of assets is DAG. Nodes are transactions. Edges are transaction outputs. Each transaction consumes UTXOs, adds new ones. Analagous to cash.

Advantage

UTXOs are discrete. Size, age, amount metadata of UTXOs can be used to extract metrics on blockchain’s usage. UTXO allows for better scalability, privacy. UTXO can only be consumed once. Makes transaction verification simpler.

Parallel verification, you can look at the input UTXOs, rather than validate the whole account.

Disadvantage

Smart contracts on UTXOs based blockchains only have access to UTXOs, rather than global account ledger.

How are UTXOs produced?