The UTXO Set

One of the data structures created by the protocol is the Unspent Transaction Output — or UTXO — set. This database identifies the balances of everyone’s current bitcoin holdings. In this way, the UTXO set is responsible for explaining ‘who owns what’ at any given time.

The UTXO database is derived from the blockchain, the system’s transaction record. In other words, it is the transaction record that determines the current state of the UTXO set. When full nodes verify and add new blocks onto their blockchain databases, they also verify the transactions in each block and modify their UTXO set accordingly to reflect the updated state of ownership.

Consequently, when nodes are onboarding to the network they are constantly updating their UTXO set as they verify and add blocks to their blockchain database. Once they are up-to-date with all other nodes on the network, and have completed the transaction verification, blockchain download and UTXO set construction process, they then begin to listen for new blocks. While nodes listen for new blocks proposed by miners, so long as the blocks correctly abide by the protocol rules, they will append their blockchain while also updating their UTXO set.

Thus a full node’s UTXO set is undergoing a continuing process of updating, to correctly identify the balances of all bitcoin holdings at any given time.