The Unspent Transaction Output (UTXO) model is a way to track ownership of digital assets in cryptocurrency systems. The Radix Engine implements a novel UTXO architecture that enables unique features around scalability, asset universality, transaction concurrency, and accounts, while preserving the core integrity of UTXO-based accounting.
Classic UTXO Model
The unspent transaction output (UTXO) model was popularized by Bitcoin as a way to track ownership of coins in a distributed ledger. In this model, the ledger consists of a set of UTXOs representing coins that can be spent. Each UTXO has a value and a locking script that defines the conditions required to spend it.
When a transaction occurs on the Bitcoin network, it consumes UTXOs by satisfying their locking script conditions and creates new UTXOs with updated owners and values.
Copy
Example: If Alice has a 2 BTC UTXO, she can create a transaction consuming that UTXO and creating two outputs:
➡️ 1.5 BTC UTXO assigned to Bob
➡️ 0.5 BTC change UTXO back to herself.The key rules of the classical UTXO model are:
Coins are represented exclusively as UTXOs on the ledger. The set of available spendable coins equals the set of unspent UTXOs.
UTXOs are created via mining rewards and transaction outputs. New UTXOs come into existence when transactions produce change.
UTXOs are consumed and destroyed when used as transaction inputs. This transfers ownership by assigning new UTXOs to new owners.
Transactions specify input UTXOs to consume and output UTXOs to create in a single atomic operation.
Consensus rules validate transactions verify ownership of input UTXOs via satisfaction of their locking scripts.
The ledger is represented as the chain of transactions with each transaction changing UTXO state.
This model provides a complete historical record showing the full chain of custody for every coin on the network. The UTXO architecture offers useful integrity properties around ownership and prevents double spending without a central authority.
Radix Engine UTXO model
The Radix Engine implements a UTXO model that makes several optimizations tailored for scalability and performance of decentralized applications. Some key properties of the Radix Engine UTXO architecture:
Assets are defined as universal resources rather than being tied to specific smart contracts or accounts. Resources can be freely used across components and shards.
Components group all their owned resources into a single UTXO. This allows maximum throughput for each component on its shard.
Accounts are components, so each user's balance is represented by an account-specific UTXO.
Transactions specify intent rather than directly specifying input/output UTXOs. The protocol dynamically selects UTXOs to satisfy intent.
Validity relies on digital signatures proving ownership of resources rather than locking script conditions.
Transferring ownership is done by constructing/destructing resources rather than a locking model. This provides inherent atomicity.
Concurrent double spends are resolved by aborting one transaction rather than rejecting both.
The ledger tracks transactions that transform state by constructing/destructing resources.
With these properties, the Radix Engine UTXO model offers several key benefits:
Assets are universal across the ledger, enhancing composability between dApps.
Component grouping into single UTXOs maximizes shard throughput.
Specifying intent avoids transaction conflicts, increasing concurrency.
Validity via signatures has low coordination overhead.
Construction/destruction enables atomicity without locks.
Selective transaction abortion increases throughput.
Connect your wallet to join the discussion.
