Selon BIP 112, OP_CHECKSEQUENCEVERIFY vérifie l'argument du script face au nSequence de l'entrée. BIP 68 impose ensuite l'âge correspondant de la sortie ; ce sont deux contrôles liés, pas un paiement automatique.
CSV contraint nSequence de l'entrée dépensée. Il ne mesure pas lui-même l'âge UTXO ; BIP 68 utilise l'historique de confirmation pour empêcher une inclusion trop précoce. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [BIP 68 — Relative lock-time]
Pour un argument ordinaire sans indicateur de désactivation, CSV exige une version de transaction au moins 2 et le bit 31 de nSequence désactivé. Un argument négatif ou une sequence incompatible échoue. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Le bit 22 distingue blocs et temps. Activé, l'unité vaut 512 secondes ; le temps est codé par pas de 512 secondes. Les types de l'argument et de nSequence doivent correspondre. [BIP 68 — Relative lock-time]
Les 16 bits inférieurs codent le délai avec le masque 0x0000ffff. CSV compare cette plage avec son type, pas l'ordre des nombres nSequence entiers non masqués. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Script interpreter]
Si la sortie est confirmée à H = 900000 avec un délai de 10 blocs, la première hauteur candidate est H + 10 = 900010. Neuf blocs ne suffisent pas ; le nombre ne garantit pas des minutes exactes. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]
L'origine temporelle est Median Time Past du bloc avant la confirmation de sortie. Elle est comparée au MTP précédant le bloc candidat ; le code 2 signifie au moins 1024 secondes entre ces médianes, pas deux horloges locales. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]
Un délai nul n'ajoute pas d'attente, mais CSV ordinaire conserve ses autres contrôles. Si l'argument non négatif active lui-même le bit 31, CSV agit comme NOP ; cet argument n'impose aucun verrou relatif. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]
Chaque entrée a sa confirmation et sa sequence ; tous les verrous applicables doivent être satisfaits. Une réorganisation peut déplacer la confirmation de départ : l'éligibilité antérieure n'est pas irréversible. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]
CSV laisse l'argument sur la pile, souvent suivi de OP_DROP. Signature et autres branches déterminent l'autorisation ; le temps ne restaure pas une clé perdue ni n'exclut un chemin alternatif antérieur. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Developer Reference — Transactions]
BIP 112 a introduit CSV en remplaçant OP_NOP3 avec les règles BIP 68/113. Après le délai, il faut encore transmettre et confirmer la transaction ; frais, données disponibles et état de chaîne comptent toujours. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core 0.12.1 — BIP 68/112/113 release notes]
Pour une vision complète, lisez aussi CHECKLOCKTIMEVERIFY, Bitcoin Script opcode, Timelock, Bitcoin Script. Cette entrée est également citée par Confirmation, Timelock, HTLC, Bitcoin Script opcode.