Separating witness data
SegWit moves authorization data into a separate witness structure while committing to it in the block. Legacy nodes can process the compatible base transaction view.
For SegWit spends, changing witness data does not change the traditional transaction identifier, addressing the main form of third-party transaction malleability.
Weight and capacity
Blocks are limited by weight units rather than a simple byte count. Witness bytes receive a lower weight than non-witness bytes, encouraging efficient modern output types without removing resource limits.
Versioned programs
Witness programs introduced a versioned framework for future spending rules. Native SegWit addresses use Bech32, while wallet compatibility and backup hygiene still matter operationally.
SegWit and Taproot
Two upgrades, different improvements
Compare witness separation with Taproot's Schnorr signatures and key-path or script-path spending.
Separate witness
SegWit moves signature data into a witness structure and fixes legacy transaction malleability for SegWit spends.
Key takeaways
- Witness data is separated but still committed by the block.
- SegWit fixes third-party malleability for SegWit spends.
- Block weight prices witness and base data differently.
- Witness versions provide an upgrade framework.
Lesson recap
Check what you learned
Reveal each model answer, then honestly mark whether you understood it or need another review.
1 of 3
Recall
Why can a SegWit transaction have both a txid and a wtxid?
References

