OP_CHECKLOCKTIMEVERIFY porovnává nezáporný argument zásobníku s absolutním nLockTime utrácející transakce a kontroluje nSequence daného vstupu. Skutečnou časovou způsobilost pak ověřují pravidla finality transakce.
Samotné nLockTime odkládá konkrétní transakci. CLTV v podmínce výstupu brání obejít tutéž cestu jinou transakcí s nižším nLockTime; ostatní cesty je nutné posoudit zvlášť. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Developer Reference — Transactions]
Hodnota pod 500000000 znamená výšku bloku, od této hranice časové razítko. Argument CLTV i nLockTime musejí používat stejný typ; pouhé číselné porovnání nestačí. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Argument musí být nezáporný a nejvýše roven nLockTime. CLTV nezjišťuje hodiny počítače ani nepozastaví běh skriptu; při nesplnění kontroly validace selže. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
nSequence právě kontrolovaného vstupu nesmí být 0xffffffff. Tím CLTV brání vypnutí nLockTime pomocí finálních sequence; nevyžaduje konkrétní nenulovou dobu relativního zámku. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Pro nLockTime = 900000 a nefinální vstup je nejdřívější kandidátní výška 900001, protože finalita vyžaduje nLockTime menší než výšku bloku. Splnění CLTV při rovnosti argumentu tuto hranici neposouvá. [Bitcoin Core v29.0 — Transaction finality]
Časový nLockTime se podle BIP 113 porovnává s Median Time Past předchozího bloku, tedy mediánem časů posledních až 11 bloků. Vyžaduje se přísně menší hodnota; nejde o přesný místní čas doručení. [BIP 113 — Median time-past lock-time calculations] [Bitcoin Core v29.0 — Transaction finality]
CLTV svůj argument nespotřebuje. V ukázce <výška> OP_CHECKLOCKTIMEVERIFY OP_DROP <klíč> OP_CHECKSIG jej odstraní OP_DROP; jde o schéma podmínky, nikoli hotový návod k financování. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Časový zámek sám neautorizuje vlastníka. Podpisová podmínka musí zůstat platná; alternativní větev může umožnit dřívější utracení a po vypršení se platba sama neodešle. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Developer Reference — Transactions]
CLTV stanoví pevný bod, nikoli počet bloků od potvrzení výstupu. Pro stáří konkrétního vstupu slouží CSV spolu s BIP 68; prodleva těžby ani reorganizace nezaručují pevné datum. [Bitcoin Core v29.0 — Transaction finality] [Bitcoin Developer Reference — Transactions]
BIP 65 zavedl CLTV jako soft fork nahrazující OP_NOP2. Před použitím ověřte celou cestu, typ hranice, nLockTime, nSequence i poplatek; aktivní opcode není záruka rychlého potvrzení. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core 0.11.2 — BIP 65 release notes]
Pro nejúplnější obraz čtěte toto heslo společně s CHECKSEQUENCEVERIFY, Opcode Bitcoin Scriptu, Timelock, Bitcoin Script. Opačným směrem na něj odkazují také Timelock, HTLC, Opcode Bitcoin Scriptu, CHECKSEQUENCEVERIFY.