¿Qué es una transacción Bitcoin en bruto?
Una transacción Bitcoin en bruto es la serialización en hex de la versión, las entradas (txid anterior e índice de salida, scriptSig, sequence), las salidas (valor en satoshis y scriptPubKey), los datos de witness SegWit opcionales y el locktime. El txid es el doble SHA-256 de la serialización sin los datos de witness, y un PSBT (BIP-174) envuelve una transacción sin firmar con los metadatos que necesitan los firmantes.
Cómo leer el resultado
- Las entradas muestran el outpoint anterior (txid:índice), el tipo de gasto y la dirección derivada. El sequence indica si se señaliza RBF.
- Las salidas muestran valor, tipo de script y dirección. Las salidas OP_RETURN muestran su carga como texto cuando es imprimible, y si no, como hex.
- El locktime se interpreta como altura de bloque por debajo de 500.000.000 y como marca de tiempo Unix por encima.
- Firmada / sin firmar se determina según si cada entrada lleva un scriptSig o witness.
Tipos de script de salida
| Tipo | Patrón de scriptPubKey | Dirección | Datos de gasto |
|---|---|---|---|
| P2PKH | OP_DUP OP_HASH160 <20 bytes> OP_EQUALVERIFY OP_CHECKSIG | 1… | scriptSig: firma + clave pública |
| P2SH | OP_HASH160 <20 bytes> OP_EQUAL | 3… | el scriptSig termina con el redeem script |
| P2WPKH | OP_0 <20 bytes> | bc1q… (42 caracteres) | witness: firma, clave pública |
| P2WSH | OP_0 <32 bytes> | bc1q… (62 caracteres) | el witness termina con el witness script |
| P2TR | OP_1 <32 bytes> | bc1p… | witness: firma de 64 bytes (key path) |
| OP_RETURN | OP_RETURN <data> | ninguna, no gastable | n/a |
Ejemplo práctico: weight y vsize
Una transacción con una entrada P2WPKH y dos salidas P2WPKH tiene 113 bytes de datos no witness (versión, entrada, dos salidas, locktime) y unos 110 bytes de datos de witness (marcador, flag, una firma de 72 bytes y una clave pública de 33 bytes). Weight = 113 × 4 + 110 = 562 unidades de peso, así que vsize = ⌈562 ÷ 4⌉ = 141 vbytes. A 10 sat/vB la comisión es de 1.410 sats. El mismo pago desde una entrada legacy P2PKH ocupa unos 226 bytes, todos contados a peso completo, para 226 vbytes.
De dónde sale el hex en bruto
Bitcoin Core: getrawtransaction <txid> o createrawtransaction. Electrum y Sparrow: exportar la transacción como hex. Exploradores: mempool.space y blockstream.info exponen /api/tx/<txid>/hex. Las carteras de hardware muestran el PSBT que se les pide firmar.
Valida una dirección por sí sola con el validador de direcciones Bitcoin, o inspecciona cadenas bech32 con el decodificador bech32.