Ma alla fine il paper wallet non è semplicemente una stampa di chiave pubblica e privata? Che poi comunque sono immagazzinate nella blockchain.
Una brute force di una rete di computer con un gozzilione di operazioni al picosecondo alla fin fine possono violare qualunque chiave. Anche se le possibilità sono 1 su 10 alla 79 o giù di lì, si tratta solo di ridurre il tempo che ci impieghi a provare tutti gli indirizzi nel range dato, tramite incremento esponenziale di potenza di calcolo.
O sbaglio?
Tecnicamente un paper wallet può essere rappresentato stampando solo ed unicamente la chiave privata, la relativa chiave pubblica si può sempre facilmente ricalcolare.
Se hai la chiave privata entri nel caveau in cui sono custoditi i tuoi bitcoin, se la perdi i tuoi bitcoin sono persi per sempre.
Sulla blockchain non è mai indicata la chiave privata altrimenti chiunque potrebbe entrare nel caveau e rubarti i bitcoin.
L'immagine del caveau può aiutarti a visualizzare come è strutturato il meccanismo di difesa del sistema Bitcoin.
Immagina una cassaforte con una parete di acciaio spessa parecchi metri.
Questo è il primo presidio di difesa rappresentato dalla Crittografia a Curve Ellittiche (ECC).
Questo tipo di crittografia è quanto di più avanzato ed elegante esista attualmente in letteratura e supera in "potenza" di un fattore 12 la vecchia crittografia RSA (ancora in uso) basata sulla fattorizzazione di grossi numeri primi. La cassaforte inoltre è protetta da due larghi e profondi fossati concentrici (con coccodrilli assortiti al loro interno).
Il primo fossato rappresenta la funzione di hash SHA256, il secondo fossato la funzione di hash RIPEMD-160.
-----------------------------
ATTACCO DI UN INDIRIZZO CON CHIAVE PUBBLICA MAI ESPOSTASupponiamo ora che tu possieda un paper wallet in cui hai appena versato 100 bitcoin.
In quel momento il tuo tesoretto è protetto da tutti i presidi previsti: cassaforte e doppio fossato con coccodrilli.
Per dare una misura di quanto sei protetto si ragiona in numero di tentativi necessari per scoprire UNA delle chiavi private che permetta di arrivare a superare i fossati e aprire la cassaforte, cioè di prelevare i bitcoin accreditati sul tuo paper wallet.
Se hai notato ho scritto "UNA" delle chiavi private perchè si assume esistano ben 2^96 chiavi private in grado di superare i fossati e aprire la cassaforte.
Questo può lasciare qualcuno scioccato per un istante: per accedere alla cassaforte non è necessario trovare esattamente la stessa chiave privata stampata sul paper wallet, basta trovarne una qualunque delle 2^96 in grado di aprirla, cioè esistono circa 10 miliardi di miliardi di miliardi di chiavi private in grado di aprire il tuo paper wallet.
Questo riduce lo spazio di attacco da circa 2^256 (numero di chiavi private possibili) a circa
2^160 chiavi private da provare, un numero comunque
MOSTRUOSO.
Questo è l'approccio adottato dal progetto LBC (Large Bitcoin Collider)
https://lbc.cryptoguru.org/stats--------------------------------------------------------------
ATTACCO DI UN INDIRIZZO CON CHIAVE PUBBLICA ESPOSTAOra supponiamo che tu decida di prelevare qualche bitcoin dal tuo paper wallet.
Nel momento in cui viene pubblicata la transazione sulla blockchain automaticamente perdi la protezione di entrambi i fossati con i coccodrilli in quanto viene esposta al mondo intero la chiave pubblica.
Però ti rimane la notevole protezione data dalla cassaforte (ECC), vediamo il numero di chiavi private che è necessario testare per riuscire ad entrare.
In questo caso esiste una sola chiave privata (quella stampata sul paper wallet) in grado di generare la chiave pubblica esposta durante la transazione.
Il numero di chiavi private possibili è ancora 2^256 per cui apparentemente sembrerebbe meno oneroso l'approccio precedente piuttosto che attaccare direttamente la chiave pubblica.
Per ridurre il numero di tentativi ci viene in soccorso un vecchio metodo degli anni '70 detto Pollard's RHO che permette di abbattere statisticamente il numero di tentativi necessari a scoprire la chiave privata da 2^256
a circa 2^128 (numero ancora incredibilmente MOSTRUOSO).-------------------------------------------------------------------
Per riassumere, se la chiave pubblica non è mai stata esposta è necessario adottare il primo approccio esplorando uno spazio di circa 2^160 chiavi.
Se la chiave pubblica è stata esposta conviene sfruttarla attaccandola con il metodo Pollard's RHO esplorando uno spazio di circa 2^128 chiavi.
Oggi i tempi necessari per esplorare tali spazi sono nell'ordine di miliardi anni con le attuali tecnologie, si ritiene già largamente sicuro uno spazio superiore a 2^100 chiavi, figuriamoci 2^128 o 2^160 chiavi.
Non essendoci scorciatoie matematiche all'orizzonte, l'unica via oggi percorribile è la forza bruta.
Si sta fantasticando molto sull'uso dell'algoritmo di Shor con i futuri computer quantistici.
Ad oggi non si hanno le idee chiare nemmeno sulla tecnologia conveniente nel realizzare un singolo qubit, siamo ancora in piena fase di ricerca, potrebbero volerci ancora 20 anni prima di vedere una macchina quantistica appena appena competitiva con la tecnologia binaria tradizionale.
E se anche per ipotesi tale macchina dovesse prima o poi apparire, sarebbe già un risultato strabiliante riuscire ad abbattere i tempi di calcolo per rompere la ECC dai miliardi di anni attuali a qualche anno di elaborazione quantistica parallela.
E nel frattempo chissà quali adeguamenti saranno già avvenuti nel sistema di protezione del Bitcoin (o come si chiamerà fra 20 anni la sua naturale evoluzione...).
Personalmente dormirei sonni tranquilli per molto tempo anche con chiave pubblica esposta.P.S. un suggerimento per i più paranoici: tenete d'occhio i primi 20 indirizzi con i maggiori saldi assoluti in bitcoin, diversi hanno la chiave pubblica esposta e pure con diverse transazioni in uscita. Finchè nessuno di quegli indirizzi verrà craccato allora di certo nessuno al mondo spenderà risorse per tentare di aprire il vostro personale indirizzo con qualche frazione di BTC...