Block Magnates

The New Crypto Publication on The Block

Follow publication

Accounting Models In Blockchain: UTxO, eUTxO And Account Models

--

The blockchain is basically a distributed ledger, in which transactions are recorded, but there are different accounting models.

Bitcoin and Ethereum host the two currently most popular cryptocurrencies. They use two quite different ledger models, known as the UTxO model and the Accounts model, respectively.

Cardano’s team of developers has evolved the UTxO model.

The Account Model

Ethereum chose the Accounts model explicitly to facilitate more expressive smart contracts. On the other hand, Bitcoin chose UTxO also for good reasons, including that its semantic model remains simple in a complex concurrent and distributed computing environment.

Ethereum is based on the global state of the blockchain, (Ethereum Virtual Machine, EVM), with a distinct transaction accounting model, the Accounts model.

The Accounts model resembles the way a bank works. Users have accounts that store their coin balance. It is possible to spend partial balances. The concept of “change” does not apply.

While Ethereum’s implementation is simpler, the complications inherent in global state management (EVM) result in greater possibility of failed transactions, or wasted resources, among other problems.

The UTxO Model

The UTxO model is the unspent balance of a previous transaction, which can be spent in the future.

UTxO chains do not have accounts; instead, coins are stored as a list of UTxOs, and transactions are created by consuming existing UTxOs and producing new ones in their place.

The balance is the sum of UTxOs controlled by a wallet. UTxOs are similar to cash in that they use “change”, and are indivisible (UTxOs are used in full), i.e. if you have to pay $50 and you have a $100 bill (UTxO), you must hand it over in full and receive change in a $50 bill (new UTxO).

Cardano’s eUTxO Model

Cardano developed the extended UTXO (eUTxO) model, an evolution of the Bitcoin UTxO model that supports a substantially more expressive form of validation scripts, which enable the scheduling of your transactions.

Cardano bases its transactions in a local environment, with the eUTxO (extended Unspent Transaction Output) model with the ability to interact with smart contracts running on the blockchain.

Cardano’s model circumvents the problems of the Account Model, by allowing resource determinism and indivisible individual transactions by limiting the scope of smart contract transactions to their immediate local environment. However these advantages are not without cost, as transaction construction is an upfront burden, having to be included individually in every development run on Cardano. Unlike Ethereum it is a build that must be faced by each developer.

Transactions consume unspent outputs from previous transactions and produce new outputs that can be used as inputs for future transactions.

Understanding the Extended UTXO model

The eUTxO model extends the UTxO model in two ways:

It generalizes the concept of ‘address’ using the lock and key analogy. Instead of restricting locks to public keys and keys to signatures, addresses in the eUTxO model can contain arbitrary logic in the form of scripts. For example, when a node validates a transaction, the node determines whether or not the transaction can use a given output as input. The transaction will look for the script provided by the address of the output and execute the script if the transaction can use the output as input.

The second difference between UTxO and eUTxO is that outputs can carry (almost) arbitrary data in addition to an address and a value. This makes the scripts much more powerful by allowing them to carry state information.

Advantages of the eUTxO model

This model offers better scalability and privacy, as well as more simplified transaction logic, since each UTxO can only be consumed once and in aggregate, which makes transaction verification much simpler.

It also offers greater security, predictability of smart contract execution costs (no unpleasant surprises) and more powerful parallelization.

This model can process several transactions in a single shipment and at a proportionally lower cost. So it looks like fewer transactions on the network and it looks like less activity, but in reality it is not.

The success or failure of transaction validation depends only on the transaction itself and its inputs, and not on anything else on the blockchain. As a result, the validity of a transaction can be verified off-chain, before the transaction is sent to the blockchain. A transaction can still fail if some other transaction simultaneously consumes an input that the transaction expects, but if all inputs are still present, the transaction is guaranteed to succeed.

This contrasts with an account-based model (such as the one Ethereum uses), where a transaction can fail to execute the script halfway through. This can never happen in eUTxO.

Disadvantages of the eUTxO model

The eUTxO model is more complex to program for developers, as they must code the integrity of the transaction model in development itself, prior to transaction validation on the network.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Written by Li₿ΞʁLiøη

Researcher • Ϛʁyptø_Writer • Content Creator | 𝕏 @liberlion17 | nostr liberlion@iris.to | website: liberlion.com

No responses yet

Write a response