BASE58CHECK
La Base58Check est un encodage utilisé dans le système Bitcoin pour représenter les adresses de réception Legacy et certaines autres données, telles que les clés étendues, sous forme de chaînes de caractères lisibles par l’homme. C’est une variante du système Base58, une représentation positionnelle de base 58 conçue pour minimiser les erreurs de transcription humaine. Elle utilise un ensemble de 58 caractères alphanumériques, composé des chiffres de 1 à 9, des lettres majuscules de A à Z (à l’exception des lettres I et O pour éviter la confusion avec les chiffres 1 et 0) et des lettres minuscules de a à z (à l’exception de la lettre l pour éviter la confusion avec le chiffre 1). La Base58Check se distingue de la Base58 par l’ajout d’une somme de contrôle (checksum). Elle est représentée par une version réduite d’un double hachage SHA256 des données originales (SHA256d ou HASH256), à la fin des données encodées en Base58. Lors de la vérification, la somme de contrôle est recalculée et comparée à celle qui a été ajoutée lors de l’encodage. Si les deux empreintes correspondent, les données sont considérées comme valides, sinon une erreur de corruption ou de transcription est signalée.
L’utilisation de la Base58Check dans les adresses Bitcoin et les clés procure plusieurs avantages. Premièrement, elle permet de réduire les erreurs humaines lors de la transcription et de la lecture en évitant les caractères ambigus. Deuxièmement, elle protège contre les erreurs de saisie en détectant et signalant les erreurs grâce à la checksum. Troisièmement, la représentation compacte des données en Base58Check permet de réduire l’espace requis pour stocker et partager les adresses et les clés. Les adresses de réception les plus récentes (post-SegWit) ont abandonné cet encodage Base58Check pour des encodages Bech32 et Bech32m, disposant d’une somme de contrôle plus évoluée (avec des codes BCH).