Skip to main content

Bloqueo Temporal | Bitcoin Glossary | Mapping Bitcoin

Bloqueo Temporal

Protocolo

Also known as: time lock, CLTV, CSV

Restricción en Bitcoin que impide gastar un UTXO hasta un tiempo o bloque definidos. Los mecanismos CLTV, CSV y nSequence son esenciales para Lightning.

Descripción General

Los bloqueos temporales son un bloque de construcción fundamental en el sistema de scripting de Bitcoin que restringe cuándo se puede gastar un UTXO. Al codificar condiciones basadas en el tiempo en las condiciones de gasto, los bloqueos temporales habilitan una amplia gama de aplicaciones que incluyen canales de pago, HTLCs, vaults y mecanismos de recuperación con retraso temporal.

Tipos de Bloqueos Temporales

Bitcoin admite cuatro mecanismos distintos de bloqueo temporal en dos dimensiones:

                   Nivel de transacción   Nivel de script
                   (en campos tx)         (en Script)
                ┌───────────────────┬───────────────────┐
   Absoluto     │ nLockTime         │ OP_CLTV           │
   (tiempo fijo │ (BIP-original)    │ (BIP65)           │
    o altura)   │                   │                   │
                ├───────────────────┼───────────────────┤
   Relativo     │ nSequence         │ OP_CSV            │
   (tiempo desde│ (BIP68)           │ (BIP112)          │
    confirmación)│                  │                   │
                └───────────────────┴───────────────────┘

Bloqueos Temporales Absolutos

  • nLockTime: Un campo a nivel de transacción que impide que la transacción sea válida antes de una altura de bloque o marca de tiempo Unix especificada.
  • OP_CHECKLOCKTIMEVERIFY (CLTV): Un opcode de script (BIP65) que hace que una salida no sea gastable hasta un tiempo o altura de bloque absolutos, aplicado dentro del script de bloqueo en sí.

Bloqueos Temporales Relativos

  • nSequence (BIP68): Un campo por entrada que codifica un tiempo mínimo (en bloques o intervalos de 512 segundos) que debe pasar después de que se confirme el UTXO referenciado.
  • OP_CHECKSEQUENCEVERIFY (CSV): Un opcode de script (BIP112) que aplica bloqueos temporales relativos dentro del script, habilitando salidas que no se pueden gastar hasta que haya pasado un cierto número de bloques desde que se confirmó el UTXO.

Aplicaciones

  • Lightning Network: Los bloqueos temporales son esenciales para los HTLCs, asegurando que los pagos puedan ser reembolsados si no se reclaman dentro de una ventana.
  • Vaults: Las rutas de gasto con bloqueo temporal crean una ventana de recuperación para cancelar transacciones no autorizadas.
  • Planificación de herencia: Los scripts con bloqueo temporal pueden liberar bitcoin a los herederos después de un período específico de inactividad.

Casos Límite

  • Los valores de nLockTime inferiores a 500,000,000 se interpretan como alturas de bloque; los valores iguales o superiores a ese umbral se interpretan como marcas de tiempo Unix. Esta interpretación dual puede causar confusión si no se maneja cuidadosamente.
  • Los bloqueos temporales relativos solo comienzan a contar después de que el UTXO referenciado se confirme en un bloque, no desde cuando se crea la transacción de gasto.