Locktime
Impede uma transação de ser minerada antes de uma altura ou tempo
O campo locktime permite impedir que uma transação seja minerada até depois de uma altura de bloco ou um tempo específico.
Uma transação com um locktime no futuro também não será aceita nem retransmitida pelos nós, então você precisa armazená-la localmente até que o locktime tenha passado. Em outras palavras, definir um locktime é o equivalente a pós-datar um cheque.
Uso
Como o locktime funciona?
O campo locktime tem 4 bytes e pode conter valores entre 0 (0x00000000) e 4294967295 (0xffffffff). Você define uma altura de bloco ou um tempo usando faixas diferentes de valores:
| Valor | Significado |
|---|---|
| 0 a 499999999 | Altura de bloco |
| 500000000 a 4294967295 | Tempo Unix |
Isso é conhecido como "locktime absoluto", pois você define uma altura ou tempo específico no futuro. Também é possível definir um locktime relativo.
Para o campo locktime ser habilitado, pelo menos um dos valores de sequence das entradas precisa ser 0xfffffffe ou menor. Se todos os valores de sequence forem o máximo 0xffffffff, a transação é considerada "final" e o locktime fica desabilitado.
Altura
0 a 499999999
Definindo o locktime entre 0 e 499999999, você especifica que a transação só pode ser minerada após uma altura específica. (É uma faixa mais que suficiente: a blockchain só deve chegar à altura 499.999.999 daqui a uns 9.488 anos.)
Tempo
500000000 a 4294967295
Definindo o locktime entre 500000000 e 4294967295, você especifica que a transação só pode ser minerada após um tempo específico (em Unix Time):
A restrição de tempo é então baseada no campo de tempo do cabeçalho do bloco (controlado pelo minerador, e geralmente próximo do tempo atual).
Essa faixa permite definir um locktime entre 05 de novembro de 1985 e 07 de fevereiro de 2106.