OP_CHECKLOCKTIMEVERIFY compara un argumento no negativo de pila con nLockTime absoluto de la transacción de gasto y comprueba nSequence de esa entrada. Las reglas de finalidad comprueban después la elegibilidad temporal real.
nLockTime por sí solo retrasa una transacción concreta. CLTV en la salida impide eludir esa misma ruta con otra transacción de nLockTime inferior; otras rutas se evalúan aparte. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Developer Reference — Transactions]
Un valor menor que 500000000 indica altura; desde ese umbral indica tiempo. Argumento CLTV y nLockTime deben tener el mismo tipo; comparar números no basta. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
El argumento debe ser no negativo y no superar nLockTime. CLTV no consulta el reloj del ordenador ni pausa el script; una comprobación incumplida invalida. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
La entrada comprobada no puede tener nSequence = 0xffffffff. Así se evita desactivar nLockTime mediante sequence finales; CLTV no exige una demora relativa no nula concreta. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Con nLockTime = 900000 y entrada no final, la primera altura candidata es 900001: la finalidad exige nLockTime menor que la altura del bloque. Igualar el argumento en CLTV no cambia ese límite. [Bitcoin Core v29.0 — Transaction finality]
Según BIP 113, nLockTime temporal se compara con Median Time Past del bloque anterior, mediana de hasta los últimos 11 tiempos de bloque. Debe ser estrictamente menor; no es una hora local exacta de entrega. [BIP 113 — Median time-past lock-time calculations] [Bitcoin Core v29.0 — Transaction finality]
CLTV no consume el argumento. En <altura> OP_CHECKLOCKTIMEVERIFY OP_DROP <clave> OP_CHECKSIG lo elimina OP_DROP; es un esquema de condición, no una receta lista para financiar. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
El bloqueo temporal solo no autoriza al propietario. La condición de firma sigue vigente; otra rama puede permitir gastar antes y el vencimiento no envía un pago automáticamente. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Developer Reference — Transactions]
CLTV fija un punto, no bloques desde la confirmación de la salida. CSV con BIP 68 aborda la edad de una entrada; demoras mineras o reorganizaciones no garantizan una fecha fija. [Bitcoin Core v29.0 — Transaction finality] [Bitcoin Developer Reference — Transactions]
BIP 65 introdujo CLTV como soft fork que reemplaza OP_NOP2. Revise ruta completa, tipo de umbral, nLockTime, nSequence y comisión; una operación activa no garantiza confirmación rápida. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core 0.11.2 — BIP 65 release notes]
Para obtener la imagen más completa, lee esta entrada junto con CHECKSEQUENCEVERIFY, Opcode de Bitcoin Script, Timelock, Bitcoin Script. También enlazan con esta entrada Timelock, HTLC, Opcode de Bitcoin Script, CHECKSEQUENCEVERIFY.