UTXO vs. account-based blockchains: how they work, how they differ, and what they’re used for

UTXO vs. account-based blockchains: how they work, how they differ, and what they’re used for

What are UTXO and account-based blockchains?

UTXO and account-based blockchains are two different ways a blockchain keeps track of who owns which crypto and how transactions are processed.

Well-known examples of blockchains that use the UTXO model are Bitcoin, Litecoin, Dogecoin, and Bitcoin Cash. Cardano uses a more advanced version, the eUTXO model, which also makes more complex logic and smart contracts possible.

Well-known account-based blockchains are Ethereum, Solana, and Avalanche’s C-Chain on Avalanche. On these blockchains, the state is tracked in accounts, for example through balances and other stored data. Ethereum, for example, uses accounts with a balance and nonce, while Solana stores all state in accounts.

UTXO is short for Unspent Transaction Output: a piece of crypto from an earlier transaction that has not been spent yet. You can think of it like separate digital bills. Each bill has a certain value and can only be spent once.

When you make a Bitcoin transaction, for example, you use one or more existing UTXOs as inputs. Those are then considered spent. At the same time, new UTXOs are created for the recipient and, if needed, for the change that goes back to the sender.

An account-based model works more like a regular bank account. An account has a current state, such as a balance that goes up or down when transactions are processed. On Ethereum, such an account includes not only the ETH balance but also a nonce and, depending on the account type, information about code and stored data.

So the main difference is in the bookkeeping. A UTXO blockchain tracks separate pieces of value that have not been spent yet, while an account-based blockchain mainly tracks the current balance and other data per account.

This does not automatically say anything about consensus, privacy, or the possibilities for smart contracts. There are also more advanced UTXO models, such as eUTXO, that support more complex logic.


Key Takeaways

  • A UTXO model tracks value as separate, unspent outputs from earlier transactions.
  • An account-based model tracks a changing balance and other data per account.
  • Bitcoin uses the UTXO model, and Ethereum is a well-known example of an account-based blockchain.
  • In UTXO, an existing output is spent and new outputs are created.
  • Both models can have pseudonymous but easy-to-follow transactions on public blockchains.

How does the UTXO model work?

The UTXO model works with separate pieces of crypto that have not been spent yet. A UTXO comes from an earlier transaction and can only be used if the related conditions are met. Usually, you prove with a digital signature that you’re allowed to spend that UTXO.

When you create a new transaction, it refers to one or more existing UTXOs. The network then checks whether those UTXOs have not already been spent and whether the conditions have been met.

Important to know: you can’t partially spend a UTXO. Once you use it, the entire UTXO is spent. That’s why payments often create multiple new UTXOs: one for the recipient and possibly one for the remaining amount that goes back to the sender. That last one is also called the change output.

Example: Suppose your crypto wallet can spend one UTXO of 1 BTC and you want to send 0.4 BTC to someone.

The full UTXO of 1 BTC is then used as input. The transaction can, for example, send 0.4 BTC to the recipient and send the remaining amount, after subtracting transaction fees, back to an address you control as a new UTXO.

The old UTXO of 1 BTC no longer exists after that. Instead, new UTXOs have been created.

So your visible balance is not one single amount on the blockchain. It’s the sum of all the UTXOs your wallet can spend.

The value of a transaction is also easy to check. The total value of the new outputs may not be higher than the value of the inputs used. The difference between the two can go to the miner who produces the block as a transaction fee.

On Bitcoin, extra conditions can also be attached to a UTXO through scripts. Such a script determines under which conditions the UTXO may be spent. That makes Bitcoin programmable for certain forms of authorization, but the Bitcoin script model is much more limited than the full smart contracts of something like Ethereum.

How does the account-based model work?

The account-based model works with accounts that each have a current state. Think of a balance and a nonce, for example. A nonce is an increasing number that keeps track of how many transactions an account has sent. This helps the network prevent the same transaction instruction from being executed again.

