Blockchain Accounting Models: UTXO vs. ABC
There are two primary transaction control models used in blockchains: UTXO (Unspent Transaction Output) and ABC (Account-Based Chains). Each has its unique features and advantages. Let's compare their capabilities.
UTXO Model
The UTXO (Unspent Transaction Output) model views coins as individual units of value, each with a unique identifier.
This can be likened to dollar bills, each with its serial number. Imagine you give a $5 bill to a hot dog vendor—the exact cost of the hot dog. An hour later, the vendor buys a newspaper with your bill. However, the newspaper costs $2, so the newspaper seller gives him three $1 bills as change.
For you, the purchase is a transaction with a net output, as you've fully expended the unique identifier (bill number). For the hot dog vendor, it's an input with a subsequent output and partial refund from the newspaper seller, which in blockchain terminology is called a "change address." Thus, the hot dog vendor has transferred your identifier and received several others in return, which now serve as his unspent output and will be the basis for his future payments.
Transactions in the UTXO model are sets of unspent outputs transferred from one address to another.
We've written in detail about this model and its significance here.
UTXO Model Advantages
- Simplicity. The UTXO model is accessible for average blockchain users, as it is based on the cash circulation analogy.
- Increased privacy. In the UTXO model, each unspent balance has a unique identifier, making it harder to de-anonymize transaction participants.
- Support for complex transactions. The UTXO model facilitates complex transactions requiring multiple signatures and transactions with address change.
- Low efficiency, as it requires creating unspent balances for every new transaction.
- Development complexity. Developing wallets and applications for the UTXO model can be challenging, as they must manage multiple UTXOs.
ABC Model
The Account-Based Chains model views coins as balances stored in accounts, with transactions representing changes to these account balances. This model is used by, among others, EOS and Ethereum.
To understand how the account model works, consider it similar to bank accounts. Suppose you have a bank account with a $100 balance. When you transfer $50 to another user, your balance decreases by $50, while the recipient's balance increases by $50.
In the account model, fund transfers are executed as follows:
- The sender specifies which account balance they wish to change.
- The recipient specifies which account balance they wish to change.
- The transaction processor verifies if the sender's account has enough funds to cover the requested payment.
- If the sender's account has sufficient funds, the transaction processor changes the account balances and records the transaction history in the blockchain.
- Efficiency. The account model is more efficient than the UTXO model as it doesn't require maintaining unspent balances on the user's account.
- Easier development. Developing wallets and decentralized applications for the account model is simpler than for the UTXO model, as it supports managing a single balance.
- Blockchain space savings. Each transaction requires only one reference, one signature, and produces one output.
- Reduced privacy. In the account balance model, it's easier to track coin movements since all transactions are conducted through personalized accounts.
- Limitations on complex transactions. The account model may not support multi-signature transactions and transfers with address changes.
Choosing an Accounting Model
UTXO and account-based models are not competitors but complementary approaches to blockchain asset management. The right model depends on the needs of the project developing its decentralized network.
UTXO is preferred for projects where payment privacy is crucial, while account-based models are chosen by projects needing user interaction with smart contracts.
The same goes for fiat payments: if an individual desires private money transfer, they opt for cash, whereas for "white" (traceable) transactions, they prefer bank transfers.