Aller au contenu
buybitcoinsmart

Glossaire / Référence pour développeurs

PP expires

Qu'est-ce que PP expires ?
PP expires était l'horodatage Unix facultatif d'un message PaymentDetails de BIP70 qui indiquait à un portefeuille de cesser d'honorer la demande une fois ce moment passé.

Spécifié dans BIP-70.

Toute facture en bitcoin à prix fixe a besoin d'une échéance, car le prix bouge pendant que le client réfléchit. BIP70 donnait aux commerçants un champ pour cela, un horodatage Unix de 64 bits, et le laissait facultatif. L'habitude a survécu au protocole : le compte à rebours d'un écran d'achat instantané ou d'un distributeur automatique de bitcoin fait exactement le même travail.

Comment cela fonctionne

Statut : historique. expires était le champ 4 du message PaymentDetails, et Bitcoin Core a déclaré BIP70 obsolète dans la version 0.19 avant de le supprimer dans la version 0.20.0 le 3 juin 2020. Rien n'implémente ce champ aujourd'hui.

Deux horloges se côtoyaient dans le message. time était obligatoire et enregistrait le moment où le commerçant avait construit la demande ; expires était facultatif et enregistrait le moment où elle devait cesser d'être valide. Les deux comptaient les secondes depuis le 1er janvier 1970, et les deux étaient des entiers non signés de 64 bits, ce qui évitait discrètement le mur du 19 janvier 2038 auquel se heurte un compteur signé de 32 bits.

Le contrôle de l'échéance reposait entièrement sur le logiciel du payeur. Un portefeuille comparait l'horodatage à l'horloge de son propre système et refusait de construire une transaction une fois l'échéance passée, ce qui signifie qu'un appareil à l'horloge erronée payait une facture morte ou rejetait une facture vivante. Le champ ne touchait en rien à la blockchain. Une transaction qui paie une demande expirée est aussi valide que n'importe quelle autre, et savoir si le commerçant la crédite, la rembourse ou la garde discrètement n'a jamais été une question de protocole.

Les fenêtres courtes comportaient un piège précis. Bitcoin vise un bloc toutes les dix minutes en moyenne, donc une expiration de cinq minutes pouvait s'écouler avant qu'une seule confirmation existe, laissant un client qui avait réellement payé et une facture que le logiciel du commerçant avait déjà annulée.

Où vous le voyez

Les devis à prix fixe sont partout dans l'achat de bitcoin, et chacun d'eux a une expiration derrière lui.

Un écran d'achat instantané chez une plateforme d'échange affiche un taux à côté d'un compte à rebours, généralement entre quelques secondes et quelques minutes. Laissez-le s'écouler et le devis est reconstruit au prix courant. Un distributeur automatique de bitcoin fait la même chose sur une fenêtre plus longue, ce qui explique en partie son spread plus large : l'exploitant absorbe le risque de prix pendant tout le temps que vous passez devant la machine.

Lightning a rendu l'échéance obligatoire plutôt que facultative. Une facture BOLT11 porte un champ x pour l'expiration, et lorsqu'il est absent la valeur par défaut est de 3600 secondes, soit une heure. Payez plus tard et un nœud qui se comporte correctement rejette le paiement au lieu de le laisser en suspens.

Le conseil pratique pour un payeur est sans éclat : quand une échéance est attachée, n'économisez pas sur les frais. Payer trop peu pour économiser quelques centaines de satoshis est la façon la plus courante de manquer une fenêtre, et une transaction qui arrive en retard est précisément le cas qui se transforme en ticket de support plutôt qu'en commande.

PP expires vs locktime

Une expiration était une demande du commerçant que le logiciel du portefeuille choisissait de respecter ; locktime est une règle que chaque nœud du réseau applique. Les deux vont en sens opposé et n'ont pas la même force. expires marquait un moment après lequel un paiement ne devait plus être effectué, et aucun mineur ne l'a jamais vérifié. Locktime, inscrit dans la transaction elle-même, nomme une hauteur de bloc ou un moment avant lequel la transaction ne peut pas du tout être incluse dans un bloc. L'un ferme une fenêtre ; l'autre en ouvre une.

À ne pas confondre avec

Questions fréquentes

Que se passait-il si vous payiez une demande de paiement bitcoin après son expiration ?

La transaction restait valide, car l'expiration n'a jamais été une règle du réseau. Seul le logiciel du commerçant décidait de la suite, ce qui en pratique revenait à créditer le paiement au nouveau taux ou à envoyer un remboursement moins les frais.

Pourquoi un devis de plateforme d'échange expire-t-il après quelques secondes ?

Parce que le vendeur vous garantit un prix qu'il doit honorer. Un compte à rebours limite l'ampleur du mouvement du marché pendant que vous décidez, et le laisser s'écouler reconstruit simplement le devis au prix courant plutôt que d'annuler votre ordre.

À lire ensuite

Termes associés

Plus de termes : Référence pour développeurs

Lire cette page en anglais