Skip to main content

nLockTime | Bitcoin Glossary | Mapping Bitcoin

nLockTime

Protocolo

Also known as: locktime

Campo en transacciones Bitcoin que define la altura de bloque o tiempo mínimo antes del cual la transacción no puede ser incluida en la blockchain.

Descripción General

nLockTime es un campo de 4 bytes presente en cada transacción de Bitcoin que especifica el tiempo más temprano o la altura de bloque en la que la transacción puede ser incluida en un bloque. Es una de las características originales de Bitcoin, presente desde la primera versión del software, y sirve como bloque de construcción fundamental para contratos inteligentes sensibles al tiempo y canales de pago.

Cómo Funciona nLockTime

Interpretación del valor nLockTime:

  0                         → Sin bloqueo (válido inmediatamente)
  1 a 499.999.999          → Bloqueo por altura de bloque
  500.000.000 y superior   → Bloqueo por marca de tiempo Unix

Ejemplos:
  nLockTime = 800000       → Válido en el bloque 800.000 o posterior
  nLockTime = 1700000000   → Válido después del 14 Nov 2023 (tiempo Unix)
  nLockTime = 0            → Válido inmediatamente

Interacción con nSequence

Para que nLockTime sea aplicado, al menos una entrada en la transacción debe tener un valor nSequence menor que 0xFFFFFFFF. Si todas las entradas tienen nSequence configurado al valor máximo, nLockTime se ignora y la transacción puede ser minada inmediatamente. Esta interacción fue parte del diseño original de Satoshi para transacciones actualizables.

Casos de Uso

  • Canales de pago: Las primeras versiones de los canales de pago usaban nLockTime para crear transacciones de reembolso que solo podían transmitirse después de un tiempo de espera
  • Planificación de herencias: Crear transacciones bloqueadas en el tiempo que transfieren fondos a herederos después de una fecha determinada
  • Lightning Network: Usado en combinación con otros bloqueos temporales para rutas de tiempo de espera de HTLC

Conceptos Erróneos Comunes

nLockTime no impide que una transacción sea creada o firmada — solo impide que sea minada. Una transacción bloqueada en el tiempo puede construirse, firmarse y compartirse en cualquier momento; simplemente no será aceptada en un bloque hasta que se cumpla la condición especificada. Además, nLockTime proporciona un bloqueo absoluto, mientras que CSV (CheckSequenceVerify) proporciona un bloqueo relativo basado en la antigüedad de la entrada que se gasta.