OP_CHECKLOCKTIMEVERIFY compara um argumento não negativo da pilha com nLockTime absoluto da transação de gasto e verifica nSequence da entrada. As regras de finalidade depois verificam a elegibilidade temporal real.
nLockTime sozinho adia uma transação específica. CLTV na condição da saída impede contornar o mesmo caminho com outra transação de nLockTime menor; outros caminhos exigem avaliação separada. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Developer Reference — Transactions]
Valor abaixo de 500000000 significa altura de bloco; a partir desse limite, marca temporal. Argumento CLTV e nLockTime devem ter o mesmo tipo; comparar números não basta. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
O argumento deve ser não negativo e no máximo nLockTime. CLTV não consulta o relógio do computador nem pausa o script; uma verificação não satisfeita invalida. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
nSequence da entrada verificada não pode ser 0xffffffff. Isso impede desativar nLockTime por sequences finais; CLTV não exige uma demora relativa não nula específica. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Com nLockTime = 900000 e entrada não final, a primeira altura candidata é 900001, pois finalidade exige nLockTime menor que a altura do bloco. A igualdade do argumento CLTV não altera esse limite. [Bitcoin Core v29.0 — Transaction finality]
Segundo BIP 113, nLockTime temporal é comparado com Median Time Past do bloco anterior, mediana dos tempos dos últimos até 11 blocos. Deve ser estritamente menor; não é uma hora local exata de entrega. [BIP 113 — Median time-past lock-time calculations] [Bitcoin Core v29.0 — Transaction finality]
CLTV não consome o argumento. Em <altura> OP_CHECKLOCKTIMEVERIFY OP_DROP <chave> OP_CHECKSIG, OP_DROP o remove; é um esquema de condição, não uma receita pronta para financiamento. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Um bloqueio temporal sozinho não autoriza o proprietário. A condição de assinatura permanece necessária; outro ramo pode permitir gasto antecipado e o vencimento não envia pagamentos automaticamente. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Developer Reference — Transactions]
CLTV fixa um ponto, não blocos desde a confirmação da saída. CSV com BIP 68 trata da idade da entrada; atrasos de mineração ou reorganizações não garantem uma data fixa. [Bitcoin Core v29.0 — Transaction finality] [Bitcoin Developer Reference — Transactions]
BIP 65 introduziu CLTV como soft fork substituindo OP_NOP2. Verifique caminho completo, tipo de limite, nLockTime, nSequence e taxa; uma instrução ativa não garante confirmação rápida. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core 0.11.2 — BIP 65 release notes]
Para ter uma visão mais completa, leia este verbete junto com CHECKSEQUENCEVERIFY, Bitcoin Script opcode, Timelock, Bitcoin Script. Também há referências a este verbete em Timelock, HTLC, Bitcoin Script opcode, CHECKSEQUENCEVERIFY.