I'm a beginner who's trying to learn the idea behind Bitcoin.

In the Bitcoin whitepaer it's said that:

A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirms the network has accepted it.

Here, A user who's gonna verify a transaction, how does it verify that particular transaction in the blockchain network?
what's the role of Transaction ID and UTXO? and how do they help the transaction find the block in which it resides to verify himself?

1 Answer 1


There's a distinction between verification and confirmation.

Verification is checking that some data, such as transaction data, meets all the Bitcoin rules. For example you could check that the sum of outputs of a transaction does not exceed the sum of its inputs. You could check that none of the inputs have already been spent. You can check signatures. You can check that the locking script is well-formed. There are many such checks. Verifying a transaction does not tell you whether the payment has been made (received).

Confirmation of a transaction is nothing more than a count of the number of blocks that have been added to the blockchain which are either the block that contains that transaction or which are linked back to that block. 0 blocks means unconfirmed, 6 or more is regarded as irrevocably confirmed. Full nodes can count this number of blocks themselves. So when you make a payment, confirmation of your transaction is what you are interested in. Confirmation is what tells you the payment has happened, that it has been irrevocably received.

A transaction-ID is simply a representation of a number that uniquely identifies some specific transaction. This Transaction-ID can be used by a node to index a list of transactions to aid retrieval. For example some software might create an index of Transaction IDs that points to the block that contain each transaction.

An unspent transaction output (UTXO) is effectively an unspent coin. A node can and should check that the inputs to a transaction of interest are all UTXOs. This is part of how Bitcoin prevents double-spending. Each full node typically keeps a list of all UTXOs and removes spent ones and adds newly created ones as it processes each new transaction.

Simplified Payment Verification is the section of Nakamoto's white paper that contains the text quoted in the question. Full nodes do all the verification themselves. Lightweight nodes, such as those that use Simplified Payment Verification (SPV) rely to some extent on other nodes to perform verification. Unlike full nodes, they partially trust some other nodes to be honest. So the quoted text does not apply to full nodes.

  • Thanks for the reply. I get what those terms are now. Jan 24, 2022 at 21:52
  • But I wanna know if a user (normal user not a full-node) want to verify a transaction if right or not how he does that. I mean, How the user finds the block that the transaction is in. I don't know if I'm thinking it the right way or not, sorry. But I thought a normal user has access to the transactions, and to verify them It needs to find the particular block the transaction is residing in. I don't know if I'm right or not. If I'm thinking the right way by any chance, how the transaction finds the block it resides in. Jan 24, 2022 at 21:58
  • A normal user can use a full-node Bitcoin wallet like Bitcoin core. The whitepaper section you quoted describes roughly how lightweight wallets do verification. Jan 24, 2022 at 22:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.