With a regular ETH transaction, the sender’s balance goes down and the recipient’s balance goes up. After that, the new state of both accounts is stored on Ethereum.

Ethereum has two types of accounts:

  • Externally owned accounts (EOAs): accounts controlled with a private key. These are usually the accounts users manage through a wallet. An EOA can start a transaction on its own.
  • Contract accounts: accounts linked to smart contract code. They do not have a private key and do not start an external transaction on their own. They execute code when they are called by a transaction or another contract.

A transaction from an EOA includes, among other things, information about the destination, the amount, the nonce, the signature, any extra data, and how much gas may be used at most. Gas determines how much computation Ethereum may perform for a transaction.

If a transaction only goes to a normal account, ETH can be sent, for example. If the transaction goes to a contract account, the EVM, Ethereum’s execution environment, can run that contract’s code.

That means one transaction can do much more than just send ETH. A smart contract can, for example, move tokens, update stored data, or call other smart contracts.

Validators check and process transactions according to the same rules. If the transaction is valid, the new balances and other changes become part of Ethereum’s new state.

What are the main differences between the two models?

The biggest difference is in how a blockchain keeps track of what someone owns.

In a UTXO model, the current state consists of separate pieces of crypto that have not been spent yet. In an account-based model, each account instead has a current state, such as a balance, nonce, and possibly stored contract data.

With UTXO, you spend existing outputs and new outputs are created. With accounts, the existing state is updated directly. Think of a balance going down, a nonce going up, or data in a smart contract changing.

Double spending is also prevented differently. In UTXO, the same output can only be used once. In an account-based model, the nonce helps process transactions from the same account in the correct order and prevents the same instruction from being executed again.

It’s too simple to say that UTXO is only good for payments and account-based blockchains are only good for smart contracts. Advanced UTXO models, like eUTXO, can also support more complex logic and smart contracts.

How a blockchain works in practice also depends on more than just the UTXO or account model. Things like the crypto wallet, transaction fees, virtual machine, and any privacy techniques also play a role.

How do transactions and balance accounting differ?

With a UTXO transaction, your wallet uses one or more existing UTXOs as inputs. The wallet looks for enough separate amounts to cover the payment and transaction fees. This is also called coin selection.

If the chosen UTXOs together are worth more than the amount you want to send, a new UTXO is usually created with the remaining amount. That’s called the change output.

So in a UTXO model, your balance consists of multiple separate UTXOs that together make up your total available balance.

In an account-based model, it works differently. An account has one balance that is updated directly. If you send ETH, for example, your account balance goes down and the recipient’s goes up.

Transactions from the same Ethereum account also each have a nonce. That lets Ethereum know in what order those transactions need to be processed. That matters because an earlier transaction can affect a later one. For example, your balance may change or a smart contract may have a different state by then.

An Ethereum transaction is therefore not really comparable to one input and one output. The transaction does start from one account, but a smart contract can adjust multiple accounts, tokens, and stored data during execution.

How do privacy and traceability differ?

Public UTXO and account-based blockchains are usually pseudonymous. That means an address does not automatically show your name, but transactions and addresses are still public on the blockchain.

On Bitcoin, different addresses are often used for different transactions. The change from a transaction can also go to a new address. Because of that, it is not always immediately clear which addresses belong to the same person.

Still, analysts can spot patterns. If multiple addresses are used together as inputs for one Bitcoin transaction, for example, that can suggest the same party controls those addresses. But that is not hard proof.

On Ethereum, people often use the same account address for many different activities. That makes it easier to link transactions, token movements, and smart contract interactions from that address.

Neither model is automatically anonymous or more privacy-friendly. Extra techniques, such as zero-knowledge proofs, mixers, or shielded transactions, can improve privacy. Those are additional techniques and not a standard part of the UTXO or account model.

What are the pros and cons of UTXO and account-based blockchains?

Both models have strengths and weaknesses. Which approach works better depends on what a blockchain or application needs to do.

