Aller au contenu principal

BECH32 ET BECH32M

Bech32 et Bech32m sont deux formats d’encodage d’adresse pour recevoir des bitcoins. Ils sont établis sur une base 32 légèrement modifiée. Ils embarquent une somme de contrôle établie sur un algorithme de correction d’erreurs appelé BCH (Bose-Chaudhuri-Hocquenghem). Par rapport aux adresses Legacy, encodées en Base58check, les adresses Bech32 et Bech32m disposent d’une somme de contrôle plus performante, permettant de détecter et potentiellement de localiser les fautes de frappe. Leur format dispose également d’une meilleure lisibilité, avec uniquement des caractères minuscules. Voici la matrice d’addition de ce format depuis la base 10 :

+ 0 1 2 3 4 5 6 7
0 q p z r y 9 x 8
8 g f 2 t v d w 0
16 s 3 j n 5 4 k h
24 c e 6 m u a 7 l

Bech32 et Bech32m sont des formats d’encodage utilisés pour représenter les adresses SegWit. Bech32 est un format d’encodage d’adresse introduit par la BIP-0173 en 2017. Il utilise un ensemble de caractères spécifiques, composé de chiffres et de lettres minuscules, pour minimiser les erreurs de frappe et faciliter la lecture. Les adresses Bech32 commencent généralement par bc1 pour indiquer qu’elles sont natives de SegWit. Ce format est uniquement utilisé sur les adresses SegWit V0, avec les scripts P2WPKH (Pay to Witness Public Key Hash) et P2WSH (Pay to Witness Script Hash). Toutefois, il existe une petite faille inattendue propre au format Bech32. Chaque fois que le dernier caractère de l’adresse est un p, l’ajout ou la suppression d’un nombre quelconque de caractères q le précédant immédiatement n’invalide pas la somme de contrôle. Cela n’affecte pas les utilisations existantes des adresses SegWit V0 (BIP-0173) en raison de leur restriction à deux longueurs définies. Cependant, cela pourrait affecter des utilisations futures de l’encodage Bech32. Le format Bech32m est simplement un format Bech32 avec cette erreur rectifiée. Il a été introduit avec le BIP-0350 en 2020. Les adresses Bech32m commencent également par bc1, mais elles sont spécifiquement conçues pour être compatibles avec la version SegWit V1 (Taproot) et les versions ultérieures, avec le script P2TR (Pay to TapRoot).

Termes associés :