Programma rivela le chiavi private degli indirizzi Bitcoin P2PKH
Bitcoin

Programma rivela le chiavi private degli indirizzi Bitcoin P2PKH

By Isidoro Ghezzi - 10 Mar 2019

Chevron down

Quando mostro la paginetta web directory-js con un programma che permette di esplorare tutte le chiavi private degli indirizzi Bitcoin di tipo “pubkeyhash” o P2PKH, la prima reazione è quasi sempre di incredulità e scetticismo.

Read this article in the English version here.

Screenshot of bitcoin-last-page

Addirittura  alcuni “presunti” esperti in ambito blockchain mi hanno dato dell’impostore, (anche insultandomi), accusandomi di mostrare dati farlocchi.

Ma… che i numeri mostrati non siano farlocchi, può verificarlo chiunque, ad esempio utilizzando privateKeyWifToAddress o altri analoghi servizi sia online che offline.

La seconda reazione, dopo aver verificato che quei numeri siano veritieri, è di sconforto e preoccupazione sulla sicurezza di Bitcoin.

Ma tranquilli, quella semplice paginetta, non lede in alcun modo l’integrità di Bitcoin, anzi la rafforza.

Allora qual è il problema? Il problema è che la mente umana è limitata: d’istinto, non è capace di quantificare quanto sia grande il numero 115792089237316195423570985008687907852837564279074904382605163141518161494336, che costituisce esattamente il numero degli indirizzi Bitcoin P2PKH.

La sicurezza di Bitcoin è integra, semplicemente perché quella pagina, mostra il risultato ordinato per chiave privata, non per indirizzo Bitcoin.

Quindi la ricerca di un indirizzo con un saldo positivo in quella pagine, è semplicemente impraticabile.

Ad esempio: supponiamo di voler scandire tutte le chiavi private alla ricerca di un saldo positivo, e supponiamo che ogni abitante della terra abbia una velocità di scansione un miliardo di volte superiore al doppio della potenza di calcolo attuale della rete Bitcoin, quindi:

  • 10 miliardi di persone;
  • moltiplicato per un miliardo;
  • moltiplicato per il doppio della potenza di calcolo di Bitcoin, circa 100 mila terahash al secondo;

si ottiene: 10000000000*1000000000*100000*1000000000000 = 10^10*10^9*10^5*10^12 = 10^36

Per semplicità approssimiamo per difetto `115792089237316195423570985008687907852837564279074904382605163141518161494336` a 10^77,  si ottiene che, se controllassimo ogni singola chiave privata, alla ricerca di un saldo positivo, ci vorrebbero 10^77/10^36 = 10^41 secondi.

Essendoci in un anno circa 31557600 secondi, corrisponde a circa 10^41/31557600 = 31^33 anni, che è più o meno 10^23 volte l’età stimata dell’universo (attualmente stimata in 13.82 miliardi di anni), insomma 100 000 000 000 000 000 000 000, quindi circa 100 miliardi di miliardi di volte l’età dell’universo.

Calcolando meno approssimativamente, tramite un semplice programma calculate-number-of-universal-age.js, si ottiene un risultato di circa 265 miliardi di miliardi di volte l’età dell’universo.

Ci si potrebbe ancora chiedere, come faccia quella semplice pagina web, a mostrare allora tutte le chiavi private degli indirizzi Bitcoin P2PKH.

La risposta è che non le mostra tutte, ma mostra solo quelle che si stanno visualizzando. Insomma, conoscendo il numero pagina (ad esempio la pagina 18092513943), il programmino lato client sa che deve visualizzare le 64 chiavi private in successione da (18092513943-1)*64+1 = 1157920892289, quindi le chiavi che vanno da 1157920892289 a 1157920892352. Il tutto calcolato al volo lato client in pochi centesimi di secondo, senza l’ausilio di alcun database.

Attenzione però:

  • Non utilizzate alcuna chiave privata, che visualizzate in qualunque tra le 1809251394333065553493296640760748560200586941860545380978205674086221273349 pagine disponibili: infatti se la vedete voi, la può vedere anche qualche malware installato sul vostro computer o cellulare.
  • Non provate a visualizzare in quella pagina, una qualunque chiave privata che avete a disposizione: se la vedete voi, la può vedere anche qualche malware installato sul vostro computer o cellulare.

Quindi, se non si scrive Bitcoin, è TRUFFA

06A1 72EB ED3E 6F59 5233

1984 971E 1F79 80BB 3DEB

 

Isidoro Ghezzi
Isidoro Ghezzi

Isidoro è un Senior software developer e Bitcoin Core contributor

Utilizziamo i cookie per essere sicuri che tu possa avere la migliore esperienza sul nostro sito. Se continui ad utilizzare questo sito noi assumiamo che tu ne sia felice.