Para el tamaño B sin witness y el tamaño completo T, W = 3 × B + T. El cálculo incluye todo el bloque serializado, cabecera y coinbase incluidas.
B es el tamaño de serialización original sin witness y T el tamaño completo. W = 3 × B + T combina ambos valores y produce WU, no bytes. [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]
Un byte base cuesta 4 WU. Un byte añadido por la serialización witness cuesta 1 WU, incluidos marker, flag y otros elementos serializados de esa parte. [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]
BIP 141 exige W ≤ 4 000 000 WU. La igualdad es válida; ni más comisión, ni más Proof of Work, ni la aprobación del minero permiten excederlo. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]
Los valores ilustrativos B = 500 000 y T = 2 500 000 dan W = 4 000 000 WU. B = 750 000 y T = 1 750 000 dan igual peso; un bloque lleno no tiene tamaño fijo de 4 MB. [BIP 141 — Segregated Witness]
El bloque incluye una cabecera de 80 bytes, el número codificado de transacciones y coinbase. Cabecera y contador son datos base; no basta sumar los pesos de las demás transacciones. [Bitcoin Developer Reference — Block chain]
El vsize de cada transacción redondea W / 4 hacia arriba. Sumar esos tamaños redondeados además omite parte de la sobrecarga del bloque y no calcula exactamente el peso de consenso. [BIP 141 — Segregated Witness] [Bitcoin Developer Reference — Block chain]
Un Full Node sigue verificando firmas y scripts pertinentes. Witness consume transmisión y cómputo; su menor peso no significa costo cero ni verificación opcional. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — validation]
BIP 141 también limita a 80 000 las unidades de costo de operaciones de firma. No es un simple conteo de todas las firmas; depende del tipo de script y las versiones nuevas tienen otros límites propios. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits]
Un minero puede elegir un peso objetivo menor por razones operativas. Su plantilla o la política local de un nodo no cambian el máximo de consenso ni garantizan incluir una transacción concreta. [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]
getblock de Bitcoin Core v29.0 devuelve size, strippedsize y weight. chainwork es distinto: se refiere al trabajo acumulado de la cadena, no al peso en bytes de sus bloques. [Bitcoin Developer Reference — Block chain] [Bitcoin Core — getblock RPC]
Para obtener la imagen más completa, lee esta entrada junto con Byte virtual, Datos witness, SegWit, Guerra del tamaño de bloque. También enlazan con esta entrada Byte virtual, Datos witness.