Brain wallet
Un brain wallet est un wallet dont la seed est mémorisée mentalement, généralement issue d'une phrase choisie par l'utilisateur. Très peu sûr car les humains sous-estiment l'entropie. De nombreux brain wallets ont été vidés par force brute. Codex32 ou SeedXOR sont de meilleures alternatives.
L'idée romantique du wallet « dans la tête »
Un brain wallet consiste à dériver une clé privée à partir d'une phrase choisie par l'utilisateur, le plus souvent par un simple SHA-256 de cette phrase. Séduisant en apparence : aucun support physique à protéger, on traverse une frontière sans rien sur soi, on peut « rentrer » dans ses bitcoins en récitant un poème. C'est l'illusion qui a coûté très cher à de nombreux pionniers.
Pourquoi c'est dangereux
Les humains sont catastrophiques pour générer de l'entropie. Une étude de Vitalik Buterin en 2013, puis des travaux de Ryan Castellucci à DefCon 2015, ont montré qu'on pouvait pré-calculer des dictionnaires de plusieurs milliards de brain wallets candidats à partir de phrases de livres, chansons, films, citations, et balayer la blockchain à la recherche de matches. Castellucci a documenté plus de 18 000 brain wallets vidés à l'époque, pour un total de plus de 250 BTC volés.
| Source utilisée par les attaquants | Exemples | |------------------------------------|----------| | Œuvres populaires | Citations de Shakespeare, Bible, films cultes | | Mots de passe leakés | RockYou, LinkedIn | | Phrases techniques | « correct horse battery staple » (xkcd) | | Combinaisons mécaniques | Dates, numéros de téléphone |
Tous ces espaces sont parcourus en quelques heures sur GPU.
Comparaison avec une vraie seed BIP-39
Une seed BIP-39 de 12 mots vaut 128 bits d'entropie (~3,4 × 10^38 possibilités). Une phrase humaine « originale » dépasse rarement 30-40 bits d'entropie réelle, soit des milliards de fois moins. L'écart est tel qu'aucune mnémonique humaine n'approche la sécurité d'une seed correctement générée par un générateur aléatoire matériel.
Alternatives sérieuses
Si l'objectif est la résilience à la perte du support, plusieurs options existent :
- Codex32 : BIP-93, partage Shamir sur seed, vérifiable à la main
- SeedXOR : XOR de plusieurs seeds réparties géographiquement
- SLIP-39 : Shamir Secret Sharing en backup
- Multisig géographique : 2-de-3 distribué physiquement
À retenir
Le brain wallet est une fausse bonne idée. Aussi originale que paraisse votre phrase, des dizaines d'attaquants la testent déjà. Utilisez une seed générée par un hardware wallet ou une vraie source d'entropie, et protégez-la avec du métal et un plan de succession sérieux.
Termes lies
- EntropieL'entropie est la mesure de l'aléa contenu dans une donnée. Une seed Bitcoin doit reposer sur 128 à 256 bits d'entropie réelle pour être sûre. Une mauvaise entropie (PRNG faible, brain wallet) peut conduire à la perte des fonds. Les hardware wallets utilisent des sources matérielles (TRNG) pour la garantir.
- Force bruteUne attaque par force brute consiste à essayer toutes les combinaisons possibles d'une clé ou d'un mot de passe. Sur 256 bits, c'est mathématiquement impossible avec la technologie actuelle. La force brute reste toutefois efficace contre les seeds à faible entropie ou les passphrases courtes. Bitcoin tire sa sécurité de l'astronomie de l'espace de clés.
- Codex32Codex32 (BIP-93) est un schéma moderne de partage de seed avec résilience aux erreurs. Lisible humainement et calculable à la main. Conçu par Andrew Poelstra. Alternative à SLIP-39.
- SeedXORSeedXOR (ColdCard) divise une seed en N parts via XOR : chaque part seule est inutile, toutes sont nécessaires. Schéma simple inspiré du SSS. Alternatif à Shamir Secret Sharing.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.