A bitcoin node’s jobs verify that incoming transactions are correct (data hasn’t been tampered with, money isn’t being created, only intended recipients spend UTXOs, etc.). A more exhaustive list can be found online, but I’ll list out a few of the important ones here:
- All outputs claimed by inputs of this transaction are in the UTXO pool. Unspent outputs can only ever be claimed once.
- The signatures on each input are valid. More precisely, we’re saying that the combined scripts return true after executing them one after the other—more on this in the last section.
- No UTXO is spent more than once by this transaction. Notice how this is different than the first item.
- All of the transaction’s output values are non-negative.
The sum of this transaction’s input values is greater than the sum of its output values. Note that if the numbers are different, the difference is considered to be a transaction fee that can be claimed by the miner.