<p>There's a distinction between verification and confirmation.</p>
<p><strong>Verification</strong> 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).</p>
<p><strong>Confirmation</strong> 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.</p>
<hr />
<p><strong>A transaction-ID</strong> 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.</p>
<p><strong>An unspent transaction output (UTXO)</strong> 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.</p>
<hr />
<p><strong>Simplified Payment Verification</strong> 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.</p>

CC BY-SA 4.0
2022-01-24T21:52:32.963Z
Thanks for the reply. I get what those terms are now.
Saswata Dutta
CC BY-SA 4.0
2022-01-24T21:58:31.997Z
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.
Saswata Dutta
CC BY-SA 4.0
2022-01-24T22:10:09.617Z
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.
RedGrittyBrick
CC BY-SA 4.0
2022-01-24T21:23:34.843Z
2022-01-24T21:36:40.333Z
2022-01-24T21:36:40.333Z
RedGrittyBrick
<p>I'm a beginner who's trying to learn the idea behind Bitcoin.</p>
<p>In the <a href="https://bitcoin.org/bitcoin.pdf" rel="nofollow noreferrer">Bitcoin whitepaer</a> it's said that:<br></p>
<blockquote>
<p>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, <strong>but by linking it to a place in
the chain,  he can see that a network node has accepted it</strong>, and
blocks added after it further confirms the network has accepted it.</p>
</blockquote>
<p>Here, A user who's gonna verify a transaction, how does it verify that particular transaction in the blockchain network?<br>
what's the <strong>role of Transaction ID and UTXO</strong>? and how do they help the transaction find the block in which it resides to verify himself?</p>

<blockchain><currencies><utxo>
How a user in the Bitcoin network verifies a payment?
Saswata Dutta
# How a user in the Bitcoin network verifies a payment?

(Asked by: username_0 on 2022-01-24)

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

In the [Bitcoin whitepaer](https://bitcoin.org/bitcoin.pdf) 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?

**Tags:** blockchain, currencies, utxo


---

## 1 answers

### Answer by username_1 on 2022-01-24. Score: 0 | Accepted answer

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.

> **Comments:**
> **username_0**: Thanks for the reply. I get what those terms are now.  
> **username_0**: 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.  
> **username_1**: 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.  

---

