The eUTXO Model

2024/05/14 | Monish Iyer

The eUTXO Model | Waffle Capital Ltd

Blockchain technology relies on an accounting system that effectively tracks and manages user transactions and wallet balances. Initially, Bitcoin introduced the unspent transaction output (UTXO) model as its accounting mechanism, while Ethereum adopted an accounts model. However, Cardano sought to combine the strengths of both approaches, resulting in the extended unspent transaction output (eUTXO) system used in the blockchain today.


The eUTXO model represents a unique approach to constructing smart contracts and developing decentralized applications (dApps) on Bitcoin-like blockchains. In contrast to Ethereum's account-based model and other smart contract platforms, the eUTXO model offers distinctive advantages.


What are the UTXO and Accounts model?


UTXO

The UTXO model is a fundamental concept in blockchain accounting, particularly used by Bitcoin. In this model, a UTXO represents the remaining amount of digital currency after a transaction has been executed. Users' wallets maintain a list of unspent outputs associated with their addresses and calculate their balance based on these unspent UTXOs.


Analogous to cash, where a wallet may contain different denominations that add up to a specific amount, UTXOs represent the individual denominations of digital currency held in a wallet. The balance of a wallet address is the sum of all unspent UTXOs from previous transactions.


Bitcoin's ledger records the UTXOs, which are the outputs or balances of past transactions. Each transaction involves inputs (representing the source of funds) and outputs (representing the destination of funds). When a UTXO is used as an input in a new transaction, it is consumed, and a new UTXO is created to reflect the updated balance.


This model ensures that the value of the digital coin owned by a user is explicitly defined by the UTXOs they possess. When making a transaction, a portion of a UTXO is spent, and the remaining amount is returned as change to the sender's address. The spent UTXO cannot be recovered, while new UTXOs are generated to represent the updated balances at the involved addresses.


One significant advantage of the UTXO model is its strong protection against double-spend attacks, enhancing security, scalability, and privacy compared to alternative models like the account-based system.


UTXO Diagram | Waffle Capital Ltd

Source: Cardano Docs


Accounts

The accounts model, implemented by Ethereum, operates more like a traditional bank account rather than a wallet. In this model, the ledger maintains the balances of users' individual accounts, which are updated after each transaction. Unlike the UTXO model, the accounts model allows for partial utilization of the account balance.


In the accounts model, each user has a distinct account similar to how banks assign accounts to their customers. The ledger keeps track of the balances associated with these accounts, which are adjusted whenever a transaction occurs. For example, if a user has 500 ETH in their account and transfers 150 ETH to another address, their account balance is updated to 350 ETH, while the recipient's account balance increases by 150 ETH.


Additionally, each account in the Ethereum accounting model has its own storage space and code space, enabling communication with other accounts or addresses. If the receiving account contains code, it is executed during the transaction and may modify the balance of the user's account. This means that the state of every account can be influenced by each newly produced block.


Compared to the UTXO model used by Bitcoin, the accounts model is simpler to implement and offers greater flexibility for smart contract capabilities.


What are the limitations of these models?


Both the UTXO model and the accounts model have their respective limitations in the context of blockchain accounting.


The UTXO model, as used in Bitcoin, lacks programmability, which hinders the blockchain's ability to support advanced smart contracts. The UTXO model represents a simple "coin" that can be spent as a whole, but it lacks the flexibility to define complex financial transactions or infrastructure. This limitation restricts the potential use cases and functionalities that can be implemented on the blockchain.


On the other hand, the accounts model, employed by Ethereum, allows for programmability and the execution of smart contracts. It provides a more expressive environment for implementing sophisticated transaction logic. However, the accounts model has a scalability challenge. With each transaction, the entire global account state needs to be updated, which can become increasingly burdensome as the number of transactions grows. This limitation hampers the scalability of the blockchain, potentially leading to congestion and slower transaction processing times.


eUTXO


Recognizing the limitations of both the UTXO and accounts models, Cardano introduced the eUTXO model as a solution. The eUTXO model combines the strengths of both models, offering programmability and smart contract capabilities while also addressing scalability concerns. By extending the UTXO model, Cardano's eUTXO model provides enhanced expressiveness for creating complex smart contracts, while maintaining the security and efficiency benefits associated with the UTXO approach.


In the standard UTXO model, transactions consist of inputs and outputs. Inputs refer to the existing unspent transaction outputs (UTXOs) that are being consumed, while outputs represent the newly created UTXOs. The eUTXO model builds upon this foundation and introduces two main enhancements.


Firstly, in the eUTXO model, addresses can contain arbitrary logic in the form of scripts. When a transaction is being validated by a node, it checks the script associated with the output's address. If the node determines that the transaction is allowed to use a particular output as an input, it will execute the script. This allows for more sophisticated conditions and rules to be applied to transactions, enabling the implementation of smart contracts and complex transaction logic.


