Aller au contenu
buybitcoinsmart

Glossaire / Adresses et clés

Adresse de monnaie rendue

Aussi appelé Sortie de monnaie rendue.

Qu'est-ce qu'une adresse de monnaie rendue ?
Une adresse de monnaie rendue reçoit la partie d'une entrée que votre portefeuille n'a pas dépensée, car les sorties de bitcoin sont consommées en entier et tout reliquat doit aller quelque part.

Spécifié dans BIP-32.

Le bitcoin ne connaît pas la dépense partielle. Si vous détenez une pièce de 0,05 BTC et payez 0,012 BTC, la transaction détruit cette pièce et en crée deux nouvelles : le paiement, et environ 0,038 BTC de monnaie rendue, verrouillés sur une adresse que vous seul contrôlez. Sur un explorateur de blocs, la seconde sortie ressemble à un inconnu qui est payé, et ce n'est pas le cas.

Comment cela fonctionne

Tout paiement en bitcoin commence par la sélection de pièces entières à y consacrer. Une pièce, à proprement parler une sortie de transaction non dépensée, ne peut pas être divisée sur place : la transaction la consomme entièrement et écrit de nouvelles sorties. Votre portefeuille totalise ce qu'il a sélectionné, en soustrait ce que vous payez et ce que le mineur prendra, et envoie le reste vers une destination qu'il a générée pour lui-même. Cette destination est l'adresse de monnaie rendue.

Les portefeuilles modernes conservent ces destinations sur une branche distincte de leur arbre de clés. Le BIP-44 a fixé la disposition ainsi : m / purpose' / coin_type' / account' / change / address_index, où l'avant-dernier niveau vaut 0 pour les adresses que vous distribuez et 1 pour les adresses que le portefeuille garde pour lui. La première adresse de monnaie rendue d'un portefeuille SegWit natif est donc m/84'/0'/0'/1/0, dérivée de la même phrase de récupération que tout le reste, de sorte que rien de plus n'a besoin d'être sauvegardé.

Cela n'a pas toujours été le cas, et l'histoire explique pourquoi cette branche existe. Les premiers clients Bitcoin tiraient la monnaie rendue d'une réserve de clés aléatoires pré-générées, 100 par défaut. Dépensez au-delà de la fin de la réserve et une sauvegarde de wallet.dat prise plus tôt ne contenait plus la clé qui se trouvait sur votre monnaie rendue : c'est ainsi que des personnes ont restauré une sauvegarde et constaté qu'il manquait de l'argent. Bitcoin Core ne crée que des portefeuilles hiérarchiques déterministes depuis la version 0.16.0, et la réserve d'anticipation est désormais de 1 000 clés par défaut.

Le montant de la monnaie rendue est arithmétique : entrées moins paiements moins frais. Rien dans la transaction ne marque une sortie comme étant de la monnaie rendue. Un nœud voit deux sorties et les traite de façon identique, et c'est précisément pourquoi la monnaie rendue pose un problème de confidentialité plutôt qu'un problème de comptabilité.

Pourquoi cela compte quand vous achetez du bitcoin

Votre première sortie de monnaie rendue apparaît généralement la première fois que vous dépensez des bitcoins retirés d'une plateforme d'échange, et elle hérite de tout ce que ce retrait sait de vous.

Une plateforme d'échange qui a vérifié votre passeport a enregistré l'adresse qu'elle a payée. Lorsque vous dépensez ensuite depuis cette adresse, la monnaie rendue est créée par la même transaction, de sorte que quiconque suit la sortie d'origine suit aussi la monnaie rendue, y compris le fournisseur d'analyse que la plateforme rémunère. Répartir un retrait entre deux portefeuilles ne sert à rien si vous dépensez ensuite depuis les deux dans une seule transaction. Garder les bitcoins de la plateforme dans leur propre portefeuille et payer depuis celui-ci délibérément, voilà ce qui limite la propagation de l'identité.

Les portefeuilles matériels défendent contre un second risque, plus aigu. Un ordinateur compromis peut construire une transaction dont la sortie de monnaie rendue va à un attaquant plutôt qu'à vous, avec un total qui semble encore correct, de sorte que rien à l'écran ne paraît anormal. Un appareil Trezor ou Ledger vérifie que chaque sortie de monnaie rendue dérive de la phrase de récupération qu'il détient et signale toute sortie qui n'en dérive pas. Cette vérification ne fonctionne que si vous confirmez les montants sur l'écran de l'appareil lui-même plutôt que dans le navigateur.

Il y a aussi un coût sur lequel vous pouvez agir. Deux sorties coûtent plus cher qu'une seule : une sortie de monnaie rendue SegWit native ajoute 31 octets à la transaction, environ 465 satoshis à 15 sat/vB, et elle crée une pièce dont la dépense future coûtera environ 68 octets virtuels. Les portefeuilles qui utilisent une sélection de pièces de type branch and bound essaient de trouver des entrées suffisamment proches du paiement pour éviter complètement la monnaie rendue, et cela réussit plus souvent lorsque vos pièces sont de tailles variées que lorsqu'il s'agit toujours de retraits ronds.

La monnaie rendue n'est pas non plus une cession. Se payer à soi-même le reste de sa propre pièce n'est pas une vente, mais les outils de suivi de portefeuille d'investissement importent couramment les sorties de monnaie rendue comme des achats entrants ou des ventes sortantes, ce qui fausse un prix de revient. Si votre outil de suivi affiche une transaction que vous ne reconnaissez pas le jour où vous avez payé une facture, c'est normalement la cause.

Suivre la monnaie rendue à travers un retrait de 0,05 BTC

Suivez une pièce d'une plateforme d'échange jusqu'à un marchand et chaque chiffre est visible on-chain. Vous retirez 0,05 BTC vers une adresse bech32 dans votre propre portefeuille, et le montant arrive sous forme d'une seule sortie valant 5 000 000 satoshis.

Des semaines plus tard, vous devez 1 200 000 satoshis à un marchand. Votre portefeuille ne détient qu'une seule pièce, il doit donc dépenser les 5 000 000 en totalité. La transaction a une entrée et deux sorties, environ 141 octets virtuels, et à 15 sat/vB les frais sont de 2 115 satoshis. Le marchand reçoit 1 200 000. La sortie de monnaie rendue reçoit 5 000 000 moins 1 200 000 moins 2 115, soit 3 797 885 satoshis, et elle aboutit à m/84'/0'/0'/1/0.

Rien dans cette transaction n'annonce quelle sortie est laquelle. Deux heuristiques la trahissent généralement : la monnaie rendue est la sortie dont le montant n'est pas rond, et c'est souvent la sortie dont le type de script correspond à celui de l'entrée. Les portefeuilles qui arrondissent la monnaie rendue, ou qui copient le type de script du destinataire, existent précisément pour déjouer ces suppositions.

Adresse de monnaie rendue vs adresse unique

Une adresse de monnaie rendue et une nouvelle adresse de réception servent toutes deux une seule fois, et la différence tient à qui est censé les voir. Une adresse de réception provient de la branche externe à l'indice de chaîne 0 et existe pour être copiée dans le portefeuille de quelqu'un d'autre. Une adresse de monnaie rendue provient de la branche interne à l'indice de chaîne 1 et n'est jamais montrée à un payeur ; la plupart des interfaces n'en afficheront pas, sauf si vous ouvrez un écran de contrôle des pièces. Les deux tournent pour la même raison de confidentialité, et les deux se restaurent à partir des mêmes douze ou vingt-quatre mots.

Adresse de monnaie rendue vs poussière

La monnaie rendue est ce qui reste ; la poussière est un reste trop petit pour valoir la peine d'être créé. Bitcoin Core refuse de relayer une sortie dont le prix est inférieur à 3 satoshis par octet virtuel de sa dépense future, ce qui donne 546 satoshis pour une sortie legacy et 294 pour du SegWit natif. Lorsqu'un portefeuille calcule une monnaie rendue sous cette limite, il ne crée pas la sortie du tout et la valeur va au mineur en frais supplémentaires. C'est pourquoi payer un montant juste en dessous de votre solde total peut coûter bien plus cher que les frais qui vous ont été annoncés.

À ne pas confondre avec

Questions fréquentes

Pourquoi mon portefeuille a-t-il envoyé du bitcoin vers une adresse que je ne reconnais pas ?

Cette sortie est presque certainement votre propre monnaie rendue. Le bitcoin dépense des pièces entières, donc le reste part vers une adresse neuve de la branche interne de votre portefeuille. Ouvrez un écran de contrôle des pièces ou de détail de transaction et le portefeuille indiquera que cette sortie vous appartient.

Ma monnaie rendue est-elle en sécurité si je n'ai sauvegardé que ma phrase de récupération ?

Oui. Les adresses de monnaie rendue sont dérivées de la même phrase de récupération selon le BIP-32, sur la branche numéro 1, donc restaurer la phrase les récupère avec tout le reste. Cela n'était pas vrai des portefeuilles antérieurs à 2016, qui tiraient la monnaie rendue d'un ensemble fixe de clés aléatoires.

Puis-je empêcher mon portefeuille de créer de la monnaie rendue ?

Seulement indirectement. Envoyez la totalité de votre solde, ce qui ne produit aucune sortie de monnaie rendue, ou utilisez le contrôle des pièces pour choisir des entrées qui correspondent au paiement d'assez près pour que le portefeuille abandonne la monnaie rendue. La plupart des portefeuilles essaient déjà la seconde option automatiquement.

Où est passée ma monnaie rendue lorsque le montant était minuscule ?

Sous le seuil de poussière, 546 satoshis pour une sortie legacy et 294 pour le SegWit natif, les portefeuilles abandonnent la sortie de monnaie rendue et donnent cette valeur au mineur comme frais supplémentaires. Les bitcoins ne sont pas perdus en un sens récupérable, ils ont été dépensés dans la transaction.

À lire ensuite

Termes associés

Plus de termes : Adresses et clés

Lire cette page en anglais