Glossaire / Référence pour développeurs
Label
- Qu'est-ce que le label ?
- Le label dans un URI Bitcoin nomme la personne ou l'entreprise payée, et dans un portefeuille c'est la note privée que vous associez à une adresse ou à une transaction.
Spécifié dans BIP-21.
Les labels sont la seule partie d'un paiement en bitcoin qui existe uniquement pour les humains. Rien de ce que vous y saisissez n'atteint la blockchain, et rien dans votre phrase de récupération ne les ramène : Bitcoin Core a remplacé son ancien système de comptes par des labels dans la version 0.17.0 en octobre 2018, et ils résident dans le seul fichier du portefeuille. Les perdre vous coûte votre propre historique de transactions au moment de la déclaration fiscale.
Comment cela fonctionne
Le mot label recouvre deux choses différentes, et les distinguer évite bien des confusions.
Le premier est le paramètre label défini par le BIP21. Il voyage dans un URI de paiement sous forme d'UTF-8 encodé en pourcentage, si bien que label=Coffee%20Shop s'affiche comme Coffee Shop sur votre écran de confirmation. C'est un texte indicatif fourni par celui qui a construit l'URI. Aucune signature ne le couvre, aucun portefeuille ne le vérifie, et un attaquant qui construit un lien d'hameçonnage le choisit aussi librement qu'un marchand honnête.
Le second est la note que vous écrivez vous-même. Bitcoin Core l'expose via setlabel, getaddressesbylabel et listlabels, l'API arrivée dans 0.17.0 lorsque les comptes ont été dépréciés et qui a fini de les remplacer lorsque les appels de compte ont été supprimés dans 0.18.0. Sparrow, Electrum et la plupart des portefeuilles mobiles conservent un champ équivalent.
Les labels côté portefeuille sont des métadonnées situées à côté de vos clés, pas à l'intérieur. Restaurez une phrase de récupération dans un logiciel neuf et chaque bitcoin revient sans aucun souvenir de sa provenance. Le BIP329 existe pour régler la moitié portabilité de ce problème : il définit un export JSON Lines avec un enregistrement par ligne, chacun portant un type tx, addr, pubkey, input, output ou xpub, une référence et le texte du label. Plusieurs portefeuilles de bureau et mobiles savent lire et écrire ce format, si bien que les labels peuvent suivre lorsque vous changez de logiciel.
Où cela se voit
Les labels s'avèrent déterminants dans trois situations qui n'ont rien à voir avec l'apparence soignée des paiements.
Le contrôle des bitcoins est la première. Décider quelles sorties non dépensées dépenser, et lesquelles garder à part, ne fonctionne que si vous pouvez les distinguer, et le label est ce qui consigne que ce bitcoin provient d'un retrait vérifié depuis une plateforme d'échange tandis que cet autre est arrivé d'un échange pair-à-pair. Fusionnez-les dans une transaction et vous avez lié les deux histoires de façon permanente. Personne ne pratique l'évitement de fusion de mémoire.
Les documents fiscaux sont la deuxième. Votre prix de revient pour un bitcoin donné vit dans vos propres notes, car un transfert en auto-conservation ne porte aucun prix. Un portefeuille avec des dépôts étiquetés et le montant en monnaie fiduciaire inscrit est un tableur que vous possédez déjà ; un portefeuille plein d'UTXO non étiquetés, c'est un après-midi de reconstitution par an.
L'hameçonnage est la troisième, et il joue dans l'autre sens. Le label d'un URI est un texte contrôlé par l'attaquant. Voir un nom d'entreprise familier sur un écran de paiement signifie que quelqu'un a tapé ce nom dans une chaîne de caractères, rien de plus.
Habitude pratique : étiquetez au moment de la transaction, quand vous savez encore de quoi il s'agissait, et exportez les labels en même temps que le descripteur de votre portefeuille chaque fois que vous faites une sauvegarde. Une phrase de récupération plus un descripteur plus un fichier de labels forment une restauration complète. Une phrase de récupération seule récupère l'argent et perd l'histoire.
Label vs mémo PP
Un mémo dans le protocole de paiement BIP70 était un texte de marchand qui voyageait dans un message signé, si bien qu'un portefeuille pouvait au moins le rattacher à un titulaire de certificat. Un label BIP21 voyage en clair sans que rien ne le cautionne. Cette différence était tout l'argument du protocole de paiement, et elle ne l'a pas sauvé : le BIP70 a été retiré de Bitcoin Core dans la version 0.20.0 en juin 2020, laissant les labels non signés comme le format que tout le monde utilise réellement.