Onestamente non sapevo che i brain wallets funzionassero così, ho una discreta infarinatura di crittografia e non li avevo mai usati (va da sè che non sapevo il funzionamento) ma non pensavo proprio esistesse la possibilità di generare un indirizzo a partire da una password proprio perchè suscettibili al chosen-plaintext-attack, cioè pensavo proprio che bitcoin non lo permettesse...buono a sapersi
Purtroppo in passato parecchi bitcoins sono stati sottratti a chi ha riposto fiducia in un brain wallet (idea affascinante peraltro perchè rappresenta un modo per custodire la private key solo nella propria mente, senza bisogno di stamparla o salvarla su un harddisk).
Non si tratta in realtà di una funzionalità prevista dal protocollo Bitcoin, ovvero ciò che il sistema Bitcoin si aspetta è solo che tu generi una private key random lunga esattamente 32 bytes (pari a 64 cifre esadecimali), poi come la generi è affar tuo.
Questa per esempio è una private key perfettamente lecita che ha contenuto diversi BTC in passato (in Hex):
0000000000000000000000000000000000000000000000000000000000000001
la quale controlla questo indirizzo:
1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm E' la più semplice private key che si possa immaginare, si prende il punto generatore G e lo si moltiplica per 1 ottenendo la Public Key che rappresenta esattamente il punto di partenza G.
Il concetto di brain wallet nasce da qui, usando come private key una sequenza numerica (con caratteri Hex da 0 a F) facile da ricordare per il detentore.
Poi si è evoluto sfruttando il fatto che la funzione di hashing Sha256 produce come output esattamente 64 cifre esadecimali, proprio quelle richieste dal sistema Bitcoin per la private key.
Allora puoi scegliere una password a piacere, ne fai lo Sha256 e ottieni la tua private key mnemonica, ciò che si intende oggi di norma per "brain wallet".
Sono state craccate password considerate inviolabili come:
"
how much wood could a woodchuck chuck if a woodchuck could chuck wood"
che controlla il seguente indirizzo:
1GjjGLYR7UhtM1n6z7QDpQskBicgmsHW9kQuesto brain wallet conteneva la bellezza di 500 bitcoins, il legittimo proprietario ha avuto la
GRANDE FORTUNA di imbattersi in un famoso White Hat che lo avvisato sottraendogli qualche Satoshi per fargli capire che il suo brain wallet era compromesso.
Un altro sprovveduto ha pensato bene di usare come password il termine "password" ma invece di applicare un singolo Sha256, lo ha applicato 1975 volte (probabilmente il suo anno di nascita) ritenendo di essere al sicuro. Conto svuotato.
Morale, non usate MAI i brain wallet anche se può apparentemente sembrare un'idea geniale: prima o poi qualche bot grazie ad un dictionary brute force avanzato troverà quella sequenza di parole che avete scelto.
Le private key devono essere genuinamente casuali per stare in una botte di ferro.