The shift from sat/byte to sat/vB happened with the activation of Segregated Witness (SegWit) in August 2017. SegWit restructured how transaction data is stored, creating a new measure — the virtual byte — to keep fees fair between old and new transaction formats.
What Is a Virtual Byte?
A virtual byte (vbyte or vB) is a unit derived from transaction weight. Transaction weight is calculated as: non-witness data × 4 + witness data × 1. Then virtual size = weight ÷ 4. This formula gives witness (signature) data a 75% discount compared to regular data, incentivizing SegWit adoption.
Why the Discount?
Signatures in Bitcoin transactions are large — they can account for 40–60% of transaction size. SegWit moves signatures to a separate 'witness' data structure. By discounting witness data, block capacity effectively increases: you can fit more economic transfers in the same block weight limit.
Sat/byte vs Sat/vB
For legacy (non-SegWit) transactions, sat/byte and sat/vB are identical — there is no witness data. For native SegWit transactions, sat/vB is lower than sat/byte because the vbyte count is smaller than the raw byte count. Always use sat/vB when comparing fees across transaction types.
Taproot and Beyond
Taproot (activated November 2021) further optimizes transaction efficiency. A single-key Taproot spend is about 111 vbytes vs 141 vbytes for P2WPKH. Multi-party Taproot transactions can batch complex smart contract logic into a single signature, dramatically reducing sat/vB costs for advanced use cases.
Understanding satoshi per byte (sat/vB) is the key to efficient Bitcoin transactions. Set your fee rate based on mempool conditions, use SegWit or Taproot addresses to reduce transaction size, and never pay more than the market demands.
Continue reading: Bitcoin Mempool Fee Guide