Contenu
La semaine dernière, je suis tombé sur BIP-39 et j'ai appris son rôle dans la sécurisation des portefeuilles web3. Curieux, j'ai décidé d'essayer une démo pour voir comment cela fonctionne réellement. Un portefeuille web3, qui peut être logiciel ou matériel et est en auto-gestion, aide les utilisateurs à suivre leurs fonds blockchain. Ces portefeuilles sont régis par des clés privées qui ne doivent jamais être partagées. Mais comment cette clé privée est-elle exactement créée ? Et si vous voulez récupérer votre compte, devez-vous vous souvenir de cette longue clé privée compliquée ? La réponse rapide est non.\n\nAu lieu de devoir mémoriser ou stocker cette clé privée ingérable, les portefeuilles utilisent ce qu'on appelle une phrase mnémonique — généralement une séquence de 12 ou 24 mots. Cette phrase mnémonique est ce que vous obtenez lors de la configuration de votre portefeuille, et on vous avertit fortement de ne la partager avec personne. Mais quelle est l'origine de cette phrase ? Est-ce juste une collection aléatoire de mots assemblés ? Pour mieux comprendre, décomposons le processus.\n\nPour une phrase mnémonique de 12 mots, le portefeuille génère d'abord une entropie, qui est un grand nombre pseudo-aléatoire. Cette entropie est créée à l'aide d'un générateur de nombres pseudo-aléatoires cryptographiquement sécurisé (CSPRNG). Pour ma démo, j'ai utilisé un générateur moins sécurisé, mais normalement la taille de l'entropie est de 128 bits pour les phrases de 12 mots. Ensuite, l'entropie est hachée avec l'algorithme SHA-256. À partir du hachage, les quatre derniers bits sont pris comme somme de contrôle, qui est ajoutée à l'entropie originale, totalisant 132 bits.\n\nCette somme de contrôle agit comme un filet de sécurité lors de la récupération — elle garantit que si vous retapez votre phrase mnémonique, vous avez moins de chances de faire une erreur sans vous en rendre compte. Après avoir formé ce nombre de 132 bits, il est divisé en 12 groupes de 11 bits chacun. Chaque groupe de 11 bits se convertit en un nombre décimal entre 0 et 2047. Ces nombres correspondent à des mots dans la liste standard BIP-39, qui contient exactement 2048 mots uniques. Ainsi, la liste apparemment aléatoire de mots que vous obtenez est en fait dérivée systématiquement de ce codage au niveau binaire.\n\nUne fois que vous avez votre phrase mnémonique de 12 mots, elle est passée à travers une fonction spéciale pour produire une graine maître. Cette graine maître agit comme la source unique pour générer un nombre infini de clés privées et d'adresses de manière déterministe. Les chances que deux portefeuilles génèrent la même phrase mnémonique sont astronomiquement faibles — il y a 2^128 combinaisons possibles ! Ce nombre énorme rend le cassage par force brute pratiquement impossible car il serait computationnellement insensé d'essayer toutes les combinaisons.\n\nLorsque vous souhaitez récupérer un portefeuille, vous saisissez simplement les 12 mots dans l'ordre. Le logiciel du portefeuille recherche l'index décimal de chaque mot dans la liste BIP-39 et les convertit en 12 ensembles de nombres binaires de 11 bits. En les joignant, on retrouve le nombre de 132 bits. Les 4 derniers bits (somme de contrôle) sont séparés des 128 premiers bits (entropie). L'entropie est à nouveau hachée et la somme de contrôle est vérifiée par rapport à l'originale. Si elles correspondent, le portefeuille sait que la phrase mnémonique est valide, puis recrée la graine maître et les clés privées correspondantes.\n\nTout ce système peut sembler complexe, mais ce n'est essentiellement que des mathématiques, du code et une cryptographie solide. C'est ce qui maintient la sécurité de vos portefeuilles web3 tout en permettant une récupération facile via des phrases mnémoniques conviviales au lieu de clés privées impossibles à retenir.