UTXO Model vs Account Model: Bitcoin vs Ethereum
UTXO model vs account model: how Bitcoin's unspent-output ledger and Ethereum's account balances handle state differently.
The UTXO model, used by Bitcoin, tracks ownership as a set of discrete unspent transaction outputs, while the account model, used by Ethereum and most smart-contract platforms, tracks ownership as a single running balance per address, similar to a bank account. Both approaches solve the same fundamental problem — recording who owns what — but they lead to different tradeoffs in complexity, privacy, and what kinds of applications each blockchain naturally supports.
Understanding this distinction helps explain some of the deeper architectural differences between Bitcoin and Ethereum, beyond the more commonly discussed differences in consensus mechanism or programmability.
How the UTXO model handles state
In Bitcoin's UTXO model, there's no such thing as a persistent account balance stored on-chain. Instead, the network maintains a set of all unspent transaction outputs — think of it as a giant collection of "unspent bills" of various denominations. A wallet's displayed balance is simply the sum of all UTXOs that wallet's keys can unlock.
Every transaction fully consumes some existing UTXOs as inputs and creates new UTXOs as outputs, including a "change" output sent back to the sender when the input amount exceeds what's being sent. Our detailed explainer on what a UTXO is walks through this mechanic with a worked example.
How the account model handles state
Ethereum instead maintains a global state — essentially a big table mapping addresses to balances and, for smart contracts, to storage data. Sending funds directly updates the sender's and recipient's balances, much like a traditional bank ledger entry. There's no concept of discrete "coins" being consumed and recreated; balances are simply incremented and decremented.
This account-based approach also uses a "nonce" — a sequential counter — for each account, which prevents transaction replay and enforces ordering: a given account's transactions must be processed in sequence, since each depends on the account's current balance and nonce.
Why the difference matters for smart contracts
The account model turns out to be much better suited to complex smart contract logic. Contracts need to maintain internal state — token balances, staking positions, governance votes, and so on — and an account-based ledger provides a natural way to store and update this kind of persistent state directly on-chain.
UTXO-based systems can support smart contracts (and some newer UTXO-based chains do), but it typically requires more complex workarounds, since there's no natural persistent "storage slot" attached to a UTXO the way there is to an Ethereum account. This is one reason Ethereum's account model became the dominant approach for platforms focused on DeFi, NFTs, and general-purpose smart contracts. Our overview of what DeFi is and how DeFi lending works relies heavily on this kind of persistent contract state.
Privacy implications
The UTXO model can support somewhat better privacy characteristics by default, since wallets can generate a new address for every UTXO received, making it harder to link all of a user's holdings to a single identifiable address without additional analysis. The account model, by contrast, typically has users interact repeatedly from the same address, which makes on-chain activity easier to correlate over time, though various privacy-focused techniques exist to mitigate this on both types of chains.
Comparing the two models directly
| Feature | UTXO model (Bitcoin) | Account model (Ethereum) |
|---|---|---|
| State representation | Set of unspent outputs | Address-to-balance mapping |
| Transaction ordering | Independent per UTXO | Sequential nonce per account |
| Parallelizability | Higher, since UTXOs are independent | Lower, due to per-account sequencing |
| Smart contract state | Requires workarounds | Native, persistent storage |
| Balance display | Sum of matching UTXOs | Direct lookup |
| Address reuse and privacy | Easier to avoid by default | Common, easier to correlate activity |
| Fee calculation basis | Transaction size (bytes) | Gas consumed by computation |
Fee mechanics differ too
Bitcoin transaction fees are largely a function of transaction size in bytes (more inputs and outputs mean more data, meaning higher fees), independent of what the transaction "means." Ethereum fees are calculated in gas, which measures computational effort — a simple transfer costs a small fixed amount of gas, while complex smart contract interactions cost proportionally more. Our glossary entry on gas explains this fee mechanism in more detail.
Neither model is strictly superior
The UTXO model favors simplicity, parallel verification, and slightly better default privacy properties, which aligns well with Bitcoin's design goal of being a robust, auditable settlement layer. The account model favors flexibility and native support for complex, stateful applications, which aligns with Ethereum's goal of being a general-purpose programmable platform. For broader context on how different blockchains make these kinds of tradeoffs, see our comparison of layer-1 blockchains.
Bottom line
Bitcoin's UTXO model and Ethereum's account model represent two fundamentally different ways of answering the same question: who owns what, and how is that state updated over time. UTXOs favor auditability, parallelism, and simplicity, while accounts favor flexibility and native smart contract support. The choice between them reflects each network's core design priorities more than a simple technical superiority of one approach over the other.
Related articles
This article is for educational purposes only and is not financial advice. DeFi involves significant risk, including total loss of funds. Always do your own research.