<p>Bitcoin Core does validate all signatures after a certain point, and can be configured to validate all signatures in history if so desired.</p>
<p>The <code>assumevalid</code> feature only disables signature validation for blocks prior to a specific configured block which is updated for each version. This block is typically several (tens of) thousand blocks deep by the time the release is actually made. Any block which is an ancestor of that particular block (and that block is in the main chain) will not have the signatures checked. All blocks that come after it will have their signatures checked. This means that once your node is synced, all new blocks will have the signatures checked.</p>
<p>Furthermore, this <code>assumevalid</code> is not a checkpoint nor does it operate on block heights. If, for some reason, there was a reorg which removed the <code>assumevalid</code> block from the main chain, then all signatures in the blockchain would be validated. It is merely an optimization and does not affect the security of your node.</p>
<blockquote>
<p>can Bitcoin core even claim to be a full node?</p>
</blockquote>
<p>Yes, there is more to being a full node than validating signatures. There is more to validation than just signatures. Bitcoin Core still checks the PoW, that the outputs being spent existed, etc.</p>

CC BY-SA 4.0
2020-08-26T17:19:53.540Z
Prior to assumevalid, signature checks were only skipped for ancestors of the checkpoint blocks. Between the time that the last checkpoint was added, and assumevalid was added, those blocks after the checkpoint would always have their signatures validated.
Ava Chow
CC BY-SA 4.0
2020-08-26T16:33:02.093Z
2020-08-26T16:33:02.093Z
Ava Chow
<p>There have been claims recently of Bitcoin Core not validating the signatures in a block by default. If this is true, can Bitcoin Core even claim to be a full node?</p>

CC BY-SA 4.0
2020-08-26T10:35:55.783Z
https://bitcoin.stackexchange.com/questions/1797/what-are-checkpoints Blocks before the last checkpoint are optionally not validated.
MCCCS
CC BY-SA 4.0
2020-08-26T12:19:49.110Z
@MCCCS The accepted answer there is actually wrong these days. Checkpoints don't exist anymore.
Jannes
CC BY-SA 4.0
2020-08-26T23:41:34.760Z
@Jannes They still exist, but no new ones have been added since 2014.
Pieter Wuille
CC BY-SA 4.0
2020-08-27T07:44:43.453Z
@PieterWuille That makes sense. I stand corrected. I guess they're still there because they're part of the consensus now? I assume they're not the main deciding factor (on whether to do signature validation or not) anymore with the default assumevalid and assumevalid=0 ? Thank you.
Jannes
<bitcoin-core><full-node><validation>
Does Bitcoin Core validate signatures by default?
Bertram Lund
# Does Bitcoin Core validate signatures by default?

(Asked by: username_0 on 2020-08-26)

There have been claims recently of Bitcoin Core not validating the signatures in a block by default. If this is true, can Bitcoin Core even claim to be a full node?

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

> **Comments:**
> **username_1**: https://bitcoin.stackexchange.com/questions/1797/what-are-checkpoints Blocks before the last checkpoint are optionally not validated.  
> **username_2**: @username_1 The accepted answer there is actually wrong these days. Checkpoints don't exist anymore.  
> **username_3**: @username_2 They still exist, but no new ones have been added since 2014.  
> **username_2**: @username_3 That makes sense. I stand corrected. I guess they're still there because they're part of the consensus now? I assume they're not the main deciding factor (on whether to do signature validation or not) anymore with the default assumevalid and assumevalid=0 ? Thank you.  

---

## 1 answers

### Answer by username_4 on 2020-08-26. Score: 6 | Accepted answer

Bitcoin Core does validate all signatures after a certain point, and can be configured to validate all signatures in history if so desired.

The `assumevalid` feature only disables signature validation for blocks prior to a specific configured block which is updated for each version. This block is typically several (tens of) thousand blocks deep by the time the release is actually made. Any block which is an ancestor of that particular block (and that block is in the main chain) will not have the signatures checked. All blocks that come after it will have their signatures checked. This means that once your node is synced, all new blocks will have the signatures checked.

Furthermore, this `assumevalid` is not a checkpoint nor does it operate on block heights. If, for some reason, there was a reorg which removed the `assumevalid` block from the main chain, then all signatures in the blockchain would be validated. It is merely an optimization and does not affect the security of your node.

> can Bitcoin core even claim to be a full node?

Yes, there is more to being a full node than validating signatures. There is more to validation than just signatures. Bitcoin Core still checks the PoW, that the outputs being spent existed, etc.

> **Comments:**
> **username_4**: Prior to assumevalid, signature checks were only skipped for ancestors of the checkpoint blocks. Between the time that the last checkpoint was added, and assumevalid was added, those blocks after the checkpoint would always have their signatures validated.  

---

