Post
Topic
Board Italiano (Italian)
Re: [LIBRO COMPLETO GRATUITO] Bitcoin per tutti
by
rrupoli
on 06/04/2018, 13:43:01 UTC
In realtà, a causa del formato più piccolo utilizzato dall'address bitcoin (160 bit rispetto ai 256 bit delle chiavi private), più chiavi private possono accedere ai Bitcoin depositati sul medesimo address. Il numero di queste chiavi è di circa 2^96! A prima vista, un numero così grande potrebbe spaventare, significa infatti che esistono moltissime chiavi private che possono accedere ai miei Bitcoin. Il punto è che, nonostante siano tantissime, si perdono all'interno delle 2^256 esistenti. In particolare si stima che, tramite un attacco di tipo brute force, cioè un sistema automatico che prova tutte le possibili soluzioni ad un determinato problema, si riesca a trovare una chiave privata in grado di sbloccare un determinato address una volta ogni 2^160 tentativi, che sono comunque un numero considerevole per il livello tecnologico attuale. Per completezza di informazione, va inoltre detto che se dal nostro address abbiamo effettuato un trasferimento verso un altro address, abbiamo esposto a terzi la nostra chiave pubblica. Questa ulteriore informazione "facilita" l'attività di chi volesse cercare di accedere ai nostri Bitcoin, riducendo di fatto i numeri di tentativi medi per riuscire a sbloccare i fondi a 2^128.



La parte quotata è sostanzialmente corretta.
Se vuoi essere ancora più chiaro puoi spiegare i due casi di opportunità di attacco da parte di un ipotetico hacker:

a) se un Bitcoin address non è mai stato usato per inviare fondi (ha quindi solo ricevuto bitcoin e non ne ha mai spesi) allora la chiave pubblica non è mai stata esposta.
    In questo caso l'hacker è costretto ad attaccare il Bitcoin address con un numero di tentativi pari mediamente a 2^160 chiavi private (Hex).
    
b) se un Bitcoin address è stato usato anche solo una volta per inviare fondi allora la chiave pubblica è stata esposta.
    In questo caso l'hacker, pur potendo attaccare il Bitcoin address come nel caso precedente, ha maggior convenienza ad attaccarne la sua chiave pubblica (usando il metodo Pollard's rho), con un numero di tentativi pari mediamente a 2^128 chiavi private (Hex).


Volendo essere pignoli ci sono attacchi Pollard's rho leggermente più raffinati che riescono ad abbassare il numero di tentativi a 2^127.8 (https://safecurves.cr.yp.to/rho.html), ma sostanzialmente stiamo sempre attorno a 2^128, che è un numero ENORME sotto il quale nessun attacco a forza bruta riesce ad andare.

L'algebra sottostante le curve ellittiche (nella fattispecie la curva secp256k1 usata dal Bitcoin) è talmente peculiare ed elegante da non prevedere il concetto di "moltiplicazione tra due punti" o "reciproco di un punto" rendendo impossibile (se non con la forza bruta) estrarre k (la chiave privata) dalla formula P = k * G  pur conoscendo i punti P (public key) e G (punto generatore).