Witness es un campo de elementos de pila para cada entrada. Su significado depende de la versión y condición de la salida gastada; no es automáticamente un script ejecutable por separado.
Cada entrada tiene su lista de elementos en la serialización witness. La firma verifica un mensaje definido por la versión de script correspondiente; tener datos no demuestra validez. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
txid se calcula con la serialización original sin witness. wtxid incluye la serialización completa con witness; sin witness los identificadores coinciden. [BIP 141 — Segregated Witness]
El programa witness es una condición versionada en la salida gastada. Witness se aporta en la transacción posterior que la gasta; no es el mismo campo ni un respaldo del conjunto UTXO. [BIP 141 — Segregated Witness]
SegWit nativo versión 0 exige scriptSig vacío. En la forma encapsulada en P2SH, scriptSig introduce el programa witness; la prueba de gasto permanece en witness. [BIP 141 — Segregated Witness]
P2WPKH aporta firma y clave pública. En P2WSH el último elemento es witnessScript, cuyo hash debe coincidir con el programa; los elementos anteriores forman la pila inicial. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
Tras retirar annex si existe, Taproot distingue un solo elemento de firma para la ruta de clave y una ruta de script con script y bloque de control. Las reglas de versión cero no se trasladan mecánicamente a versión 1. [BIP 341 — Taproot]
BIP 141 compromete witness mediante un árbol wtxid y un compromiso en coinbase. Coinbase usa wtxid cero en ese árbol; el compromiso combina la raíz con un valor reservado de 32 bytes. [BIP 141 — Segregated Witness]
Cambiar solo witness no cambia txid. La separación no garantiza inmutabilidad de todos los demás campos o combinaciones de entradas; la prueba alterada debe seguir validándose. [BIP 141 — Segregated Witness] [Bitcoin Core — Segregated Witness benefits]
Los bytes añadidos por serialización witness aportan 1 WU frente a 4 WU del byte base. Un Full Node aún los necesita para la validación pertinente; no son datos gratuitos fuera de cadena. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — Script interpreter]
Witness puede revelar públicamente firma, clave pública o rama de script utilizada. No es almacenamiento cifrado, no está destinado a guardar claves privadas ni sustituye Seed Phrase o respaldos de cartera. [BIP 341 — Taproot] [Bitcoin Developer Reference — Transactions]
Para obtener la imagen más completa, lee esta entrada junto con SegWit, Peso de bloque, Bitcoin Script, Taproot. También enlazan con esta entrada Byte virtual, Peso de bloque.