Advantages of the UTXO model

  1. Clear transaction structure In a UTXO transaction, it is exactly visible which existing outputs are used and which new outputs are created. That makes the flow of funds within a transaction easy to follow.

  2. Possibility of parallel processing Transactions that do not use the same UTXOs can, in some UTXO models, be checked independently of each other. That can create room for parallel processing.

  3. Clear protection against double spending A UTXO can only be spent once. Once it has been used, it no longer exists as an available output.

Disadvantages of the UTXO model

  1. More work for wallets A crypto wallet has to decide which UTXOs to use for a payment. This is called coin selection. Change outputs and large numbers of small UTXOs also need to be managed.

  2. Shared state can be more complicated If multiple transactions need the same UTXO to execute contract logic, they can conflict with each other. Once one transaction uses that UTXO, the other transaction may need to be rebuilt with the new state.

Advantages of the account-based model

  1. Simple balance accounting An account has a current balance that is updated directly. That means a wallet does not first have to gather different separate UTXOs.

  2. Useful for shared and persistent state Account-based blockchains like Ethereum can link data directly to accounts and smart contracts. That works well for applications where many transactions build on the same stored information.

  3. Good for complex smart contracts A smart contract can adjust different balances, accounts, and stored data during one execution. That makes the model practical for many different kinds of blockchain applications.

Disadvantages of the account-based model

  1. Transactions depend more heavily on the current state The outcome of a transaction can depend on the balance, nonce, or contract data at the moment the transaction is executed. An earlier transaction may already have changed that state in the meantime.

  2. Transaction order matters Transactions from the same account must be executed in the correct nonce order. With smart contracts too, the order in which transactions are processed can affect the final state.

  3. More shared state can make processing more complex When many transactions try to change the same accounts or contract data, those transactions are not always fully independent of each other.

In short: neither model is automatically faster, cheaper, safer, or better for privacy. Those traits depend on the blockchain’s full design and on how the UTXO or account model is implemented in it.

When is each blockchain model a good fit?

A UTXO model works well for applications where value is tracked as separate amounts and each output can only be spent once. That works well for payments, for example, where it needs to be clear which amounts are used and which new amounts are created afterward.

If you want to build more complex applications, a UTXO model can still be a good fit. Advanced variants, like eUTXO, can also support smart contracts and more complex rules.

That said, these kinds of applications need careful thinking about how multiple users work with the same data at the same time. If many transactions keep needing the same UTXO, they can clash with each other. By spreading the data across multiple UTXOs, those conflicts can sometimes be reduced.

An account-based model is a better fit for applications where data changes often and multiple actions build on the same stored state. On Ethereum, for example, a transaction can send ETH and at the same time call a smart contract that then changes stored data.

So which approach is most suitable does not depend only on the UTXO or account-based label. What matters most is what the application needs to do, how many users want to change the same data at the same time, how complex the smart contracts are, and what kind of wallet experience you want to offer.

Conclusion

UTXO and account-based blockchains solve the same basic problem, but they do it in different ways. UTXO works with separate, one-time-spend outputs, while an account model tracks a changing state per account.

For simple payments, the difference is easy to see: with UTXO, old digital amounts are spent and new ones are created, while with accounts, balances are updated. For more complex applications, the choice gets more interesting. UTXO variants can support smart contracts, and account models can also transfer value just fine.

So the most important thing is not which model is better in general. It’s which model fits best with what a blockchain or application needs to do.

About Finst

Finst is a leading cryptocurrency platform in the Netherlands, providing ultra-low trading fees, institutional-grade security, and a comprehensive suite of crypto services such as trading, custody, staking, and fiat on/off-ramp. Finst, founded by DEGIRO's ex-core team, is authorized as a crypto-asset service provider under MiCAR by the Dutch Authority for Financial Markets (AFM) and serves both retail and institutional clients in 30 European countries.

The crypto platform for all investors

Whether you're an active trader or long-term investor, Finst enables you to grow your crypto wealth with confidence and peace of mind.

Sign up