Indirizzi Bitcoin

Un indirizzo Bitcoin è composto da tre elementi, una chiave privata, una chiave pubblica e l’indirizzo finale. Le prime due sono generate contemporaneamente tramite un algoritmo crittografico a curva ellittica chiamato ECDSA (Elliptic Curve Digital Signature Algorithms), tra loro esiste un legame matematico, una chiave pubblica funziona solo con la corrispondente chiave privata.

L’indirizzo finale è il risultato di una semplificazione, attraverso specifici algoritmi criptografici, della chiave pubblica. Normalmente è una stringa composta da i 25-35 caratteri alfanumerici, ad esempio:

18cYzDJQTTmTZrT6KCE9Gm4CzQbNsE86KF

La chiave privata ha invece una lunghezza di circa 51 caratteri, ad esempio:

5KkevuHdQA9emBod53DRGXQna1SrY5eAgznDEg4K8F6L7GQkeS2

Per evitare incomprensioni nella comunicazione della stringa, si è scelto di non utilizzare alcuni simboli come:

  • lettera “O” maiuscola e il numero “0”;

  • lettera “L” e la lettera “I” maiuscola;

Inoltre attraverso il sistema di checksum1 sarà subito possibile capire se l’indirizzo dovesse contenere un carattere errato.

È sempre possibile ricavare la chiave pubblica partendo da quella privata ma non il contrario, quindi: se la chiave pubblica potrà essere comunicata a chiunque, quella privata, essendo dispositiva, è bene mantenerla al sicuro.

Essendo, a volte, difficile poter memorizzare delle stringhe casuali e senza senso, è stata sviluppata una versione avanzata del portafoglio, denominata HD Wallet, Attraverso un algoritmo deterministico è possibile generare le due chiavi partendo da una combinazione di parole, definita “seme”, ad esempio:

sette libellule blu volavano sui laghi della mia immaginazione

Un Wallet HD potrà generare e gestire più coppie di chiavi partendo da un’unica frase, così, anche se le dovessimo smarrire o perdere, attraverso questo sistema sarà possibile ricostruire le chiavi private e quindi di conseguenza quelle pubbliche.


1 In ambito finanziario sono utilizzati già da diversi anni per il controllo degli iban o delle carte di credito, in linea teorica potremmo definire il checksum come «..una stringa creata da un algoritmo matematico che consente di determinare se due file sono identici. In un file anche la modifica di un solo bit genererà checksum diversi…» tratto da: HATCH B., LEE J., KURTZ G., (2001), “Hacking Linux Exposed: Linux Security Secrets e Solutions”




Rispondi

Questo sito web utilizza i cookie e chiede i utilizzare alcuni tuoi dati personali per migliorare la tua esperienza di navigazione.