Home › Glossary › Block weight

Block weight

Also called: weight units, WU, block weight limit, 4 million weight units, block size limit.

Block weight is the SegWit-era measure of block size: non-witness bytes count 4 units and witness bytes 1, with a limit of 4,000,000 weight units.

Block weight is how Bitcoin has limited the size of blocks since SegWit. BIP 141 defines it as base size × 3 + total size, where base size is the block without witness data and total size includes it. The consensus rule is that block weight must be at most 4,000,000 weight units (WU).

How weight works

The formula is the same as counting:

  • every non-witness byte (headers, inputs, outputs, amounts) as 4 WU;
  • every witness byte (signatures, public keys, witness scripts) as 1 WU.

Transactions are weighed the same way, and dividing by 4 gives virtual bytes, so the limit equals 1,000,000 vB. A block made only of legacy transactions still can't exceed 1,000,000 bytes, the old limit, which is why the change was a soft fork. Blocks with lots of witness data can be bigger in raw bytes, up to just under 4 MB in theory. BIP 141 also changed the signature operation limit to 80,000, with legacy sigops counted at four times their old cost.

Why weight replaced the 1 MB limit

BIP 141 points out that signatures are needed to validate the chain but not to work out its state (which coins exist and who owns them). Counting witness bytes at a discount:

  • raised capacity without a hard fork;
  • kept old nodes, which never see witness data, within the 1,000,000-byte limit they enforce; and
  • made spending SegWit outputs cheaper than spending equivalent legacy ones.

Earlier proposals to raise the byte limit directly by hard fork, such as BIP 101 and BIP 109, were not adopted. BIP 180 proposed a compact fraud proof that light clients could use to detect an overweight block.

BIPs that define Block weight

  • BIP 141 (SegWit): Segregated Witness (Consensus layer): Deployed. Defines Segregated Witness (SegWit), which moves signatures into a separate "witness" section of each transaction while remaining compatible with older nodes. This fixed transaction malleability,…
  • BIP 101: Increase maximum block size: Closed. Proposed replacing the fixed 1 MB block size limit with a limit that grows automatically on a predictable schedule over time. Supporters argued it would let Bitcoin handle more transactions as…
  • BIP 109: Two million byte size limit with sigop and sighash limits: Closed. Proposed doubling the block size limit from 1 MB to 2 MB, alongside new caps on signature checks and data hashing to stop specially crafted blocks from overloading nodes. It was associated with the…
  • BIP 180: Block size/weight fraud proof: Closed. Describes a compact "fraud proof" that lets lightweight wallets learn that a block breaks Bitcoin's size or weight limit without downloading the whole block. This would help light clients avoid…

Related terms

  • Virtual byte (vbyte): A virtual byte (vbyte, vB) is the unit of Bitcoin transaction size since SegWit: weight divided by four. Fee rates are quoted in sat/vB.
  • SegWit (Segregated Witness): SegWit (Segregated Witness) is the 2017 soft fork that moved signatures into a separate witness, fixing malleability and introducing block weight.
  • Witness: The witness is the part of a SegWit transaction that holds signatures and scripts, kept out of the txid so it can't be changed to alter the transaction ID.
  • Hard fork: A hard fork is a change to Bitcoin's consensus rules that makes previously invalid blocks valid, so nodes that don't upgrade split off the chain.

Learn more

Guides