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. Ma come viene generato un indirizzo bitcoin? Qual è il tuo segreto? Bene, qui vi diciamo tutto su questo processo.

APrima di iniziare, è essenziale ricordare che questo articolo è rivolto a quegli utenti che hanno una certa conoscenza di Bitcoin e il mondo delle criptovalute. Quindi ti consigliamo di rivedere prima alcuni argomenti di questo mondo in modo che tu possa capirli. Con questo sarai molto chiaro sul rapporto che hanno con Bitcoin e sulla creazione di indirizzi. Tra questi articoli c'è quello di crittografia asimmetrica, funzione hash, Algoritmi SHA-256 y ECDSA.

Ora esaminiamo brevemente cos'è un indirizzo Bitcoin. Puoi dare un'occhiata al nostro articolo Cos'è un indirizzo Bitcoin? per espandere le tue conoscenze.

Bene, nel mondo di criptovalute, un indirizzo è un identificatore, il luogo a cui è associata e destinata una certa quantità di criptovalute. Pertanto, chiunque desideri inviare o ricevere criptovalute avrà sempre bisogno di un indirizzo. Ad esempio, in Bitcoin gli indirizzi pubblici generalmente hanno 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 prima con la generazione di un file chiava privata. Questo ci fornirà l'uso esclusivo dei fondi. Da questo, viene generata una chiave pubblica, che ci consentirà di condividere informazioni con altre persone senza mettere a rischio i nostri fondi. L'ottenimento della chiave pubblica tramite 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 RIPEMD-160. Con cui produce 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 l'aggiunta di questo byte consente anche di 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 Base58Check converte la stringa di byte in un insieme di lettere e numeri maiuscoli e minuscoli. Questo per renderli più facili da distinguere. Sebbene nel complesso siano ancora caratteri illeggibili ea prima vista non sono criptici.

Questo è l'intero processo il cui scopo è creare un indirizzo bitcoin in modo che possiamo usarlo come vogliamo. Tutto questo processo viene svolto anche con i Vanity Address, sono ciò che quest'ultimo caso portiamo avanti una generazione a forza bruta per cercare un indirizzo personalizzato. Bene, scopri di più su questo tipo di indirizzo dal nostro eccellente articolo su Vanity Addres.

Quanto sai, Cryptonuta?

La generazione di indirizzi in Bitcoin ha la capacità di generare indirizzi univoci in ogni momento?

Certo!

Una delle caratteristiche più potenti del processo di generazione in Bitcoin è che è in grado di creare indirizzi unici e irripetibili per Bitcoin per tutti i suoi utenti in ogni momento.

Panoramica degli indirizzi Bitcoin

  1. Ogni indirizzo pubblico di Bitcoin pesa circa 25 byte.
  2. Sono costituiti da una lunghezza di tra 26 e 32 caratteri.
  3. Possono iniziare con il numero 1, per indirizzi standard (P2PKH) o numero 3, per indirizzi con più firme (P2SH). Allo stesso modo, le direzioni SegWit inizia con bc1 (bech32). D'altra parte, le direzioni Testnet Bitcoin iniziare con m o 2.
  4. 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.