L'une des créations de Satoshi Nakamoto pour faire du Bitcoin une réalité est l'encodage Base58, un type de fonction cryptographique spécialement conçu pour Bitcoin dont la fonction principale est de transformer les octets résultant de la synthèse de données représentées par une série d'octets (auxquels un processus cryptographique spécifique est appliqué pour transformer la sortie dans un format normalisé au sein du réseau) en quelque chose de facilement lisible et vérifiable .
La fonction peut non seulement encoder les informations, mais aussi les décoder et faire le somme de contrôle de la même. En fait, toutes ces fonctions sont facilement identifiables dans le code source du Bitcoin. Tout d'abord, les définitions de toutes ces fonctions sont disponibles dans l'en-tête (en-tête de définition de fonction et de macro en C/C++), base58.h, disponible dans le lien suivant

Bien que le code des fonctions puisse être examiné et vérifié en examinant le fichier base58.cpp, disponible dans cet autre lien. Ce sont ces deux parties qui permettent à Base58 de fonctionner dans Bitcoin.
Une fonction pour faciliter l'utilisation de Bitcoin
Donc, Base58 fait essentiellement quelque chose qui rend Bitcoin plus facile pour nous : transformer les données source d'une adresse dans le format lisible que nous connaissons. Par exemple, quelque chose d'aussi simple que cette fonction est ce qui nous permet de réduire une grande quantité de données, comme une clé ECDSA, en quelque chose de beaucoup plus gérable et lisible, comme une adresse Bitcoin avec ses 20 caractères (dans la version standard ou héritée de ces adresses et qui commencent par 1 ou 3).
Maintenant, comment tout ce processus se déroule-t-il ? Eh bien, le processus est assez simple et peut être divisé en étapes suivantes :
- Tout d'abord, les données de version/application sont prises, ainsi que les données correspondant à la clé publique de nos crypto-monnaies. Ces données sont traitées en octets.
- Ensuite, le hachage SHA-256 de toutes les données concaténées commence à être calculé. Ici, nous avons notre premier SHA-256.
- Le résultat précédent est pris comme valeur pour un nouveau cycle de SHA-256, et avec lui, nous avons le hachage SHA-256 du hachage précédent.
- Avec le deuxième hash calculé, nous prendrons les quatre premiers octets qui en résultent.
- Maintenant, nous concaténons les données du deuxième hachage SHA-256 (étape 3) et les joignons à l'ensemble de données de l'étape 1.
- La concaténation ci-dessus sera traitée comme un ensemble d'octets au format big-endian (un format de stockage et de traitement de données de calcul). À ce stade, la conversion des données en Base58 commence, en utilisant un alphabet spécial (défini dans l'image suivante). Tout au long de ce processus, on prend soin de normaliser le résultat afin qu'il n'ait pas de zéros Base58 au début de la chaîne (auquel cas ils sont représentés par la valeur "1").
- Au final, le processus se termine par une concaténation de tous les "1" issus de l'étape précédente pour obtenir la valeur Base58 finale.
Utilisé dans les adresses et autres données cryptographiques dans Bitcoin et au-delà
L'utilisation de Base58 peut être vue dans différentes parties de Bitcoin. Par exemple, cela se voit dans l'encodage des adresses Bitcoin, puisqu'elles sont traitées par la fonction Base58 pour les transformer en adresses Bitcoin que nous connaissons. Il est également utilisé dans les clés privées au format WIF. Mais il n'est pas seulement utilisé dans Bitcoin, d'autres crypto-monnaies utilisent également cette fonction. Par exemple, les dérivés de Bitcoin comme Litecoin o Dogecoin ils utilisent Base58 dans leur logiciel, d'autres crypto-monnaies et monnaies numériques comme Ripple, Dash, Elixir, et même Système de fichiers interplanétaires (IPFS) il utilise également Base58 dans son logiciel.
Cela montre très clairement l'énorme utilité de cette fonction qui a gagné de la place non seulement dans le monde des crypto-monnaies mais aussi dans différents espaces dédiés à l'offre de technologie décentralisée, et où la création de Satoshi Nakamoto est incluse non seulement pour son extrême fonctionnalité, mais aussi comme un hommage et un rappel de tout ce qui a été accompli depuis qu'il a fait connaître sa création au monde.