Gli indirizzi bitcoin o indirizzo bitcoin Sono una stringa univoca di numeri e lettere che ci consentono di inviare e ricevere le nostre monete in modo sicuro sulla rete Bitcoin.
Come viene generato un indirizzo bitcoin? Qual è il tuo segreto? Vi diciamo tutto su questo processo.
Prima di iniziare, è essenziale ricordare che questo articolo è rivolto a quegli utenti che hanno una certa conoscenza in merito Bitcoin e il mondo delle criptovalute. Quindi ti consigliamo di rivedere alcuni argomenti di questo mondo per poterli comprendere. Con questo, sarai molto chiaro sulla relazione tra Bitcoin e la creazione di indirizzi.
Da dove dovresti iniziare? Ti consigliamo di leggere: crittografia asimmetrica, funzione hash, algoritmi SHA-256, ECDSA y Cos'è un indirizzo Bitcoin?
Bene, nel mondo di criptovalute, un indirizzo è un identificatore, il luogo a cui è associata e allocata una certa quantità di criptovalute. Pertanto, chiunque voglia inviare o ricevere criptovalute dovrà sempre avere un indirizzo. Ad esempio, in Bitcoin gli indirizzi pubblici hanno generalmente questo aspetto: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Come possiamo vedere, sono un insieme di lettere e numeri alternati la cui lunghezza varia tra 26 e 32 caratteri.
Per creare un indirizzo, sono necessari un totale di 9 passaggi, che spiegheremo in dettaglio di seguito.
Processo per creare un indirizzo Bitcoin
Il processo per creare un indirizzo Bitcoin inizia con la generazione di un indirizzo chiava privata che ci fornirà l'uso esclusivo dei fondi. Da questo, a chiave pubblica, che ci consentirà di condividere informazioni con altre persone senza mettere a rischio le nostre.
L'ottenimento della chiave pubblica attraverso la chiave privata è dovuto all'applicazione dell'algoritmo ECDSA. Un'implementazione molto efficiente della crittografia a curva ellittica, in cui la curva viene utilizzata come punto generatore secp256k1 per ottenere la chiave pubblica.
Quindi, una volta generata questa coppia di chiavi, inizia il processo di generazione degli indirizzi pubblici di Bitcoin.
1.- Seleziona la chiave pubblica ottenuto dal processo precedente. Cioè, dall'applicazione dell'algoritmo ECDSA a la chiave privata. Che dovrebbe avere un aspetto simile a questo:
0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
2.- Applicare un hashing alla chiave pubblica implementando l'algoritmo SHA-256. Questo algoritmo permette di generare output (output) di estensione fissa da input (input) di estensione variabile, che sono irreversibili. Quindi sono unidirezionali e non è possibile dedurre la chiave privata tramite quella pubblica.
Dopo aver applicato la funzione di hashing otterremo un file Flusso a 256 bit:
0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98
3.- Di nuovo Hashear l'output ottenuto in precedenza, applicando in questo caso l'algoritmo RIPE®-160. con cui otterremo a Flusso a 160 bit:
f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
4.- Aggiungere il byte della versione utilizzato per la mainnet Bitcoin (0x00) davanti all'output ottenuto dall'applicazione dell'algoritmo di hashing RIPEMD-160. Con questo otterremo un indirizzo Bitcoin in formato esadecimale, che sarà simile a questo:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
E aggiungendo questo byte possiamo anche identificare e distinguere gli indirizzi Bitcoin da altre criptovalute che utilizzano anche il protocollo.
5.- Effettuare l'hash con l'algoritmo SHA-256 al risultato ottenuto dal RIPEMD-160. Questo passaggio è necessario come meccanismo di verifica per verificare che l'indirizzo Bitcoin sia stato digitato correttamente.
ad3c854da227c7e99c4abfad4ea41d71311160df2e415e713318c70d67c6b41c
6.- Applicare l'hash con l'algoritmo SHA-256 al risultato dell'hash precedente. Con questo passaggio viene concatenato l'indirizzo ottenuto. Come già accennato, l'algoritmo SHA-256 viene applicato due volte come meccanismo di verifica.
c7f18fe8fcbed6396741e58ad259b5cb16b7fd7f041904147ba1dcffabf747fd
7.- Scegli i primi 4 byte dell'ultimo hash SHA-256, che rappresentano il checksum dell'indirizzo Bitcoin. In questo esempio sarebbero:
c7f18fe8
8.- Aggiungere i 4 byte del checksum del punto precedente, all'hash esteso RIPEMD-160 dal punto 4. Questo è un indirizzo binario Bitcoin a 25 byte:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31c7f18fe8
9.- Converti il risultato della stringa di byte utilizzando la codifica Base58Check, utilizzato per codificare gli indirizzi Bitcoin. Quindi la stringa di byte verrà trasformata in una stringa base58.
1PMycacnJaSqwwJqjawXBErnLsZ7RkXUAs
Questo è il formato più utilizzato per gli indirizzi Bitcoin. Quindi la codifica Base58 Verifica converte la stringa di byte in un insieme di numeri e lettere maiuscole e minuscole, in modo da renderle più facilmente distinguibili. Anche se nell'insieme si tratta comunque di caratteri illeggibili e che a prima vista non risultano criptici.
Quindi puoi creare un indirizzo bitcoin in modo che possiamo usarlo come desideriamo. Tutto questo processo viene svolto anche con il Vanity Address, solo in quest'ultimo caso eseguiamo una generazione a forza bruta per cercare un indirizzo personalizzato.
Puoi saperne di più su questi tipi di indirizzi dal nostro articolo su Vanity Addres.
Caratteristiche degli indirizzi Bitcoin
- Ogni indirizzo pubblico di Bitcoin pesa circa 25 byte.
- Hanno una lunghezza di tra 26 e 32 caratteri.
- Possono iniziare con il numero 1, per indirizzi standard (P2PKH) o numero 3, per indirizzi con più firme (P2SH). Inoltre, le indicazioni SegWit inizia con bc1 (spiaggia32). D'altra parte, le direzioni Testnet Bitcoin iniziare con m o 2.
- L'implementazione di Base58Check, tra le sue numerose funzioni, impedisce l'uso di caratteri come O, I (maiuscolo) e l (minuscolo) per evitare che vengano confusi con il numero 0 o il numero 1.