Blockchain Series - Unspent Transaction Output, UTXO
Bitcoin and many protocols based on it stores its data about transactions and user balances in the form of unspent transaction outputs: a list of “unspent” Bitcoin amounts that have been sent to a user but not yet sent from him/her. The sum of these outputs is the user’s total balance. On the blockchain, they appear to be a collection of Bitcoin amounts on different addresses, and the role of a wallet is to identify which addresses the user has keys to. Individual Bitcoin are easy to track because they are signed from one person to another. A transaction is valid if one can prove ownership over the actual Bitcoin s/he is trying to send.
This is in contrast to Ethereum’s account model, which stores information about a user’s entire balances. Other users send tokens to and from their own accounts. Individual ETH are more difficult to track because they are added and subtracted to user balances. A transaction is valid if one can prove ownership over the account and the account’s balance is high enough to support it.