Fundamentals ·

Formats d'Adresses Crypto : Bech32, Base58 et 0x


Si vous avez deja copie une adresse crypto et remarque que les adresses Bitcoin commencent par bc1, les adresses Ethereum par 0x, et les adresses Solana semblent etre un langage entierement different, vous n'etes pas seul. Ces differences ne sont pas cosmetiques. Chaque format d'adresse encode des informations specifiques sur la blockchain, le type de transaction qu'elle prend en charge et les mecanismes de detection d'erreurs protegeant vos fonds.

Comprendre les formats d'adresses est un savoir pratique. Un seul caractere errone dans une adresse crypto peut envoyer des fonds dans le neant de maniere permanente. Ce guide detaille les principaux schemas d'encodage, explique pourquoi chaque blockchain a choisi son format et montre comment les checksums previennent les erreurs couteuses.

Pourquoi les Adresses Sont Differentes

Une adresse de cryptomonnaie est une representation lisible d'une cle publique ou d'un hash qui en derive. La sortie cryptographique brute est constituee de donnees binaires, ce qui n'est pas pratique pour les humains a lire, copier ou verifier. Differentes blockchains ont choisi differents schemas d'encodage pour convertir ces donnees binaires en chaines de texte.

Ces choix d'encodage refletent des compromis entre :

  • Securite du jeu de caracteres -- eviter les caracteres qui se ressemblent (0/O, l/1/I)
  • Detection d'erreurs -- des checksums integres qui detectent les fautes de frappe avant que des fonds ne soient perdus
  • Efficacite spatiale -- des adresses plus courtes sont plus faciles a manipuler
  • Sensibilite a la casse -- les formats en minuscules uniquement evitent la confusion du presse-papiers

Les trois familles d'encodage dominantes en cryptomonnaie sont Base58Check, Bech32 et hexadecimal avec prefixe 0x. Chacune est nee d'objectifs de conception specifiques a des moments specifiques de l'histoire de la blockchain.

Base58Check : Bitcoin Heritage

Base58Check a ete l'un des premiers schemas d'encodage d'adresses, introduit par Satoshi Nakamoto avec Bitcoin. Il utilise 58 caracteres alphanumeriques, excluant deliberement les caracteres causant une confusion visuelle :

  • Pas de zero (0) -- trop similaire a la lettre O
  • Pas de O majuscule (O) -- trop similaire au zero
  • Pas de l minuscule (l) -- trop similaire au I majuscule et au chiffre 1
  • Pas de I majuscule (I) -- trop similaire au l minuscule et au chiffre 1

Une adresse Bitcoin Base58Check ressemble a : 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Le format inclut un octet de version au debut et un checksum de 4 octets a la fin. L'octet de version indique le type d'adresse : 1 pour les adresses Pay-to-Public-Key-Hash (P2PKH) standard, 3 pour les adresses Pay-to-Script-Hash (P2SH). Le checksum est calcule en executant SHA-256 deux fois sur la charge utile et en ajoutant les 4 premiers octets du resultat.

Ce checksum signifie que si vous tapez accidentellement un mauvais caractere, l'adresse echouera presque certainement a la validation plutot que d'envoyer des fonds a une adresse erronee mais valide. La probabilite qu'une faute de frappe aleatoire produise un checksum valide est d'environ 1 sur 4,3 milliards.

Plusieurs autres blockchains ont adopte Base58Check parce qu'il etait eprouve et familier :

  • Les adresses heritage Litecoin commencent par L ou M
  • Les adresses Dogecoin commencent par D

Vous pouvez utiliser le Validateur d'Adresses Bitcoin de SafeSeed pour verifier si une adresse Base58Check a un checksum valide avant d'envoyer une transaction.

Bech32 : Adresses SegWit bc1

En 2017, Bitcoin a introduit Segregated Witness (SegWit), qui necessitait un nouveau format d'adresse. Plutot que d'etendre Base58Check, les developpeurs ont cree Bech32, defini dans le BIP173. Les adresses Bech32 sont immediatement reconnaissables car elles commencent par bc1 pour le mainnet Bitcoin.

Une adresse Bech32 ressemble a : bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

Bech32 a apporte plusieurs ameliorations deliberees par rapport a Base58Check :

Minuscules uniquement

