Skip to main content

Condición de Gasto | Bitcoin Glossary | Mapping Bitcoin

Condición de Gasto

Protocolo

Also known as: encumbrance, unlock condition

Requisito criptográfico para gastar un UTXO Bitcoin: firma, timelock, hash o combinación de condiciones definidas en el script de bloqueo del output.

Descripción General

Cada UTXO de Bitcoin está bloqueado por una condición de gasto — un conjunto de requisitos criptográficos y lógicos que deben cumplirse antes de que el bitcoin pueda transferirse. Estas condiciones están codificadas en el script de bloqueo de la salida (también llamado scriptPubKey) y se satisfacen proporcionando el script de desbloqueo correcto (scriptSig) o datos de testigo en una transacción de gasto.

Condiciones de Gasto Comunes

Bitcoin admite una variedad de condiciones de gasto, desde simples hasta muy complejas:

  • Firma única: La condición más común, que requiere una firma digital válida de una clave privada.
  • Multifirma: Requiere M de N firmas (p. ej., 2 de 3) para autorizar el gasto.
  • Bloqueo de hash: Requiere revelar una preimagen que hace hash a un valor especificado, utilizado en HTLCs.
  • Timelock: Impide el gasto hasta que se alcance una cierta altura de bloque o marca de tiempo.
  • Combinación: Múltiples condiciones pueden combinarse usando la lógica del Script de Bitcoin (AND, OR, IF/ELSE).

Modelo de Ejecución de Script

Script de Bloqueo (en UTXO):
  OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

Script de Desbloqueo (en tx gastadora):
  <firma> <pubKey>

Ejecución Combinada:
  Pila: [firma, pubKey]
    -> OP_DUP     -> [firma, pubKey, pubKey]
    -> OP_HASH160 -> [firma, pubKey, pubKeyHash]
    -> <hash>     -> [firma, pubKey, pubKeyHash, hashEsperado]
    -> OP_EQUALVERIFY -> [firma, pubKey]  (hashes coinciden)
    -> OP_CHECKSIG    -> [TRUE]           (firma válida)

Taproot y Condiciones Avanzadas

Con Taproot, las condiciones de gasto ganaron flexibilidad significativa. Una salida Taproot puede gastarse mediante un gasto por ruta de clave simple (firma Schnorr única) o un gasto por ruta de script que revela una de potencialmente muchas condiciones de gasto alternativas ocultas en un árbol de Merkle. Esto permite que las condiciones complejas permanezcan privadas a menos que se usen realmente.

Casos Límite

  • Si una condición de gasto es demasiado compleja, el script puede exceder los límites de tamaño o requerir cómputo excesivo, haciendo el UTXO efectivamente imposible de gastar.
  • Las salidas con el opcode OP_RETURN son comprobablemente no gastables por diseño, utilizadas para incrustar datos en la cadena.