<p>Welcome!</p>
<p>Arguably the innovation of Bitcoin is to let one access a network allowing to store and transfer value with very little trust involved. A user can download a publicly auditable software (full node) and replay the state of the network since its inception, validating every single transition. This gives them certainty about the validity of their transactions.</p>
<p>This is the incentive to run a full node. The ability to verify the validity of (a set of) transaction(s) for yourself instead of asking a third party. This is also why a full node is often paired with a wallet, since in general the transactions you are interested in validating are the ones involved with the coins you receive (directly or indirectly).</p>
<p>Now with regard to &quot;validating a miner's work&quot;. In Bitcoin miners order transactions by including them into blocks. Nodes receive blocks from miners and validate them, sometimes partially. The amount of validation performed on received blocks determine how &quot;full&quot; a node is, sort of. The Bitcoin Core software you downloaded for instance check that all transactions are valid (no coins are stolen or created out of thin air, the miner isn't overpaying itself, etc..) in addition to validating the miner's proof-of-work.</p>
<p>Making sure your full node is working on validating transactions is probably the hardest part. It's not specific to Bitcoin, it is just in general hard for a user to verify a software does what it says on the tin. The Bitcoin Core development team has been working on making this verification as accessible as possible by using <a href="https://github.com/bitcoin/bitcoin/tree/master/contrib/guix" rel="nofollow noreferrer">reproducible (and bootstrappable) builds</a> for its releases as well as following a <a href="https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md" rel="nofollow noreferrer">public and documented development process</a> (in addition to its code being Open Source, of course). The former makes it possible to verify the binary software you run on your computer actually corresponds to a specific source code, while the latter makes the life of someone auditing the source code a bit easier.</p>
<p>In conclusion, the proposition of value of Bitcoin is an open, accessible transaction system. A full node is the most trust minimized way to access this system. It validates all information it receives (mostly from miners, but in most cases not only) to avoid delegating this validation to a third party. There is still some trust involved in the software performing the validation itself, there is ways of mitigating this trust by making the verification of the software more accessible.</p>

CC BY-SA 4.0
2023-09-29T08:41:26.873Z
Thank you so much! This is very helpful. May I say that I should just trust that when the Bitcoin Core is running, it is always validating transactions at the same time? I would love to see a feature where users can visualize which transactions they are helping and I believe it will motivate and attract more users who are interested in maintaining the Bitcoin network joining as a full node.
your_chinesemom
CC BY-SA 4.0
2023-09-29T08:43:46.527Z
Yes Bitcoin Core will always verify transactions when it is running. But you don't *have* to take my (and others') word for granted, it is possible to verify this for yourself albeit at some cost.
Antoine Poinsot
CC BY-SA 4.0
2023-10-05T09:45:57.533Z
@your_chinesemom The primary purpose of running a full node is so that you don't have to trust anyone else to tell you which transactions are valid and when you have or haven't received bitcoins.
David Schwartz
CC BY-SA 4.0
2023-09-29T08:27:49.940Z
2023-09-29T08:52:15.577Z
2023-09-29T08:52:15.577Z
Antoine Poinsot
<p>I am very new to Bitcoin.</p>
<p>I recently learned that a full node can help validate a miner's work, so I downloaded the Bitcoin Core and decided to become a full node. How does this help validate a miner's work? It looks like just a wallet to me. Where could I check whether this software is working on validating transactions or not? Thanks!</p>
<p>Also, who would be incentivized to verify transactions if a full node is not getting paid?</p>

<bitcoin-core><full-node><validation>
How does Bitcoin Core help validate transactions?
your_chinesemom
# How does Bitcoin Core help validate transactions?

(Asked by: username_0 on 2023-09-29)

I am very new to Bitcoin.

I recently learned that a full node can help validate a miner's work, so I downloaded the Bitcoin Core and decided to become a full node. How does this help validate a miner's work? It looks like just a wallet to me. Where could I check whether this software is working on validating transactions or not? Thanks!

Also, who would be incentivized to verify transactions if a full node is not getting paid?

**Tags:** bitcoin-core, full-node, validation


---

## 1 answers

### Answer by username_1 on 2023-09-29. Score: 3

Welcome!

Arguably the innovation of Bitcoin is to let one access a network allowing to store and transfer value with very little trust involved. A user can download a publicly auditable software (full node) and replay the state of the network since its inception, validating every single transition. This gives them certainty about the validity of their transactions.

This is the incentive to run a full node. The ability to verify the validity of (a set of) transaction(s) for yourself instead of asking a third party. This is also why a full node is often paired with a wallet, since in general the transactions you are interested in validating are the ones involved with the coins you receive (directly or indirectly).

Now with regard to "validating a miner's work". In Bitcoin miners order transactions by including them into blocks. Nodes receive blocks from miners and validate them, sometimes partially. The amount of validation performed on received blocks determine how "full" a node is, sort of. The Bitcoin Core software you downloaded for instance check that all transactions are valid (no coins are stolen or created out of thin air, the miner isn't overpaying itself, etc..) in addition to validating the miner's proof-of-work.

Making sure your full node is working on validating transactions is probably the hardest part. It's not specific to Bitcoin, it is just in general hard for a user to verify a software does what it says on the tin. The Bitcoin Core development team has been working on making this verification as accessible as possible by using [reproducible (and bootstrappable) builds](https://github.com/bitcoin/bitcoin/tree/master/contrib/guix) for its releases as well as following a [public and documented development process](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) (in addition to its code being Open Source, of course). The former makes it possible to verify the binary software you run on your computer actually corresponds to a specific source code, while the latter makes the life of someone auditing the source code a bit easier.

In conclusion, the proposition of value of Bitcoin is an open, accessible transaction system. A full node is the most trust minimized way to access this system. It validates all information it receives (mostly from miners, but in most cases not only) to avoid delegating this validation to a third party. There is still some trust involved in the software performing the validation itself, there is ways of mitigating this trust by making the verification of the software more accessible.

> **Comments:**
> **username_0**: Thank you so much! This is very helpful. May I say that I should just trust that when the Bitcoin Core is running, it is always validating transactions at the same time? I would love to see a feature where users can visualize which transactions they are helping and I believe it will motivate and attract more users who are interested in maintaining the Bitcoin network joining as a full node.  
> **username_1**: Yes Bitcoin Core will always verify transactions when it is running. But you don't *have* to take my (and others') word for granted, it is possible to verify this for yourself albeit at some cost.  
> **username_2**: @username_0 The primary purpose of running a full node is so that you don't have to trust anyone else to tell you which transactions are valid and when you have or haven't received bitcoins.  

---

