Una delle creazioni di Satoshi Nakamoto per rendere Bitcoin una realtà è la codifica Base58, un tipo di funzione crittografica appositamente progettata per Bitcoin la cui funzione principale è quella di trasformare i byte risultanti dalla sintesi di dati rappresentati da una serie di byte, (a cui viene applicato uno specifico processo crittografico per trasformare l'output in un formato standardizzato all'interno della rete) in qualcosa che fosse facilmente leggibile e verificabile .
La funzione non solo può codificare le informazioni, ma anche decodificarle e fare il somma di controllo Dello stesso. Tutte queste funzioni, infatti, sono facilmente identificabili nel codice sorgente di Bitcoin. Innanzitutto, le definizioni di tutte queste funzioni sono disponibili nell'header (header di definizione di funzione e macro in C/C++), base58.h, disponibile nel seguente link

Mentre il codice delle funzioni può essere rivisto e verificato esaminando il file base58.cpp, disponibile in questo altro link. Sono queste due parti che consentono a Base58 di funzionare all'interno di Bitcoin.
Una funzione per facilitare l'uso di Bitcoin
Quindi Base58 fondamentalmente fa qualcosa che rende Bitcoin più facile per noi: trasforma i dati di origine di un indirizzo nel formato leggibile che conosciamo. Ad esempio, qualcosa di semplice come questa funzione è ciò che ci consente di ridurre una grande quantità di dati, come una chiave ECDSA, in qualcosa di molto più gestibile e leggibile, come un indirizzo Bitcoin con i suoi 20 caratteri (nella versione standard o legacy di questi indirizzi e che iniziano con 1 o 3).
Ora, come avviene l'intero processo? Bene, il processo è abbastanza semplice e può essere suddiviso nei seguenti passaggi:
- Per prima cosa vengono prelevati i dati della versione/applicazione, insieme ai dati corrispondenti alla chiave pubblica delle nostre criptovalute. Questi dati sono trattati in byte.
- Successivamente, inizia a essere calcolato l'hash SHA-256 di tutti i dati concatenati. Qui abbiamo il nostro primo SHA-256.
- Il risultato precedente viene preso come valore per un nuovo round di SHA-256, e con esso abbiamo l'hash SHA-256 dell'hash precedente.
- Con il secondo hash calcolato, prenderemo i primi quattro byte risultanti da esso.
- Ora concateniamo i dati dal secondo hash SHA-256 (passaggio 3) e li uniamo al set di dati del passaggio 1.
- La suddetta concatenazione verrà trattata come un insieme di byte in formato big-endian (un formato di archiviazione ed elaborazione dei dati computazionali). A questo punto inizia la conversione dei dati in Base58, utilizzando un alfabeto speciale (definito nell'immagine seguente). Durante questo processo, si presta attenzione a normalizzare il risultato in modo che non abbia zeri Base58 all'inizio della stringa (nel qual caso sono rappresentati con il valore "1").
- Alla fine, il processo termina con una concatenazione di tutti gli "1" risultanti dal passaggio precedente per ottenere il valore Base58 finale.
Utilizzato in indirizzi e altri dati crittografici all'interno di Bitcoin e oltre
L'uso di Base58 può essere visto in diverse parti di Bitcoin. Lo si vede ad esempio nella codifica degli indirizzi Bitcoin, poiché vengono elaborati dalla funzione Base58 per trasformarli negli indirizzi Bitcoin che conosciamo. Viene utilizzato anche nelle chiavi private in formato WIF. Ma non è utilizzato solo in Bitcoin, anche altre criptovalute utilizzano questa funzione. Ad esempio, i derivati Bitcoin come Litecoin o Dogecoin usano Base58 nel loro software, altre criptovalute e valute digitali simili Ripple, Dash, Elisir e persino File system interplanetario (IPFS) utilizza anche Base58 nel suo software.
Questo rende molto chiara l'enorme utilità di questa funzione che ha guadagnato spazio non solo nel mondo delle criptovalute ma anche in diversi spazi dedicati all'offerta di tecnologia decentralizzata, e dove la creazione di Satoshi Nakamoto è inclusa non solo per la sua estrema funzionalità, ma anche come tributo e promemoria di tutto ciò che è stato realizzato da quando ha fatto conoscere la sua creazione al mondo.