UTXO vs. Account-Based Chains
UTXO (Unspent Transaction Output) and Account-Based chains are two different "accounting methods" used by blockchains to determine the provenance and ownership of coins in the network.
UTXO stands for "Unspent Transaction Output". A UTXO chain is simply a blockchain which uses the UTXO accounting method (such as the Bitcoin and Litecoin blockchains), as opposed to an account-based accounting method.
On the protocol layer of UTXO chains, there are no accounts or wallets. Instead, coins are stored as a list of UTXOs. The term "unspent transaction output" is a reference to the fact that a UTXO represents the output of a transaction received by a user, which that user can spend in the future (as it is still "unspent"). It is another way of referring to a balance of coins (e.g. BTC) controlled by a specific address.
Under this model, transactions are created by consuming existing UTXOs and producing new ones in their place. UTXOs can be divided or combined to reach the denomination required in a given transaction. This concept can be illustrated with an analogy to cash.
Each UTXO can be compared to a bill or coin. If you have $50 in cash, there are a number of different combinations you might have:
- A single $50 bill
- Five $10 bills
- Ten $5 bills
- Four $10 bills and two $5 bills
- and so on...
In each of these cases, despite having a different number of bills, you always have exactly $50. UTXOs behave in the same way; when you see a single balance in your crypto wallet, this may actually be made up of any number of UTXOs, based on your past transaction history. When added together, these UTXOs sum to the total balance held in your specific wallet address.
Also like cash, UTXOs cannot be divided. Take the example of buying a cup of coffee which costs $3.75; if you only have five $10 bills, you must over-pay (by handing over $10) and receive change - in this case, $6.25 in change.
UTXOs behave in a similar fashion. Just as you can't tear off a piece of your $10 bill to pay for your coffee, you cannot send part of a UTXO. If you want to send someone 3.75 BTC, but only have a UTXO worth 10 BTC in your wallet, you must send the entire UTXO to the recipient and then receive change, just like you would when paying in cash. (Of course, this process is handled by the blockchain protocol, and doesn't require you to trust the recipient to return your change). As such, when you made this transfer, the recipient would receive 3.75 BTC, and the remaining 6.25 in "change" would be sent back to your address as a new, smaller UTXO.
What if you wanted to send someone 13.75 BTC? Again, the situation is the same as with cash. You would have to send two UTXOs (just like handing over two $10 bills); one would be completely used up, and the other would necessitate change being sent back to you in the form of a new UTXO.
While the "UTXOs as cash" analogy is helpful for understanding the basic concept, there are a few places in which the analogy breaks down.
First, transactions conducted on a blockchain also require the payment of transaction fees, which are deducted from the amount of change you get in return - unlike when paying in cash.
Second, fiat bills and coins are fixed in value. You can't get a $6.25 bill as change when you pay for your coffee. Conversely, UTXOs can come in any amount.
Examining and tracking UTXOs is an excellent way of getting data about on-chain activity. The size, age, and number of UTXOs transferred on a given blockchain provides some compelling signals, which have been turned into a number of core on-chain metrics.
The concept of change is important for understanding several on-chain metrics, especially filters and adjustments. Because change necessitates new UTXOs being created and transferred, it can add a lot of noise to on-chain metrics which look at the number and size of UTXOs (such as SOPR or Coin Days Destroyed). As such, identifying and adjusting for change provides a more realistic signal of economic activity on-chain.
Unlike UTXO chains, in which coins are uniquely referenced, account-based chains (such as the Ethereum and EOS blockchains) represent coins as balances within an account. Accounts can be controlled by a private key, or by a smart contract - and account-based models are mostly popular among smart contract-focused blockchains.
Account-based models are simpler than UTXO models; they can be treated as similar to bank accounts, which represent user balances within a single account and allow for deposits and withdrawals in and out of that account.
Under the account-based model, unlike with UTXOs, balances can be partially spent. For example, if you have 10 ETH, you can send someone 3.75 ETH directly from your account, and the result of this transaction is that you now have 6.25 ETH and the other person has 3.75 ETH. You don't have to send the full 10 ETH and then receive 6.25 ETH in change, as you would on a UTXO chain.
Several prominent on-chain indicators (such as SOPR or Coin Days Destroyed) rely on looking at UTXOs to determine certain patterns in economic activity on-chain. However, applying these metrics to account-based chains has traditionally been complex, making the structure of a chain an important factor in determining the extent to which valuable on-chain data can be extracted from it. Despite these complexities, Glassnode is pioneering the process of applying UTXO-focused metrics to account-based chains.
Account-based chains also have some unique metrics which can be derived from their on-chain data, such as gas fees. Further, because some of these chains (such as Ethereum) support many assets, they contain many more sources for exploration of on-chain data.