Secondly, the eUTXO model allows outputs to carry arbitrary data. This means that the scripts associated with outputs can carry additional state information. By including data within outputs, the scripts gain more flexibility and utility, enabling them to carry and process relevant information required for the execution of smart contracts.


By combining these two enhancements, the eUTXO model enables complex logic and conditions to be applied to transactions. The arbitrary logic in the scripts can include various conditions, rules, and computations, allowing for intricate transaction processing. The validator, typically a node in the network, applies this logic to the transaction and executes it if the necessary conditions are met.


The eUTXO model provides the benefits of the UTXO model, such as simplicity and security, while also enabling smart contract capabilities. Notably, Cardano is a well-known blockchain platform that utilizes the eUTXO model to support the execution of smart contracts on its network.


UTXO vs eUTXO | Waffle Capital Ltd

Source: Cardano Forum


Advantages of eUTXO


The eUTXO (extended Unspent Transaction Output) model offers several advantages over other accounting models, such as improved scalability, predictability, security, and simplified transaction logic.


One advantage of the eUTXO model is scalability. Unlike the accounts model, which requires updating the entire global state for each transaction, the eUTXO model is relatively cheap and does not congest the blockchain. The ability to process transactions without updating the entire global state reduces the computational overhead and improves the scalability of the blockchain.


The eUTXO model also offers predictability as transactions are 100% deterministic. You can predict exactly what is going to happen in the transaction and is only dependent on the availability of the UTXOs involved, ignoring the global state. This is in stark contrast to the Accounts model in which transactions can be unpredictable because of its dependency on the global state of the chain, which changes after ever transaction. It is therefore entirely possible for you to submit a transaction, and during the time it takes between submission and confirmation, the global state changes in such a way that your transactions behaves in an unexpected way.


In terms of security, the eUTXO model provides a secure environment for processing multiple operations without system failures. Each UTXO can only be consumed once and as a whole, simplifying transaction verification. The success or failure of transaction validation depends solely on the transaction itself and its inputs, making it easier to verify transactions and reducing the risk of errors or vulnerabilities.


Simplified transaction logic is another advantage of the eUTXO model. Transactions in the eUTXO model are checked off-chain before being sent to the blockchain, allowing for efficient transaction validation. Additionally, the local nature of transaction validation enables a high degree of parallelism, as transactions can be validated in parallel if they do not attempt to consume the same input. This parallelization improves efficiency and simplifies the analysis of possible outcomes.


Overall, the eUTXO model in Cardano offers greater scalability, predictability, security, and simplified transaction logic compared to other accounting models. It provides a versatile and secure environment for executing smart contracts while maintaining efficiency and reducing potential risks.


Conclusion


Cardano recognizes the limitations of both the UTXO and Accounts models and aims to provide applications and solutions for a wide user base. The UTXO model lacks programmability, while the accounts model suffers from scalability and security challenges.


To address these limitations, Cardano embraces the Extended Unspent Transaction Output (eUTXO) model, which combines the best features of Ethereum's programmability and Bitcoin's security. The eUTXO model offers enhanced programming expressiveness and the ability to execute smart contracts, providing the desired functionality for decentralized applications.


In contrast to the accounts model, where users and smart contracts are represented as accounts, the eUTXO model offers increased safety and predictability. While the accounts model allows for a wide range of operations, it introduces complex code semantics that are challenging to formally verify. This complexity exposes smart contracts to a higher risk of vulnerabilities and potential hacks.


On the other hand, the eUTXO model provides a fundamentally different approach to smart contracts and decentralized applications, prioritizing safety and predictability. Although it may appear more limited in some respects, the eUTXO model mitigates serious vulnerabilities associated with smart contracts, offering a secure and reliable foundation for Cardano's ecosystem.


By leveraging the eUTXO model, Cardano aims to provide a robust platform that combines programmability with scalability, security, and predictability, ultimately delivering applications and solutions that cater to the needs of a broad user base while prioritizing safety in the blockchain ecosystem.


Disclaimer: This post is intended solely for informational purposes. It is not designed to provide investment guidance or to endorse or solicit the purchase or sale of any investment. Furthermore, it should not be utilized as a basis for evaluating the benefits of any investment decision. This document is not a source for accounting, legal, or tax counsel, nor does it offer investment recommendations. The views expressed in this document represent those of the authors at this time and are not issued on behalf of Waffle Capital or its associates. Moreover, these opinions do not necessarily align with those of Waffle Capital, its affiliates, or personnel associated with Waffle Capital. The opinions herein are liable to alteration and may not be updated.