<p>This is not correct.</p>
<p>All segwit blocks do differently is having the witnesses (which include the signature) in a separately-hashed area. They're still an integral part of the block, and full validation cannot proceed without the witness data. Removing or altering the witness data will invalidate a block.</p>
<p>What this does permit is stripping the witness data without affecting validity <strong>according to pre-segwit validation rules</strong>. This is the basis for using segwit as a blocksize increase (the old 1 MB block size limit thus only applies to the non-witness part, as old nodes don't see the witness data). However, nodes that implement the segwit rules need the full witness.</p>

CC BY-SA 4.0
2021-01-14T21:31:47.683Z
Can you please explain what a non-segwit node sees when a segwit node notifies it of a new block, vs what a non-segwit node would see from a non-segwit node? I think I'm having trouble understanding how the witness data can be stripped and still be seen as valid
Jefumaru
CC BY-SA 4.0
2021-01-14T21:40:21.723Z
There is no difference. Non-witness nodes are never sent the witness data. Witness nodes strip it before sending it to them.
Pieter Wuille
CC BY-SA 4.0
2021-01-15T17:36:57.527Z
So they strip the portion of their block that contains witness data, correct? If this is true, then the non-witness node doesn't receive the witness data (which includes the signature). If so, how do non-witness nodes verify the block?
Jefumaru
CC BY-SA 4.0
2021-01-15T17:49:18.727Z
Yes. To them, the block is valid without witnesses. Every script that requires a witness looks like one that is always true to non-witness nodes.
Pieter Wuille
CC BY-SA 4.0
2021-01-15T21:37:20.063Z
So do non-witness nodes just accept blocks at face value from witness nodes? They don't need to validate it at all?
Jefumaru
CC BY-SA 4.0
2021-01-15T21:38:56.090Z
They validate everything they care about. That does not include the validation of witness spends, as those look like anyonecanspend to them. But non-segwit scripts are still validated, PoW is validated, inflation is checked, UTXOs must exist, ...
Pieter Wuille
CC BY-SA 4.0
2021-01-14T19:22:33.657Z
2021-01-14T19:22:33.657Z
Pieter Wuille
<p>From my understanding, segwit blocks send transaction information without the witness, which includes the signature. I thought nodes needed the signature to verify the transactions?</p>

<segregated-witness>
How are segwit block transactions verified?
Jefumaru
# How are segwit block transactions verified?

(Asked by: username_0 on 2021-01-14)

From my understanding, segwit blocks send transaction information without the witness, which includes the signature. I thought nodes needed the signature to verify the transactions?

**Tags:** segregated-witness


---

## 1 answers

### Answer by username_1 on 2021-01-14. Score: 3

This is not correct.

All segwit blocks do differently is having the witnesses (which include the signature) in a separately-hashed area. They're still an integral part of the block, and full validation cannot proceed without the witness data. Removing or altering the witness data will invalidate a block.

What this does permit is stripping the witness data without affecting validity **according to pre-segwit validation rules**. This is the basis for using segwit as a blocksize increase (the old 1 MB block size limit thus only applies to the non-witness part, as old nodes don't see the witness data). However, nodes that implement the segwit rules need the full witness.

> **Comments:**
> **username_0**: Can you please explain what a non-segwit node sees when a segwit node notifies it of a new block, vs what a non-segwit node would see from a non-segwit node? I think I'm having trouble understanding how the witness data can be stripped and still be seen as valid  
> **username_1**: There is no difference. Non-witness nodes are never sent the witness data. Witness nodes strip it before sending it to them.  
> **username_0**: So they strip the portion of their block that contains witness data, correct? If this is true, then the non-witness node doesn't receive the witness data (which includes the signature). If so, how do non-witness nodes verify the block?  
> **username_1**: Yes. To them, the block is valid without witnesses. Every script that requires a witness looks like one that is always true to non-witness nodes.  
> **username_0**: So do non-witness nodes just accept blocks at face value from witness nodes? They don't need to validate it at all?  
> **username_1**: They validate everything they care about. That does not include the validation of witness spends, as those look like anyonecanspend to them. But non-segwit scripts are still validated, PoW is validated, inflation is checked, UTXOs must exist, ...  

---

