Stripped Size vs. Total Size
Stripped Size vs. Total Size
One of the most elegant parts of the SegWit upgrade was its backward compatibility. To achieve this, Bitcoin nodes actually handle two different versions of the same transaction size.
1. Total Size
The Total Size is the full count of every single byte in the transaction, including the SegWit Marker and Flag bytes and the entire Witness stack.
-
Used By: Modern SegWit-aware nodes.
-
Purpose: Full validation of signatures and network propagation.
2. Stripped Size (Base Size)
The Stripped Size is the size of the transaction after removing all witness data.
-
Used By: Legacy nodes (pre-2017 software).
-
Purpose: Ensuring the block still appears to be under 1MB to old nodes.
3. The 1MB Compatibility Trick
Because witness data is "stripped" out before being sent to old nodes, a block that actually contains 2.5MB of data will only look like 0.9MB to an old node. This is why SegWit was a Soft Fork—it didn't require old nodes to upgrade to stay on the network; they just see transactions as having "empty" signatures.
4. Size Metrics Comparison
| Metric | Includes Witness? | Node Compatibility |
|---|---|---|
| Total Size | Yes | SegWit Nodes |
| Stripped Size | No | Legacy Nodes |
| Weight | Yes (Discounted) | Consensus Rules |
5. Identifying Bloat
By comparing Stripped Size to Total Size, analysts can determine how "witness-heavy" a transaction is.
-
A Taproot transaction has a very small Stripped Size but can have a large Total Size if it includes complex scripts.
-
An Inscription (like Ordinals) stores data entirely in the Witness section, leading to a massive gap between Stripped Size and Total Size.
In the final section, we will build a Python Weight Calculator.
TeachMeBitcoin is an ad-free, open-source educational repository curated by a passionate team of Bitcoin researchers and educators for public benefit. If you found our articles helpful, please consider supporting our hosting and ongoing content updates with a clean donation: