All full nodes process the complete blockchain. While processing, they keep a record of all Unspent Transaction Outputs in the UTXO set. For each transaction of each block the relevant changes to the UTXO set are applied: all UTXOs that get spent are removed and all transaction outputs are added as new UTXOs.
Thus, when a node has synchronized completely to the current blockchain tip, to verify whether the inputs of a transaction are spendable, they just check if for each input there is a corresponding UTXO is in their UTXO set. If there isn't, the UTXO was either spent already, or never existed.
UTXOs are unique and only can be spent once and in full. They are identified by the (unique) txid of the transaction that created the UTXO and the v_out, i.e. the position of the output in the transaction's output list.
Got it! Thanks, so I assume that set is continuously updated and will become larger and larger as time progresses? – no nein – 2017-03-24T17:16:11.820
The UTXO set is indeed constantly updated, but it not necessarily grows larger over time, since every time a transaction is created some UTXOs from the set are also consumed, and therefore removed from it. It depends on the ratio inputs / outputs each transaction consumes / creates. – sr-gi – 2017-03-24T18:02:49.283
correct, however, it has been growing continuously http://statoshi.info/dashboard/db/unspent-transaction-output-set
– Murch – 2017-03-24T20:28:41.727