|

Bitcoin Doesn’t Have Balances. It Has UTXOs.

By mordom

Open your wallet and you see a number.
0.42 BTC.
1.8 BTC.
0.003 BTC.

It looks like a bank account. A single balance that belongs to you.
But that number does not exist on the blockchain.

Bitcoin does not track accounts or balances per address. There is no global registry that says “this address owns X”. What you see is a representation created by the wallet, which sums all spendable outputs associated with your keys.

At the protocol level, there are only UTXOs — Unspent Transaction Outputs.

Understanding this difference changes how you think about ownership, spending, and security in Bitcoin.

What Actually Exists in the Network

Bitcoin does not track accounts. It tracks outputs.
Every transaction creates one or more outputs. Each output contains:

  • an amount expressed in satoshis
  • a locking condition (scriptPubKey)

When a transaction is confirmed, its outputs become spendable in the future. If they are not used as inputs in a new transaction, they remain in the global set of unspent outputs: the UTXO set.

And this is the key point:

Every transaction creates spendable outputs.

A UTXO is a defined amount of bitcoin locked by a cryptographic condition. It can be spent only once. When it is used as an input in a new transaction, it is removed from the UTXO set and replaced with new outputs.

Every full node maintains an updated copy of this set. When a node receives a new transaction, it does not check a balance. Instead, it verifies that the referenced outputs still exist and that their unlocking conditions are satisfied.

Bitcoin Is a State Transition System

The state of the network at any given moment is defined entirely by the UTXO set.
Each new block modifies this state by consuming some outputs and creating others.
No account is updated and no balance is modified.
Some UTXOs disappear.
New ones are created.

Validation is binary: an output either exists in the current state or it doesn’t. If it exists and is correctly unlocked, it can be spent.

Bitcoin does not track “who owns what”. It tracks which outputs are spendable and under which conditions.

What “Spending” Really Means

When you press “Send”, you are not subtracting an amount from a balance.

You are constructing a transaction that:

  • references one or more existing UTXOs as inputs
  • provides the data needed to unlock them
  • creates new outputs with new locking conditions

Spending means proving that you can satisfy the cryptographic condition associated with a specific output.

If the output is spendable by whoever controls a certain private key, the transaction must include a valid signature generated with that key. If the verification succeeds, the output is removed and the new outputs enter the UTXO set (see the technical notes at the end of this article).

There is no balance decreasing.
There is only a change in state.

Ownership in Bitcoin is the ability to produce a valid signature. It is not a number associated with an account.

Why Every Transaction Creates New Outputs (Including Change)

Suppose you control a UTXO worth 1 BTC and want to send 0.3 BTC.
You cannot “withdraw” only part of it. Bitcoin does not allow partial spending of an output.
You must consume the entire UTXO and create at least two new outputs:

  • one to the recipient
  • one back to yourself (the change, minus the fee)

That change is not the same output with a reduced value. It is a new UTXO.
From the protocol’s perspective, one output has been destroyed and two new ones have been created. The balance that appears to “decrease” is simply a visual effect produced by the wallet.

Bitcoin works with spendable fragments, not updatable counters.

Why This Model Matters

The UTXO model is not a minor technical detail.
It influences:

  • how transactions are constructed
  • how nodes verify validity
  • what it actually means to “own” bitcoin

Your balance is really a collection of independent outputs, each with its own amount and unlocking condition.
The wallet sums them for convenience.
The protocol does not know that total.
Bitcoin is not a distributed banking system.

It is a system of verifiable cryptographic ownership.

If this changed how you think about Bitcoin ownership, explore how BitVault helps you secure it in practice: https://www.bitvault.sv


Technical Note

What Nodes Actually Verify When You Spend a UTXO

When you construct a transaction, the wallet prepares all the details: inputs, outputs, amounts, and fees.

SHA-256 is applied twice to this data (double SHA-256), producing a 32-byte hash. This hash is the message that gets signed using the private key via ECDSA on the secp256k1 curve. If even a single parameter of the transaction changes, the hash changes and the signature becomes invalid.

When you receive bitcoin at a standard address, the blockchain does not contain your public key but its hash, obtained by applying SHA-256 followed by RIPEMD-160 (HASH160).

When you spend that UTXO, you must reveal the public key and provide the signature. The node then:

  • recalculates SHA-256 and RIPEMD-160 on the provided public key and verifies that it matches the hash stored in the locking script;
  • verifies that the signature is valid with respect to the hash of the signed transaction.

Only if both checks succeed is the UTXO removed from the set of unspent outputs and considered legitimately spent.

Leave a Reply