One major advantage of this Unspent Transaction Output(UTXO) is that it simplifies handling of cheating. Consider the case where I have $20, and then cheat to buy two things for $11 each with the same money. The system has to reconcile this, figuring out who gets paid and who does not. Now amplify this to a scale where I might make a thousand purchases, some intentionally fraudulent, and some not. The untangling could be a nightmare.
If you consider how you and I usually resolve this, its a first-come-first-serve approach. The first retailer gets their money, and the rest don't. This lines up well with what would have happened if we used physical money. It would have been impossible to give $11 to the second guy in the first place!
However, timing is a tricky subject for Bitcoin because it is a distributed network. There is not a single node that can timestamp all money spent to resolve this issue. If you happen to get one purchase into the block chain, it's easy, but you may have multiple pending purchases outstanding before a new block gets minted.
The solution is the UTXO approach. By forcing all money from a bitcoin account to be spent all at once, returning the remainder as "change" into a new account, you create an ordering for these purchases. The extra accounts automatically construct that ordering.
And, as such, we can untangle nasty situations where I may have made 4 valid purchases, then 2 fraudulent ones, and then 2 transactions on each of those fraudulent chains on top of that:
- Purchases A, B, C, and D
- Double spent purchases E1 and E2
- Normal purchases E1-F and E1-G (valid if E1 is valid)
- Normal purchases E2-F and E2-G (valid if E2 is valid)
This sort of thing could be a snarl. It's the kind of thing which leads credit card companies to have humans do the arbitration. But thanks to the UTXO model, these transactions are very clearly ordered. The system will tie-break between E1 and E2 based on which one gets into the blockchain first. The result will be that either A, B, C, D, E1, E1-F, and E1-G are valid, or A, B, C, D, E2, E2-F, E2-G are valid.
Try to construct such a system without a centralized node to timestamp purchases, and without a human to arbitrate, and you quickly appreciate the choice. Are there other ways to do this? Certainly. But one has to appreciate the simplicity and clarity.