OP_CHECKLOCKTIMEVERIFY порівнює невід'ємний аргумент стека з абсолютним nLockTime транзакції витрачання й перевіряє nSequence входу. Фактичну часову допустимість далі перевіряють правила фінальності транзакції.
Сам nLockTime затримує конкретну транзакцію. CLTV в умові виходу не дає обійти той самий шлях іншою транзакцією з нижчим nLockTime; інші шляхи оцінюють окремо. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Developer Reference — Transactions]
Значення нижче 500000000 означає висоту блоку, від цієї межі — часову мітку. Аргумент CLTV та nLockTime мають бути одного типу; порівняння чисел недостатньо. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Аргумент має бути невід'ємним і не більшим за nLockTime. CLTV не читає годинник комп'ютера й не призупиняє скрипт; невиконана перевірка означає відмову. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
nSequence перевірюваного входу не може бути 0xffffffff. Це заважає вимкнути nLockTime фінальними sequence; CLTV не вимагає певної ненульової відносної затримки. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
За nLockTime = 900000 і нефінального входу найраніша кандидатна висота — 900001, бо фінальність вимагає nLockTime нижче висоти блоку. Рівність аргументу в CLTV цю межу не змінює. [Bitcoin Core v29.0 — Transaction finality]
За BIP 113 часовий nLockTime порівнюють із Median Time Past попереднього блоку, медіаною часу останніх до 11 блоків. Значення має бути строго меншим; це не точний місцевий час доставки. [BIP 113 — Median time-past lock-time calculations] [Bitcoin Core v29.0 — Transaction finality]
CLTV не споживає аргумент. У <висота> OP_CHECKLOCKTIMEVERIFY OP_DROP <ключ> OP_CHECKSIG його прибирає OP_DROP; це схема умови, а не готовий рецепт фінансування. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Часовий замок сам не авторизує власника. Умова підпису має зберігатися; інша гілка може дозволяти раннє витрачання, а сплив строку не надсилає платіж автоматично. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Developer Reference — Transactions]
CLTV задає фіксовану точку, а не кількість блоків після підтвердження виходу. CSV із BIP 68 визначає вік входу; затримки майнінгу чи реорганізації не гарантують сталої дати. [Bitcoin Core v29.0 — Transaction finality] [Bitcoin Developer Reference — Transactions]
BIP 65 запровадив CLTV як soft fork замість OP_NOP2. Перевірте весь шлях, тип межі, nLockTime, nSequence та комісію; активна інструкція не гарантує швидкого підтвердження. [BIP 65 — OP_CHECKLOCKTIMEVERIFY] [Bitcoin Core 0.11.2 — BIP 65 release notes]
Для повної картини прочитайте також CHECKSEQUENCEVERIFY, Bitcoin Script opcode, Timelock, Bitcoin Script. На цю статтю також посилаються Timelock, HTLC, Bitcoin Script opcode, CHECKSEQUENCEVERIFY.