Bech32 n'utilise que des lettres minuscules et des chiffres. Cela elimine les problemes de sensibilite a la casse lorsque les adresses sont transmises verbalement, imprimees dans des polices de casse mixte ou encodees en QR codes (qui sont plus compacts avec des donnees en casse unique).

Detection d'erreurs superieure

Base58Check detecte les erreurs mais ne peut pas indiquer ou se trouve l'erreur. Bech32 utilise un code BCH (Bose-Chaudhuri-Hocquenghem) qui peut detecter toute erreur de caractere unique et la plupart des erreurs de substitution de plusieurs caracteres. Il peut identifier la position de jusqu'a deux erreurs, permettant une correction potentielle dans certaines interfaces de portefeuille.

QR codes plus petits

Parce que Bech32 utilise un jeu de caracteres restreint (32 caracteres), les QR codes representant ces adresses sont mesurables plus petits et plus faciles a scanner.

Bech32m

Une version mise a jour appelee Bech32m (BIP350) a corrige une faiblesse mineure du format Bech32 original liee au dernier caractere. Les adresses SegWit v1 modernes (Taproot, commencant par bc1p) utilisent Bech32m. Si vous generez une adresse Bitcoin avec le Generateur d'Adresses Bitcoin de SafeSeed, la sortie par defaut utilise le format moderne Bech32/Bech32m.

Litecoin a egalement adopte Bech32 pour ses adresses SegWit, utilisant le prefixe ltc1.

0x : Adresses de Chaines EVM

Ethereum a adopte une approche completement differente. Les adresses Ethereum sont des valeurs de 20 octets affichees sous forme de 40 caracteres hexadecimaux avec un prefixe 0x :

0x742d35Cc6634C0532925a3b844Bc9e7595f2bD08

Le format hex est simple : chaque octet correspond a deux caracteres hex (0-9, a-f). Cela fait de l'adresse une representation directe des donnees sous-jacentes sans encodage special.

Checksum EIP-55 en casse mixte

Le format d'adresse Ethereum original n'avait pas de checksum integre. Si vous tapiez un mauvais caractere, l'adresse etait toujours techniquement valide et vos fonds etaient perdus. EIP-55 a resolu cela en utilisant la capitalisation des lettres hex comme checksum. L'adresse est hashee avec Keccak-256, et chaque lettre est mise en majuscule si le nibble correspondant dans le hash depasse 8.

C'est pourquoi vous voyez des adresses Ethereum avec une capitalisation apparemment aleatoire. Le melange de majuscules et minuscules n'est pas arbitraire ; c'est un checksum. Si vous changez un seul caractere, le motif de capitalisation ne correspondra pas, et un portefeuille correctement implemente le rejettera.

Partage entre les chaines EVM

L'un des aspects les plus significatifs du format 0x est qu'il est identique sur toutes les chaines compatibles EVM :

La meme cle privee produit la meme adresse sur toutes ces chaines. C'est a la fois une commodite et une source de confusion : envoyer des tokens a la bonne adresse sur la mauvaise chaine est une erreur courante. Pour une analyse approfondie de la securite des adresses EVM, consultez notre guide sur la Securite des Adresses EVM.

Vous pouvez valider toute adresse EVM, y compris son checksum EIP-55, avec le Validateur d'Adresses Ethereum de SafeSeed.

Base58 pour Solana, XRP et TRON

Plusieurs blockchains modernes utilisent l'encodage Base58 mais sans le suffixe Check, ce qui signifie qu'elles implementent leurs propres mecanismes de checksum ou de validation.

Solana

Les adresses Solana sont des cles publiques Ed25519 encodees en Base58, typiquement de 32 a 44 caracteres :

7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV

Solana utilise le meme alphabet Base58 que Bitcoin (excluant les caracteres visuellement confus) mais n'ajoute pas d'octet de version ni de checksum SHA-256. A la place, l'adresse est simplement la cle publique brute en encodage Base58. La validation depend de la cle etant un point valide sur la courbe Ed25519. Le Validateur d'Adresses Solana de SafeSeed gere cette verification.

XRP

XRP utilise l'encodage Base58Check avec son propre prefixe de version, produisant des adresses commencant par r :

rN7n3473SaZBCG4dFL83w7p1W9cgZw6p1N

TRON

Les adresses TRON utilisent Base58Check avec un octet de version 0x41, produisant des adresses commencant par T :

TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW

