Author

Topic: Qual'è la probabilità che qualcuno generi un indirizzo Bitcoin che già esiste? (Read 1489 times)

hero member
Activity: 708
Merit: 506
I support freedom of choice
Ma, ipotizzando per assurdo che la potenza di hashing possa essere convertita a questo compito e mantenga il ritmo intatto, alla potenza di 2.5 milioni di miliardi di chiavi generate al secondo, il tempio necessario per verificare la metà delle chiavi esistenti è di 2*128/2.5*10^15/2=7*10^22secondi, ovvero diversi miliardi di millenni.

Io aggiungerei un discorso molto più convincente del tempo impiegato dal gruppo dei minatori, mi riferisco all'energia consumata ovvero al petrolio richiesto ovvero ai soldi spesi per la ricerca.

https://en.bitcoin.it/wiki/Mining_hardware_comparison

Prendendo un numero semplice come un consumo di 1000 Mhash/joule e facendo la stessa ipotesi assurda di rb1205 si ha 2^128/(1000*10^6)/2 ovvero 1.7*10^29 joule che sono 4.7*10^22 kWh

Facendo un conto che un kWh costa a livello industriale sui 10 centesimi di euro o anche a livello privato 25 centesimi di euro, vengono fuori costi enormi:

10 €cent/kWh...... 4.7*10^21 euro cioè molto di più del miliardo di euro che sono il patrimonio globale in bitcoin (un miliardo è 10^9, un miliardo di miliardi è 10^18, mille miliardi di miliardi è 10^21).

È un po' costosetto e in perdita minare in questo modo, poi non c'è abbastanza petrolio nel mondo per minare un indirizzo bitcoin e mi sa che non aiuta nemmeno tutto l'uranio del mondo.
hero member
Activity: 797
Merit: 1017
Alla faccia della mancanza nella fiducia nelle competenze del prossimo....
legendary
Activity: 1176
Merit: 1001
Ammetto che quando ho scritto hashing di chiave privata ci ho pensato un secondo, ho realizzato che non aveva molto senso potendo usare quella pubblica, ma poi ho erroneamente supposto che nessuno avrebbe notato la differenza Smiley
hero member
Activity: 797
Merit: 1017
Non sarebbe possibile fare una cosa del genere, perchè la maggior parte della potenza di calcolo generata dalla rete di hashing viene oggi dagli ASIC, che sono in grado solo ed esclusivamente di fare hashing di blocchi. Inoltre, la procedura per generare coppie di chiavi ECDMA e farne l'hashing richiede molti, molti più calcoli di quella necessaria per il proof of work, il numero di chiavi generate al secondo sarebbe molto minore del numero di hash al secondo.

Ma, ipotizzando per assurdo che la potenza di hashing possa essere convertita a questo compito e mantenga il ritmo intatto, alla potenza di 2.5 milioni di miliardi di chiavi generate al secondo, il tempio necessario per verificare la metà delle chiavi esistenti è di 2*128/2.5*10^15/2=7*10^22secondi, ovvero diversi miliardi di millenni.
member
Activity: 104
Merit: 10
Detto in parole povere: si è teoricamente possibile ma no, non è possibile.

Per fare un paragone, è estremamente più verosimile vincere per dieci volte consecutive al superenalotto puntando sempre gli stessi 6 numeri che, generando continuamente nuovi indirizzi, trovarne uno che sia già stato usato da qualcun'altro. D'altra parte, la crittografia in generale si basa su probabilità infinitesime ma non nulle: nessuno può escludere che, ad esempio, una firma digitale apparentemente valida sia semplicemente stata "indovinata" da qualcuno che ha schiacciato a caso tasti sulla tastiera e ha avuto tanta, tanta fortuna.

Per correggere i tuoi numeri: sono possibili circa 2128 chiavi valide, ovvero circa 3.4*1038. Se ogni persona della terra (7 miliardi) nella sua vita usasse un milione di indirizzi per altrettante transazioni, potremmo andare avanti centinaia di generazioni prima che la possibilità di generare un indirizzo già utilizzato in precendenza diventi una possibilità anche solo lontanamente verosimile.

Io comunque quando calcolo questa difficoltà faccio un altro ragionamento sbagliato, ovvero utilizzo la chiave privata; l'indirizzo btc è un hash della chiave privata, quindi contiene meno entropia.

Infatti, l'entropia contenuta in un indirizzo bitcoin, ovvero in una coppia di chiavi ECDMA da 256 bit, è di 128 bit. Ma attenzione, l'indirizzo è un'hash della chiave pubblica, non di quella privata. Immagino sia una svista.



