BIP 112 の OP_CHECKSEQUENCEVERIFY はスクリプト引数を入力の nSequence と照合する。BIP 68 が対応する出力の年齢を強制する。関連する二つの検査であり、自動送金ではない。
CSV は使用入力の nSequence を制約する。自ら UTXO の年齢を測らず、BIP 68 の取引検証が確認履歴を使って早すぎる収録を防ぐ。 [BIP 112 — OP_CHECKSEQUENCEVERIFY] [BIP 68 — Relative lock-time]
無効化フラグのない通常引数では、CSV は取引バージョン 2 以上と nSequence のビット 31 がゼロであることを要求する。負の引数や不適合な 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 は OP_NOP3 を CSV に置き換え、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.