Le locktime (temps de verrouillage) est un paramètre intégré aux transactions Bitcoin qui spécifie un moment avant lequel la transaction ne peut pas être incluse dans un bloc. Défini dans le champ nLockTime du protocole Bitcoin, il permet de créer des transactions à exécution différée directement au niveau du protocole.
Le locktime peut être exprimé de deux manières : en numéro de bloc (si la valeur est inférieure à 500 000 000, la transaction n’est valide qu’à partir de ce bloc) ou en timestamp Unix (si la valeur est supérieure ou égale à 500 000 000, la transaction n’est valide qu’après cette date). Une valeur de 0 signifie que la transaction est immédiatement valide.
Les cas d’usage du locktime sont variés : création de testaments crypto (la transaction transfère les fonds si elle n’est pas annulée avant une certaine date), canaux de paiement (base technique du Lightning Network), séquestre (escrow) trustless, et mécanismes de gouvernance où les votes sont verrouillés jusqu’à une deadline.
Le locktime est un des primitifs les plus anciens de Bitcoin pour la programmabilité. Combiné avec d’autres opcodes comme OP_CHECKLOCKTIMEVERIFY (BIP-65) et OP_CHECKSEQUENCEVERIFY (BIP-112), il permet de construire des smart contracts basiques sur Bitcoin : des conditions de dépense qui dépendent du temps écoulé ou du nombre de blocs confirmés.
Bien que moins flexible que les smart contracts Turing-complets d’Ethereum, le locktime de Bitcoin offre des garanties de sécurité plus fortes car il opère directement au niveau du consensus. Le Lightning Network repose entièrement sur ces mécanismes de timelock pour sécuriser les canaux de paiement bidirectionnels sans confiance.