<blockquote>
  <p>How legacy node can verify them without the witness?</p>
</blockquote>

<p>An example of a SegWit output is: <code>scriptPubKey: 0 ab68025513c3dbd2f7b92a94e0581f5d50f654e7</code>. For legacy nodes, this output looks like an anyone can spend output as there are no opcodes or verification. Such outputs do not require any signatures to spend. Thus when a legacy node sees a transaction spending a SegWit output, it does not go looking for any signatures and considers the transaction to be perfectly valid.</p>

<blockquote>
  <p>Block size of 1MB</p>
</blockquote>

<p>With the SegWit soft-fork, block size got redefined to 4,000,000 Weight Units (WU). In the WU calculation, transaction data (excluding segregated signatures) are multiplied by 4 while segregated signature data are multiplied by just 1. For example, if transaction data (excluding signatures) is 200 bytes and the witness data is 144 bytes, then the transaction has a WU of <code>(200*4) + (144*1) = 944 WU</code>. Blocks cannot breach this 4M WU criteria without getting invalidated. If there is a block with 1MB of non-signature data then it's size is 4M WU (1MB*4). Adding signature data on top of that will breach that threshold.</p>

<p>For legacy nodes, the block size continues to remain at 1 MB as these nodes do not query for the witness data for a SegWit transaction. If a block size exceeded 1MB with transaction data excluding signatures, then it would also exceed the 4M WU criteria as well.</p>

CC BY-SA 4.0
2019-11-18T14:44:10.223Z
Thanks for awesome replying :) I'd like to clarify your answer in another post. can you join too? (https://bitcoin.stackexchange.com/questions/91761/is-segwit-really-safe-and-reduced)
Hyunsoo
CC BY-SA 4.0
2019-11-17T15:54:06.890Z
2019-11-17T15:54:06.890Z
Ugam Kamat
<p>I would like ask 2 questions.</p>

<p><strong>First, as perspective of legacy node(doesn't upgrade software):</strong><br>
When SegWit transactions are transferred, witness data is stripped. It means that there are no signatures to proof the tx inputs in transaction propagated because there are no witness data as described above. How does the legacy node verify these transactions without the witness?</p>

<p><strong>Lastly, as perspective of fresh node (did upgrade):</strong><br>
Regardless of SegWit, the block size can't exceed 1MB. But fresh nodes make a block which is consist of only 1MB transactions and NByte of witness(signature) data. This is very strange point because the block is already full with only transactions but there are some witness data.</p>

<p>Can you give point on my two questions?
I'd like to find which points are wrong in my knowledge.</p>

<transactions><segregated-witness>
How a SegWit transaction is accepted without witness?
Hyunsoo
# How a SegWit transaction is accepted without witness?

(Asked by: username_0 on 2019-11-17)

I would like ask 2 questions.

**First, as perspective of legacy node(doesn't upgrade software):**  
When SegWit transactions are transferred, witness data is stripped. It means that there are no signatures to proof the tx inputs in transaction propagated because there are no witness data as described above. How does the legacy node verify these transactions without the witness?

**Lastly, as perspective of fresh node (did upgrade):**  
Regardless of SegWit, the block size can't exceed 1MB. But fresh nodes make a block which is consist of only 1MB transactions and NByte of witness(signature) data. This is very strange point because the block is already full with only transactions but there are some witness data.

Can you give point on my two questions?
I'd like to find which points are wrong in my knowledge.

**Tags:** transactions, segregated-witness


---

## 1 answers

### Answer by username_1 on 2019-11-17. Score: 1 | Accepted answer

> How legacy node can verify them without the witness?

An example of a SegWit output is: `scriptPubKey: 0 ab68025513c3dbd2f7b92a94e0581f5d50f654e7`. For legacy nodes, this output looks like an anyone can spend output as there are no opcodes or verification. Such outputs do not require any signatures to spend. Thus when a legacy node sees a transaction spending a SegWit output, it does not go looking for any signatures and considers the transaction to be perfectly valid.

> Block size of 1MB

With the SegWit soft-fork, block size got redefined to 4,000,000 Weight Units (WU). In the WU calculation, transaction data (excluding segregated signatures) are multiplied by 4 while segregated signature data are multiplied by just 1. For example, if transaction data (excluding signatures) is 200 bytes and the witness data is 144 bytes, then the transaction has a WU of `(200*4) + (144*1) = 944 WU`. Blocks cannot breach this 4M WU criteria without getting invalidated. If there is a block with 1MB of non-signature data then it's size is 4M WU (1MB\*4). Adding signature data on top of that will breach that threshold.

For legacy nodes, the block size continues to remain at 1 MB as these nodes do not query for the witness data for a SegWit transaction. If a block size exceeded 1MB with transaction data excluding signatures, then it would also exceed the 4M WU criteria as well.

> **Comments:**
> **username_0**: Thanks for awesome replying :) I'd like to clarify your answer in another post. can you join too? (https://bitcoin.stackexchange.com/questions/91761/is-segwit-really-safe-and-reduced)  

---

