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’. The UTXO database is derived from the blockchain, the system’s transaction record. As a full node is verifying and downloading new blocks to its blockchain database, it is verifying the transactions in each block and modifying its UTXO set accordingly.

Consequently, when nodes are onboarding to the network they are constructing their UTXO set as they are initialising their blockchain database. Once they are up-to-date with all other nodes on the network, and have therefore completed the verification, blockchain download and UTXO set construction process, they then begin to listen for new blocks. As nodes listen for new blocks proposed by miners, if the blocks break no rules the full nodes verify transactions and append their blockchain while also updating their UTXO set. Thus a full node’s UTXO set is under continuous maintenance to ensure correct identification of the balances of all bitcoin holdings.