The UTXO and account-based models are the most commonly used accounting standards in blockchain networks. For instance, Bitcoin uses the UTXO based model as its accounting standard, while Ethereum uses the account-based model, also called as account model or balance model. In this edition of the Bridge, we introduce readers to these models and explain their key advantages and disadvantages to better reflect their applicability within different networks. Further, we look into an upcoming standard, called EUTXO, which is a hybrid standard that aims to bring together the advantages of the UTXO and account models.
What is the UTXO model?
UTXO stands for ‘unspent transaction output’. Similar to how a coin or note cannot be divided into a smaller denomination, an UTXO cannot be further divided. In other words, it is an indivisible chunk of a native token controlled by the private keys of owners. Whenever a user receives native tokens, such as bitcoin (BTC), the transaction is recorded as an UTXO. The ownership is recorded on the blockchain and the network tracks all available UTXOs.The number of BTC owned by a user can be composed of several UTXOs. There are several blockchain networks that use the UTXO model, such as Bitcoin Cash, Litecoin, Bitcoin SV, NEO, etc.
Under the UTXO model, a new transaction uses outputs from prior transactions and new transactions create new outputs (UTXOs) that can be used in the future. A helpful way to understand this concept is by using a cash purchase analogy:
- Assume you have five USD 20 notes. Each USD 20 note can be seen as one unspent transaction, totalling USD 100.
- You want to buy a shirt that costs USD 70.
- You will hand over four USD 20 notes and receive USD 10 in change.
- The USD 10 change represents a new UTXO generated in that transaction. Therefore, two UTXOs1 are generated in this case, one with four USD 20 notes and one with USD 10 as change.
The ‘balance’ in your bitcoin wallet works similarly. In fact, it represents the net of all inputs and outputs of your BTC UTXOs combined, showing how much BTC you have available to spend or, in other words, the amount that is ‘unspent’.
How does the UTXO model work?
To better understand how the UTXO standard works in the blockchain context, we created an example using BTC in Figures 1 and 2. Imagine Bob has a wallet containing 4.4 BTC in total, which is made up of three different UTXOs: 3 BTC, 0.8 BTC, and 0.6 BTC. These three UTXOs represent bitcoin funds he has received from three previous transactions and can be seen as three different value bank notes in the wallet/purse he uses to store fiat cash.
- Bob sends 3.7 BTC to Alice.
- To sends 3.7 BTC to Alice, Bob needs to find the right UTXOs to send – just like using bank notes to pay for the shirt in the example above.
- The transaction would be comprised of 3 BTC (UTXO #1) plus 0.8 BTC (UTXO #2) as in Figure 1.
- Bob does not need to send the 0.6 BTC (shown as UTXO #3) because the sum of UTXOs #1 and #2 is greater than 3.7 BTC.
- As UTXOs #1 and #2 together represent 3.8 BTC and Bob only sends 3.7 BTC, this results in a left-over amount (change) of 0.1 BTC, which is the new UTXO illustrated in Figure 2:
- Bob send UTXOs #1 and #2 to Alice and 0.1 BTC back to himself.
- This creates a new UTXO of 0.1 BTC in his wallet.
Figure 1: Pre-Transaction
Figure 2: Transaction Process
A primary advantage of the UTXO model is scalability. Given the option to process multiple UTXOs simultaneously, transactions can be processed parallelly, which allows for a reduction of the computational load. Privacy is another key benefit, as it is far more difficult to track transactions if new addresses are used each time2. Security is also a plus, since the inputs and outputs for transactions are linked, with rare exceptions. Therefore, it is easy to authenticate all transaction sequences, limiting the risk of double-spending.
UTXO implementation is complex because sending a transaction requires multiple considerations, such as the number of inputs to be combined or which inputs should be combined if there are multiple possible combinations.
UTXOs are stateless, meaning no two transactions can affect the same UTXO. Transactions do not refer to any input outside of the consumed UTXOs. As UTXOs can be executed in parallel, they are not well suited for applications, such as smart contracts, that are stateful.
What is the account-based model?
The account-based model operates using accounts. Ethereum, Ethereum Classic, Ripple, and several other blockchain networks use this model. Under the account-based model, the addresses are viewed similar to accounts that have an aggregate balance, not a sum of UTXOs. Unlike the UTXO model, transactions are simple transfers of funds between two accounts – no change is involved.
In other words, the account model handles transactions differently from the UTXO model, working similarly to a debit card transaction.
- A shirt costs USD 70.
- Instead of paying by cash, you pay by debit card.
- If there are sufficient funds on your account, the payment goes through, debiting the required amount.
- There is no change involved, because no sum is returned when making a typical debit card transaction.
- Your account is debited and the account to which you remit the funds is credited.
How does the account model work?
The account model maps all accounts into balances, with transactions moving from one state to the next. Simply, this means that sending funds reduces the balance of one account and increases the balance of the other. Using the example above but with ETH instead of BTC (see Figure 3), we get:
- Bob has 4.4 ETH.
- Alice has 7.15 ETH.
- Bob sends 3.7 ETH to Alice.
- Bob then has 0.7 ETH.
- Alice subsequently has 10.85 ETH.
Figure 3: Transaction Process in Ethereum
Account model advantages
The main advantage of the account model is simplicity. With smart contracts being fundamental to the Ethereum model, the account approach helps make smart contracts more expressive and powerful. Since the UTXO model does not have a ‘state’ approach, it results in unnecessary complexity. However, for accounts following the state approach, developers have more flexibility to build applications. Additionally, since there is only the requirement to ensure that the sending account has sufficient funds to complete a transaction, this model is much simpler and there are large efficiency gains as a result.
Account model disadvantages
The reliance on ‘events’ rather than specified input and output states poses problems for the account model because each transaction needs to be checked for accuracy by the Ethereum Virtual Machine (an isolated environment for running smart contracts in Ethereum). This can make the account model unnecessarily complex, sacrificing certainty in the process, since the validity of transactions is unconfirmed until they are finally executed. Further, the account model encourages address re-use, which may be detrimental to privacy.
Hybrid models—The future of blockchain accounting?
Both benchmark blockchain accounting models were chosen by their respective networks for the following reasons. On one hand, Ethereum’s focus was on creating powerful smart contracts, which is what the account model provides. Bitcoin, on the other hand, wanted a model that would best replicate cash, allow privacy, and remain straightforward even in a complex distributed computing environment, which is why they opted for the UTXO approach.
Picking one model over the other invites trade-offs mentioned previously. That is why the most recent blockchain network developments indicate a trend towards hybrid models. Those networks that already adopted a hybrid model include Cardano, Komodo, Tron, and Qtum, among others.
Why merge blockchain accounting standards?
Blockchain networks moving towards hybrid models attempt to retain the UTXO model’s semantic simplicity without losing the ability to include a strong smart contract base. Hybrid models intend to overcome the shortcoming of the UTXO architecture by making it easier for developers to use UTXOs as the root level to create blockchain-based contracts. For instance, Cardano’s extended UTXO (EUTXO) model aims to achieve this by allowing the execution process to be divided into several transactions. As previously stated, UTXOs are stateless and thus not desirable for smart contracts. Therefore, the EUTXO model intends to retain parallel processing without losing smart contract ability. Also different from the traditional UTXO model, data fields are added to the outputs of each transaction, where information can be linked to a smart contract. With specific transactions comprising each state change, this shows striking similarities Ethereum’s state machine. The details of how it is done can be found here.
Bitcoin and Ethereum chose different accounting models because their purposes are different. Newer blockchain accounting standards increasingly look towards hybrid models to benefit from the advantages of both UTXO and account-based model approach. However, whether this approach will work can only be answered once these models are sustainable ‘in the wild‘ for a non-trivial amount of time.
1In case of bitcoin and other blockchain networks, a third UTXO as fees is also generated which goes to the miner. ↵
2Many bitcoin users utilize an address only once. As bitcoin is pseudonymous, it becomes difficult to identify the individuals who used the address. ↵