Skip to main content

UTXO Model

Bitcoin does not use an "account balance" system like a bank. Instead, it tracks Unspent Transaction Outputs (UTXOs) — discrete chunks of bitcoin that have been received but not yet spent.

How It Works

  • Each transaction consumes existing UTXOs as inputs and creates new UTXOs as outputs
  • A wallet's "balance" is the sum of all UTXOs it controls
  • Once a UTXO is spent, it becomes a spent output and is removed from the UTXO set

Example:

You have a 1 BTC UTXO.
You send 0.3 BTC to Alice.
You receive 0.699 BTC back as a new UTXO (0.7 minus fees).
Your wallet now controls one UTXO of 0.699 BTC.

Private and Public Keys

  • Private key — a secret number that unlocks and signs transactions; proves ownership of UTXOs
  • Public key — derived from the private key; used to create addresses and verify signatures
  • Anyone with the private key can spend the UTXOs locked to its corresponding address

UTXO vs Account Model

PropertyUTXO (Bitcoin)Account (Ethereum, Banks)
BalanceSum of discrete outputsSingle cumulative balance
PrivacyEasier to split and mergeTied to single identity
Parallel validationYes — UTXOs are independentRequires global state
Smart contractsLimited script flexibilityTuring-complete

Implications

  • Coin selection matters — wallets must choose which UTXOs to spend (affects privacy and fees)
  • Dust outputs — tiny UTXOs may cost more in fees to spend than they are worth
  • Chain analysis — all UTXOs are publicly visible on the blockchain; reusing addresses degrades privacy

Resources