Bitcoin and Ethereum use two completely different methods to keep track of “who has how many coins”: Bitcoin records individual “unspent bills,” while Ethereum records each account’s balance. Once you understand the difference, many things that seem strange will make sense.
$BTC uses the UTXO model. The balance shown in a wallet is actually the sum of many unspent outputs. Current price: 83,001.7 (24h +1.49%).
▍UTXO: Unspent bills
Bitcoin uses the UTXO (Unspent Transaction Output) model. You can think of each UTXO as a bill of an arbitrary denomination: each transaction spends some old bills and creates some new ones for the recipient.
The balance shown in your wallet is calculated by adding up all the UTXOs that belong to you. There is no number on the blockchain called a “balance.”
▍Change and transaction fees
A UTXO can only be spent in its entirety. For example, if you have a “bill” worth 1 coin and need to pay 0.3 coins, the transaction creates two outputs: 0.3 coins go to the other person, and the remainder, minus the transaction fee, is returned to one of your own addresses as change. Many wallets send the change to a new address, so in a block explorer you may see that the “money was sent back to yourself.”
Bitcoin transaction fees aren’t listed separately. Instead, the fee is the sum of all inputs minus the sum of all outputs, and the difference goes to the miner who includes the transaction in a block.
▍The account model: balances recorded directly
Ethereum uses the account model, which records each account’s balance directly on the blockchain. A transfer subtracts funds from one account and adds them to another, much like a bank account. Ethereum has two types of accounts: externally owned accounts controlled by private keys, and contract accounts controlled by code.
To prevent the same transaction from being executed twice, each externally owned account has a nonce that increases by 1 with every transaction. Transactions must be processed in nonce order, so if an earlier transaction gets stuck, later ones have to wait in line too.
▍Each has its trade-offs
In the UTXO model, unrelated transactions can be verified in parallel, and using a new address to receive change can also improve privacy. However, writing complex contracts is less convenient. With the account model, balances are intuitive and writing contracts is easier, but transactions from the same account have to be processed in order. Cardano extends the UTXO model (eUTXO), allowing outputs to include script logic.
▍In a nutshell
Next time you see Bitcoin “sending money back to yourself” in a block explorer, or an Ethereum transaction getting stuck and causing all the following transactions to queue up, you’ll know these are simply features of two different accounting models—no need to panic. Every benefit comes with corresponding risks, so think about the worst-case scenario first.
What would you like to hear about next time? Wallets, or something else?