What is UTXO Model?
Last updated
Last updated
Bitcoin’s ledger system differs from our traditional “account/balance” model. To better understand Bitcoin’s operations, we need to comprehend its UTXO (Unspent Transaction Output) model. This model is a unique accounting method inherent to Bitcoin.
The UTXO model, “Unspent Transaction Output,” essentially manages funds through transaction records rather than account balances. Simply put, the UTXO model records each transaction's “inputs” and “outputs” instead of the balance within accounts.
In the Bitcoin system, each transaction consists of two parts:
Transaction Input: This part identifies the source of the funds.
Transaction Output: This part identifies the destination of the funds.
Each transaction can have multiple inputs and outputs. We can consider each transaction as “spending” the outputs of previous transactions while generating new outputs that can be used as inputs for future transactions.
Transaction A: Suppose a miner node X receives a reward of 15 bitcoins through mining. These 15 bitcoins initially represent an unspent transaction output (UTXO).
Next, node X conducts several transactions:
Transaction B: Node X transfers 5 bitcoins to node Y. This transaction can be represented as:
Input: Node X’s 15 bitcoins (from mining reward).
Output: Node Y receives 5 bitcoins, and node X retains 10 bitcoins as a change.
In this transaction, node X spends the previously acquired 15 bitcoins (as input), generating two new unspent transaction outputs (UTXOs): 5 bitcoins for node Y and 10 bitcoins remaining for node X.
Transaction C: Later, node X and node Y jointly contribute 3 bitcoins each to pay node Z. This transaction can be represented as:
Input: 3 of node X’s remaining 10 bitcoins, and 3 of node Y’s 5 bitcoins (from transaction B).
Output: Node Z receives 6 bitcoins, node X retains 7 bitcoins as change and node Y retains 2 bitcoins as change—these are all newly generated UTXOs.
Each “account” corresponds to a specific address in the Bitcoin system. The Bitcoin blockchain does not directly track the Bitcoin balance of each address but stores the entire history of transaction data within the blockchain. The Bitcoin system monitors the collection of all UTXOs in the blockchain network through the “transaction pool.” The “balance” at any given address is calculated by examining and summing all UTXOs associated with that address. When a UTXO is used, it is removed from the transaction pool, reflecting real-time balance adjustments.