Supponiamo che l'intero gruppo di minatori di Bitcoin si mettano a fare questo genere d'attacco. Ovvero, invece che cercare l'hash dell'ultimo blocco, si mettano a generare un indirizzo Bitcoin (con l'apposita chiave privata), finchè non trovano questo: 1933phfhK3ZgFQNLGSDXvqCn32k2buXY8a (https://blockchain.info/address/1933phfhK3ZgFQNLGSDXvqCn32k2buXY8a oltre 111 mila bitcoin).

Questo dovrebbe aumentare drasticamente la probabilità che si effettui un clash. La ma domanda a questo punto sarebbe, quanto impiegherebbe il network di minatori di Bitcoin (il supercomputer più potente al mondo) a generare quell'indirizzo?
hero member
Activity: 797
Merit: 1017
Detto in parole povere: si è teoricamente possibile ma no, non è possibile.

Per fare un paragone, è estremamente più verosimile vincere per dieci volte consecutive al superenalotto puntando sempre gli stessi 6 numeri che, generando continuamente nuovi indirizzi, trovarne uno che sia già stato usato da qualcun'altro. D'altra parte, la crittografia in generale si basa su probabilità infinitesime ma non nulle: nessuno può escludere che, ad esempio, una firma digitale apparentemente valida sia semplicemente stata "indovinata" da qualcuno che ha schiacciato a caso tasti sulla tastiera e ha avuto tanta, tanta fortuna.

Per correggere i tuoi numeri: sono possibili circa 2128 chiavi valide, ovvero circa 3.4*1038. Se ogni persona della terra (7 miliardi) nella sua vita usasse un milione di indirizzi per altrettante transazioni, potremmo andare avanti centinaia di generazioni prima che la possibilità di generare un indirizzo già utilizzato in precendenza diventi una possibilità anche solo lontanamente verosimile.

Io comunque quando calcolo questa difficoltà faccio un altro ragionamento sbagliato, ovvero utilizzo la chiave privata; l'indirizzo btc è un hash della chiave privata, quindi contiene meno entropia.

Infatti, l'entropia contenuta in un indirizzo bitcoin, ovvero in una coppia di chiavi ECDMA da 256 bit, è di 128 bit. Ma attenzione, l'indirizzo è un'hash della chiave pubblica, non di quella privata. Immagino sia una svista.

member
Activity: 104
Merit: 10
Ecco maggiori info: http://bitcoin.stackexchange.com/questions/7724/what-happens-if-your-bitcoin-client-generates-an-address-identical-to-another-pe

Quindi è veramente improbabile Smiley

Ecco un quote che fa ridere per rendersi veramente conto dell'improbabilità:

Quote
There is also a chance for you computer to catch on fire, and some of the materials to melt together into a lotto coupon with winning numbers on (and a valid barcode), but it just won't happen because of the chance is so unbelievable small (it's the same with the "click and generate another persons bitcoin address").
member
Activity: 104
Merit: 10
Il tuo ragionamento è sbagliato, perchè l'indirizzo btc ha (intrinseco) un checksum, in modo che una stringa casuale di 34 caratteri che inizi con 1 non possa essere scambiata per indirizzo btc.
Io comunque quando calcolo questa difficoltà faccio un altro ragionamento sbagliato, ovvero utilizzo la chiave privata; l'indirizzo btc è un hash della chiave privata, quindi contiene meno entropia.

2^256-1 è circa il numero di atomi presenti nell'universo osservabile.

Buona fortuna a beccare due atomi uguali.

Per ora non è mai stato dimostrato un attacco di collisione tra due hash SHA2-256, cosa che non si può dire per ad esempio MD5.

Ciao.

L'indirizzo btc non è un hash della chiave pubblica?

Il mio ragionamento è che, se qualcuno volesse fare un attacco, potrebbe prendere gli indirizzi btc con più soldi dalla block-chain. Diciamo i primi 100.

Poi magari con un ASIC provare di continuo a generare un indirizzo (che quindi genera anche la chiave private legata a quest'indirizzo), finché non si trova uno nella lista dei 100.

La probabilità che questo accada?
legendary
Activity: 1176
Merit: 1001
Il tuo ragionamento è sbagliato, perchè l'indirizzo btc ha (intrinseco) un checksum, in modo che una stringa casuale di 34 caratteri che inizi con 1 non possa essere scambiata per indirizzo btc.
Io comunque quando calcolo questa difficoltà faccio un altro ragionamento sbagliato, ovvero utilizzo la chiave privata; l'indirizzo btc è un hash della chiave privata, quindi contiene meno entropia.

2^256-1 è circa il numero di atomi presenti nell'universo osservabile.

Buona fortuna a beccare due atomi uguali.

Per ora non è mai stato dimostrato un attacco di collisione tra due hash SHA2-256, cosa che non si può dire per ad esempio MD5.

Ciao.
member
Activity: 104
Merit: 10
Con le mie basi matematiche un indirizzo Bitcoin è una stringa di 34 caratteri. Ogni carattere può avere un numero (da 0 a 9) o una lettera alfabetica (A-Za-z). Ditemi se sbaglio. Non so se le lettere fanno soltanto parte dell'alfabeto inglese.

Questo significa che ogni carattere dell'indirizzo può avere uno di 62 valori diversi (10 numeri diversi + 52 (lettere alfabeto maiuscole e minuscole)).

Visto che ci sono 34 caratteri nell'indirizzo, sarebbe a dire che ci sono 62^34 possibili indirizzi (un numero esorbitante).

Questo però non garantisce che qualcuno potrebbe generare un indirizzo che già esiste. Se per puro caso riesco a generare un indirizzo che già esiste, avrei anche quindi la chiave privata associata a quest'indirizzo. Ciò significa che potrei quindi usare i bitcoin dell'indirizzo che già esiste.

Qualcuno mi tranquillizza sull'impossibilità di questa cosa? Smiley

Grazie,
Luca
Jump to: