Pourquoi votre adresse ne ressemble pas à la leur : formats d'adresse et échecs d'envoi

·6 min de lecture·Par SSP Editorial Team
Couverture SSP Academy : formats d'adresses crypto et envois échoués

Pourquoi votre adresse ne ressemble pas à la leur : formats d'adresse et échecs d'envoi

Tôt ou tard, tout le monde en autoconservation tombe sur le même moment déroutant. Vous copiez votre adresse de réception pour vous envoyer un peu de Bitcoin, et elle ne ressemble pas aux adresses que vous aviez vues jusque-là. Ou une plateforme la refuse. Ou vous envoyez du Bitcoin Cash vers quelque chose qui ressemble exactement à une adresse Bitcoin et vous passez une heure désagréable à comprendre ce qui s'est passé.

Rien de tout cela n'est arbitraire. Les formats d'adresse encodent une information bien réelle sur la façon dont les pièces peuvent être dépensées, et dès qu'on sait les lire, la confusion s'évapore presque entièrement.

Une adresse est un ensemble de conditions de dépense

Le bon modèle mental n'est pas « une adresse est un numéro de compte ». C'est celui-ci : une adresse est une description compressée de ce qui doit être vrai pour que ces pièces bougent.

Envoyez à une adresse commençant par 1, et la condition est une clé publique précise doit produire une signature. Envoyez à une adresse bc1q… du type long, et la condition peut être deux clés précises doivent toutes deux signer. Même chaîne, même argent, règles entièrement différentes — et le format de l'adresse est la façon dont la chaîne vous dit quelles règles s'appliquent.

Voilà pourquoi les formats se sont multipliés. Chaque fois que Bitcoin a gagné une nouvelle manière de verrouiller des pièces, il lui a fallu une nouvelle manière d'écrire où elles étaient verrouillées.

Les formats que vous croiserez sur Bitcoin

Legacy — 1… L'original. Paiement vers empreinte de clé publique : une clé, une signature. Pris en charge partout, et le plus coûteux à dépenser, car les données de signature comptent intégralement dans la taille du bloc.

Script — 3… Paiement vers empreinte de script. Les pièces sont verrouillées à un script plutôt qu'à une clé — un quorum multisig, un verrou temporel, peu importe. L'adresse est une empreinte des conditions ; de l'extérieur, impossible de savoir lesquelles. C'est aussi ainsi que le SegWit des débuts s'est glissé par compatibilité.

SegWit natif — bc1q… Bech32. Les données de signature ont migré vers une structure témoin séparée, ce qui a rendu la dépense moins chère et corrigé la malléabilité des transactions. Bech32 est en minuscules, dispose d'une somme de contrôle plus robuste que base58, et est conçu pour que les fautes de frappe soient détectées plutôt qu'acceptées en silence.

Le SegWit natif existe en deux longueurs, et la différence compte :

  • 42 caractères au total — P2WPKH. Une clé, une signature.
  • 62 caractères au total — P2WSH. Un script, par exemple un multisig deux-sur-deux.

Taprootbc1p… Le plus récent. Meilleure confidentialité et dépenses complexes moins chères, au prix de quelques services anciens qui ne l'acceptent toujours pas.

Pourquoi une adresse SSP paraît inhabituelle

C'est ici que les gens sont surpris, et l'explication est plutôt satisfaisante.

SSP est un portefeuille multisig deux-sur-deux. Vos pièces ne sont pas verrouillées à une seule clé : elles sont verrouillées à un script exigeant des signatures à la fois de votre extension de navigateur et de votre téléphone. Une adresse Bitcoin SSP est donc du P2WSH, pas du P2WPKH, c'est-à-dire la forme longue de bc1q : 62 caractères au lieu des 42 auxquels la plupart des gens sont habitués.

Si vous fixez votre adresse en vous disant qu'elle a l'air trop longue, c'est qu'elle doit l'être. La longueur supplémentaire est l'empreinte d'un script deux-sur-deux au lieu de l'empreinte d'une seule clé publique. L'adresse est plus longue parce que les conditions sont plus riches.

Cela fait parfois trébucher d'anciens services qui ne reconnaissent par motif que la forme courte. C'est une limitation de leur côté — le P2WSH a dix ans — mais il vaut la peine de savoir pourquoi l'erreur survient, car le message est en général le peu utile « adresse invalide ».

Chaque chaîne a fait des choix différents

SSP prend en charge plusieurs chaînes UTXO, et chacune écrit les adresses multisig à sa façon :

ChaîneType de script dans SSPL'adresse ressemble à
BitcoinP2WSHbc1q… (62 caractères)
LitecoinP2WSHltc1q…
Bitcoin CashP2SHbitcoincash:p…
DogecoinP2SHcommence par 9 ou A
ZcashP2SHt3…
RavencoinP2SHcommence par r
FluxP2SHt3…

Litecoin a suivi de près la conception de Bitcoin en changeant seulement le préfixe lisible, d'où la familiarité de ses adresses. Zcash et Flux utilisent une version sur deux octets, ce qui donne le préfixe distinctif t3 pour les adresses de script. Dogecoin a choisi son propre octet de version : ses adresses de script commencent donc par 9 ou A — rien à voir avec ses familières adresses D… à clé unique.

L'essentiel est que les préfixes d'adresse d'une chaîne sont des constantes au niveau du consensus, pas de l'image de marque. C'est grâce à eux qu'un portefeuille peut refuser une adresse avant que vous n'envoyiez quoi que ce soit.

Le piège Bitcoin Cash, et pourquoi CashAddr existe

Il y a un épisode d'histoire à connaître, parce qu'il peut réellement vous coûter de l'argent.

Quand Bitcoin Cash s'est séparé de Bitcoin en 2017, il a hérité exactement du format d'adresse de Bitcoin — les mêmes octets de version, 0x00 pour les adresses de clé et 0x05 pour celles de script. Une adresse BCH legacy et une adresse BTC legacy étaient indiscernables. Pas semblables. Structurellement identiques.

Les gens envoyaient sans cesse du BTC vers des adresses BCH et du BCH vers des adresses BTC, parce qu'aucun logiciel ne pouvait les distinguer. Les pièces n'étaient pas détruites — la même clé privée contrôle les deux — mais les récupérer supposait d'importer des clés dans un portefeuille de l'autre chaîne, ce que beaucoup d'utilisateurs ne savaient pas faire sans risque.

CashAddr a été la solution : un format de style bech32 avec le préfixe bitcoincash:, délibérément incompatible avec celui de Bitcoin, pour qu'un envoi entre chaînes échoue bruyamment au lieu de réussir en silence. C'est pourquoi SSP affiche les adresses Bitcoin Cash avec le préfixe complet. Cela paraît verbeux. La verbosité est la fonctionnalité.

Pourquoi les envois échouent, et ce que signifie chaque échec

« Adresse invalide. » En général un échec de somme de contrôle — une faute de frappe, un collage tronqué, une chaîne bech32 en casse mixte. Bech32 est insensible à la casse mais ne doit pas être en casse mixte ; certains chemins de copier-coller abîment cela. Parfois, cela veut dire que le service émetteur ne prend pas en charge votre format.

« Type d'adresse non pris en charge. » Le service reconnaît l'adresse mais n'y enverra pas — typiquement une plateforme ancienne qui n'a jamais ajouté Taproot, ou qui ne gère que le SegWit court. Ce n'est pas à vous de le corriger ; utilisez une autre voie de retrait ou une adresse intermédiaire.

Totalement la mauvaise chaîne. Ici, le préfixe lisible de bech32 vous protège : bc1 et ltc1 diffèrent, et les portefeuilles vérifient. Les chaînes base58 sont plus risquées, car une adresse Dogecoin valide est aussi structurellement valide sur plusieurs autres chaînes.

C'est parti, mais rien n'est arrivé. Soit vous regardez l'explorateur de la mauvaise chaîne, soit les fonds sont allés vers une adresse valide qui n'est pas la vôtre. Il n'existe pas de rappel.

Les règles pratiques

Copiez, ne tapez jamais. Chaque format a une somme de contrôle précisément parce que les humains font des fautes de frappe. Ne lui faites pas faire un travail qu'elle ne devrait pas avoir à faire.

Faites d'abord correspondre le préfixe à la chaîne. Bitcoin, c'est bc1, 1 ou 3. Litecoin, c'est ltc1, L ou M. Bitcoin Cash, c'est bitcoincash:. Ce seul coup d'œil attrape les erreurs coûteuses.

Attendez-vous à ce que les adresses multisig soient plus longues. Si vous utilisez SSP ou tout portefeuille fondé sur des scripts, la forme longue est correcte. La longueur n'est pas le symptôme d'une erreur.

Envoyez d'abord un petit test quand la destination est nouvelle, surtout vers une plateforme et surtout pour de gros montants. Les frais sont dérisoires face à l'alternative.

Utilisez une nouvelle adresse de réception quand votre portefeuille en propose une. Réutiliser des adresses relie vos transactions entre elles aux yeux de quiconque observe la chaîne. L'éviter ne coûte rien.

Les formats d'adresse ressemblent à des broutilles arbitraires jusqu'à ce qu'on comprenne que chacun est une affirmation sur la façon dont les pièces peuvent bouger. Lus ainsi, recevoir dans son portefeuille cesse d'être un acte de foi et devient quelque chose de vérifiable — ce qui est tout l'intérêt de détenir ses propres clés.

Partager cet article

Articles connexes