Fait interessant, TRON utilise la meme courbe elliptique secp256k1 qu'Ethereum et Bitcoin. Une adresse TRON est derivee du meme materiau de cle qu'une adresse Ethereum mais encodee differemment.

Checksums : Votre Filet de Securite

Un checksum est un petit morceau de donnees derive de la charge utile de l'adresse qui permet au logiciel de detecter les erreurs. Pensez-y comme une empreinte mathematique : si meme un caractere change, l'empreinte ne correspondra pas.

Voici comment les mecanismes de checksum se comparent entre les principaux formats :

Format Methode de Checksum Capacite de Detection
Base58Check Double SHA-256 (4 octets) Detecte virtuellement toutes les erreurs
Bech32 Code BCH (6 caracteres) Detecte toutes les erreurs de caractere unique ; localise jusqu'a 2 erreurs
EIP-55 (0x) Capitalisation Keccak-256 ~99,98 % de detection d'erreurs pour les changements de caractere unique
Solana Base58 Validation de courbe Ed25519 Rejette les points invalides sur la courbe

Le checksum ne protege pas contre tous les types d'erreurs. Si un malware remplace tout votre presse-papiers par une adresse valide differente (attaque de detournement de presse-papiers), le checksum passera quand meme car l'adresse de l'attaquant est elle-meme valide. Les checksums protegent contre les fautes de frappe accidentelles et les erreurs de transmission, pas contre la fraude deliberee.

Pour une vision plus large des menaces au-dela des fautes de frappe, consultez Arnaques Crypto Courantes Impliquant les Seed Phrases.

Valider les Adresses Avant d'Envoyer

Chaque transaction de cryptomonnaie devrait commencer par la validation de l'adresse. Cela signifie plus que jeter un coup d'oeil aux premiers caracteres. Une validation appropriee inclut :

1. Verification du format

Confirmez que l'adresse correspond au format attendu pour la blockchain que vous utilisez. Une adresse bc1 ne devrait etre utilisee que sur Bitcoin. Une adresse 0x peut etre valide sur plusieurs chaines EVM, donc verifiez quel reseau vous comptez utiliser.

2. Verification du checksum

Passez l'adresse par un validateur qui verifie le checksum integre. SafeSeed fournit des validateurs gratuits pour les chaines les plus courantes :

Toute la validation s'execute entierement dans votre navigateur en utilisant du code cote client. Aucune donnee d'adresse n'est transmise a un serveur.

3. Confirmation visuelle

Meme apres la validation automatisee, confirmez visuellement les premiers et derniers caracteres de l'adresse. Les malwares de detournement de presse-papiers remplacent parfois les adresses par des adresses controlees par l'attaquant partageant les memes premiers caracteres.

4. Petite transaction de test

Pour les transferts importants, envoyez d'abord un petit montant et confirmez la reception avant d'envoyer le solde complet. Les frais de transaction minimes sont un petit prix pour la certitude.

5. Utilisez les fonctions de carnet d'adresses

La plupart des portefeuilles permettent d'enregistrer des adresses validees. Une fois une adresse confirmee, enregistrez-la pour eviter de la ressaisir (et d'introduire de nouvelles possibilites d'erreur).

Pour un guide detaille du processus de validation, consultez Comment Valider une Adresse Crypto.

Choisir le Bon Format

Si vous generez de nouvelles adresses, les formats modernes sont presque toujours preferes :

  • Bitcoin : Utilisez les adresses Bech32 (bc1) pour des frais reduits et une meilleure detection d'erreurs. Les adresses heritage Base58Check fonctionnent toujours mais coutent plus cher en frais de transaction en raison de tailles de transaction plus grandes.
  • Ethereum et chaines EVM : Utilisez toujours des adresses avec checksum EIP-55. La plupart des outils modernes les produisent par defaut.
  • Solana : Base58 est la seule option, et elle fonctionne bien.

Lorsque vous generez des adresses avec SafeSeed, les outils utilisent par defaut le format le plus actuel et securise pour chaque blockchain. Que vous utilisiez le Generateur de Seed Phrase Bitcoin ou le Generateur d'Adresses Ethereum, les adresses derivees utiliseront l'encodage recommande pour cette chaine.

Comprendre ces formats demystifie les adresses de cryptomonnaies. Ce ne sont pas des chaines aleatoires -- ce sont des representations soigneusement concues de cles cryptographiques, avec des mecanismes de securite integres destines a proteger vos fonds contre de simples erreurs humaines.