What is a UTXO?
A UTXO is an unspent transaction output. In an accepted transaction in a valid blockchain payment system (such as Bitcoin), only unspent outputs can be used as inputs to a transaction. When a transaction takes place, inputs are deleted and outputs are created as new UTXOs that may then be consumed in future transactions.
In the Bitcoin network, which uses this model, a UTXO is the amount that is transferred to a Bitcoin address (along with information required to unlock the output amount*) during a transaction. Received amounts (UTXOs) are used individually during a transaction and new outputs are created – one for the receiver and, if applicable, one for the amount that is left over (change output). The amount sent to the recipient becomes a new UTXO in the recipient’s address while the change output becomes a new UTXO in the sender’s address that may be used in a future transaction.
Corda uses a UTXO model – an entry is either historic (sometimes referred to as “spent” or “consumed”) or current (sometimes referred to as “unspent” or “unconsumed”), but it cannot be changed. Corda assumes that data being processed represents financial agreements between identifiable parties and that these institutions require a significant number of such agreements to be managed by the platform. Therefore, Corda must be able to support parallel execution, while also ensuring correct transaction ordering when two transactions seek to act on the same piece of shared state. A UTXO model provides this, allowing transactions to be processed independently and in parallel, even for high traffic legal entities.
* Each UTXO has a signature associated with it belonging to the owner. In Bitcoin, this signature must be present during a given transaction in order for the transaction to be considered valid.