Skip to main content

nLockTime | Bitcoin Glossary | Mapping Bitcoin

nLockTime

Protocolo

Also known as: locktime

Campo de transação Bitcoin que impede sua mineração até que uma altura de bloco ou timestamp Unix específico seja atingido, usado em contratos temporais.

Visão Geral

nLockTime é um campo de 4 bytes presente em cada transação Bitcoin que especifica o tempo mais cedo ou a altura de bloco na qual a transação pode ser incluída em um bloco. É um dos recursos originais do Bitcoin, presente desde a primeira versão do software, e serve como bloco de construção fundamental para contratos inteligentes sensíveis ao tempo e canais de pagamento.

Como o nLockTime Funciona

Interpretação do valor nLockTime:

  0                         → Sem bloqueio (válido imediatamente)
  1 a 499.999.999          → Bloqueio por altura de bloco
  500.000.000 e acima      → Bloqueio por timestamp Unix

Exemplos:
  nLockTime = 800000       → Válido no bloco 800.000 ou posterior
  nLockTime = 1700000000   → Válido após 14 Nov 2023 (tempo Unix)
  nLockTime = 0            → Válido imediatamente

Interação com nSequence

Para que o nLockTime seja aplicado, pelo menos uma entrada na transação deve ter um valor nSequence menor que 0xFFFFFFFF. Se todas as entradas tiverem nSequence definido para o valor máximo, o nLockTime é ignorado e a transação pode ser minerada imediatamente. Essa interação fazia parte do design original de Satoshi para transações atualizáveis.

Casos de Uso

  • Canais de pagamento: As primeiras versões dos canais de pagamento usavam nLockTime para criar transações de reembolso que só podiam ser transmitidas após um tempo limite
  • Planejamento de herança: Criação de transações bloqueadas no tempo que transferem fundos para herdeiros após uma determinada data
  • Lightning Network: Usado em combinação com outros bloqueios temporais para caminhos de tempo limite de HTLC

Conceitos Errôneos Comuns

nLockTime não impede que uma transação seja criada ou assinada — apenas impede que seja minerada. Uma transação bloqueada no tempo pode ser construída, assinada e compartilhada a qualquer momento; ela simplesmente não será aceita em um bloco até que a condição especificada seja atendida. Além disso, nLockTime fornece um bloqueio absoluto, enquanto CSV (CheckSequenceVerify) fornece um bloqueio relativo baseado na idade da entrada sendo gasta.