<p>Segwit node will convert transactions and blocks "on-the-fly" while sending them to your non-upgraded node. You will see anyone-can-spend outputs and redeems from such outputs. You will not see any additional flags, witness data and any other segwit stuff.</p>

CC BY-SA 3.0
2017-04-27T13:21:38.183Z
Thanks. So basically, Segwit nodes send a stripped-down version of blocks to their connected non-Segwit nodes?
inersha
CC BY-SA 4.0
2022-03-10T04:25:27.443Z
What happens during relay? Like, if a segwit node sends a segwit transaction to an old node, is that transaction junk after that, or can a segwit node that receives the transaction from an old node reconstruct that data somehow?
B T
CC BY-SA 3.0
2017-04-26T20:22:55.877Z
2017-04-26T20:22:55.877Z
amaclin
<p>I'm trying to understand how my node would interperet a <em>SegWit</em> transaction if I do not upgrade.                                                                </p>

<ol>
<li>Even if I do not upgrade, I should be receiving the exact same block data as everyone else, correct?                                                        </li>
</ol>

<p>If so, let's say my node receives a block that contains a segwit transaction (i.e. one with a <code>[marker][flag]</code> and some <code>[witness]</code> data). I'm not sure how my node is going to interpret the data...                                                                                                                            </p>

<ol start="2">
<li>If the <code>[marker][flag]</code> is <code>[00][01]</code>, does my node read this as being 0 inputs and 1 output, and still consider this transaction valid?                        </li>
<li>If so, how can it go about recreating the <strong>TXID</strong> from the <code>[version][txins][txouts][locktime]</code> if the transaction data is of the format <code>[version][marker][flag][txins][txouts][witness][locktime]</code>?                                                                                                                    </li>
</ol>

<p><strong>Basically, I don't understand how my node could receive transactions with <code>[witness]</code> data and still consider those blocks to be valid.</strong></p>

CC BY-SA 3.0
2017-04-27T13:36:41.643Z
Thanks Pieter. That both asked (and answered) my question more acutely.
inersha
<transaction-verification><segregated-witness><block-validity>
How does a non-upgraded node read a SegWit transaction?
inersha
# How does a non-upgraded node read a SegWit transaction?

(Asked by: username_0 on 2017-04-26)

I'm trying to understand how my node would interperet a *SegWit* transaction if I do not upgrade.

1. Even if I do not upgrade, I should be receiving the exact same block data as everyone else, correct?

If so, let's say my node receives a block that contains a segwit transaction (i.e. one with a `[marker][flag]` and some `[witness]` data). I'm not sure how my node is going to interpret the data...

2. If the `[marker][flag]` is `[00][01]`, does my node read this as being 0 inputs and 1 output, and still consider this transaction valid?
3. If so, how can it go about recreating the **TXID** from the `[version][txins][txouts][locktime]` if the transaction data is of the format `[version][marker][flag][txins][txouts][witness][locktime]`?

**Basically, I don't understand how my node could receive transactions with `[witness]` data and still consider those blocks to be valid.**

**Tags:** transaction-verification, segregated-witness, block-validity

> **Comments:**
> **username_0**: Thanks Pieter. That both asked (and answered) my question more acutely.  

---

## 1 answers

### Answer by username_1 on 2017-04-26. Score: 2 | Accepted answer

Segwit node will convert transactions and blocks "on-the-fly" while sending them to your non-upgraded node. You will see anyone-can-spend outputs and redeems from such outputs. You will not see any additional flags, witness data and any other segwit stuff.

> **Comments:**
> **username_0**: Thanks. So basically, Segwit nodes send a stripped-down version of blocks to their connected non-Segwit nodes?  
> **username_2**: What happens during relay? Like, if a segwit node sends a segwit transaction to an old node, is that transaction junk after that, or can a segwit node that receives the transaction from an old node reconstruct that data somehow?  

---

