OP_CHECKSEQUENCEVERIFY по BIP 112 проверяет аргумент скрипта относительно nSequence входа. BIP 68 затем обеспечивает соответствующий возраст выхода; это связанные проверки, не автоматический платёж.
CSV ограничивает nSequence расходуемого входа. Сам он не измеряет возраст UTXO; BIP 68 использует историю подтверждения, чтобы предотвратить преждевременное включение. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [BIP 68 — Relative lock-time]
Для обычного аргумента без флага отключения CSV требует версию транзакции не ниже 2 и снятый бит 31 nSequence. Отрицательный аргумент или несовместимая sequence приводят к отказу. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Бит 22 различает блоки и время. Установленный бит означает единицу 512 секунд; время кодируют шагами 512 секунд. Типы аргумента и nSequence должны совпадать. [BIP 68 — Relative lock-time]
Нижние 16 битов кодируют задержку с маской 0x0000ffff. CSV сравнивает этот диапазон вместе с типом, а не порядок целых немаскированных чисел nSequence. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Script interpreter]
Если выход подтверждён при H = 900000 и задержка равна 10 блокам, первая кандидатная высота H + 10 = 900010. Девяти блоков недостаточно; число не гарантирует точных минут. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]
Начало времени — Median Time Past блока перед подтверждением выхода. Его сравнивают с MTP перед кандидатным блоком; код 2 означает минимум 1024 секунды между медианами, не местными часами. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]
Нулевая задержка не добавляет ожидания, но обычный CSV сохраняет остальные проверки. Если неотрицательный аргумент сам ставит бит 31, CSV действует как NOP; аргумент не задаёт относительную временную блокировку. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
У каждого входа своё подтверждение и sequence; все применимые блокировки транзакции должны выполняться. Реорганизация может сдвинуть исходное подтверждение, поэтому прежняя допустимость не необратима. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]
CSV оставляет аргумент на стеке, часто далее идёт OP_DROP. Подписи и другие ветви определяют разрешение; время не восстанавливает потерянный ключ и не исключает ранний альтернативный путь. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Developer Reference — Transactions]
BIP 112 ввёл CSV вместо OP_NOP3 совместно с BIP 68/113. После задержки транзакцию ещё нужно доставить и подтвердить; комиссии, доступность данных и состояние цепочки важны. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core 0.12.1 — BIP 68/112/113 release notes]
Для полной картины прочитайте эту статью вместе с CHECKLOCKTIMEVERIFY, Bitcoin Script opcode, Timelock, Bitcoin Script. На эту статью также ссылаются Подтверждение, Timelock, HTLC, Bitcoin Script opcode.