Block Weight & The 4:1 Witness Discount
Block Weight & The 4:1 Witness Discount
Rather than executing a risky hard fork to increase the raw 1 MB block size limit, SegWit introduced a new mathematical metric called Block Weight, measured in Weight Units (WU).
By redesigning how block capacity is calculated, SegWit effectively increased Bitcoin's transaction throughput while keeping UTXO storage costs sustainable.
⚖️ Defining Block Weight
Under SegWit rules, the strict 1,000,000-byte limit was replaced with an absolute block weight limit:
$$\text{Maximum Block Weight} = 4,000,000 \text{ WU}$$
For any transaction, its overall weight in Weight Units is calculated using a dual-factor formula:
$$\text{Transaction Weight} = (\text{Base Size} \times 3) + \text{Total Size}$$
The Variables Explained:
-
Base Size (bytes): The size of the transaction excluding all witness data (metadata, inputs, outputs, amounts, and legacy scriptSigs).
-
Total Size (bytes): The complete physical size of the transaction including all witness data (signatures and public keys).
Mathematical Proof of the 4:1 Witness Discount
We can rewrite the Weight formula to isolate the non-witness bytes and the witness bytes.
Let $\text{Base}$ represent non-witness bytes, and let $\text{Witness}$ represent witness bytes. Since $\text{Total Size} = \text{Base} + \text{Witness}$:
$$\text{Weight} = (\text{Base} \times 3) + (\text{Base} + \text{Witness})$$
$$\text{Weight} = 4 \cdot \text{Base} + \text{Witness}$$
This algebraic expansion reveals the core economic engine of SegWit:
-
Every non-witness byte contributes exactly 4 Weight Units to the block capacity.
-
Every witness byte contributes only 1 Weight Unit to the block capacity.
This mathematically establishes a 4:1 witness discount. Because signatures are four times cheaper than output scripts, transactions with large signatures (such as complex multisig scripts) are heavily incentivized.
Scaling the Virtual Block Size (vByte)
To make fee estimations consistent between legacy and SegWit transactions, wallets measure transaction sizes in Virtual Bytes (vBytes):
$$1 \text{ vByte} = 4 \text{ Weight Units}$$
$$\text{Transaction vSize} = \frac{\text{Transaction Weight}}{4}$$
Real-World Capacity Limits
Because witness data occupies a substantial portion of any transaction, this discount effectively expands Bitcoin's on-chain capacity:
-
Standard Tx Mix: Typically yields a virtual block size of 1.6 MB to 2.2 MB of raw transaction data.
-
Extreme Witness Mix: If a block is packed with transactions containing massive witness payloads (such as large multisig spends or inscriptions), the physical block size can scale up to 4.0 MB on-chain, while still strictly satisfying the 4,000,000 WU limits!
-
Legacy Node Safety: Because legacy nodes are stripped of the witness data before blocks are relayed to them, they see the block size as strictly under 1 MB, ensuring they never reject the block.
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: