Tôt ou tard, la plupart des possesseurs de Ledger Nano se demandent s'il est possible de personnaliser leur phrase de récupération. Certains vont même plus loin en tentant d'utiliser des mots choisis au hasard lors du processus de restauration. Dans de tels cas, après avoir confirmé le dernier mot, ils verront presque certainement le message :
"Recovery phrase is invalid, retry"
Cela signifie-t-il qu'il est impossible de créer un nouveau portefeuille avec votre propre ensemble de mots personnalisés ?
Bonne nouvelle : c'est tout à fait possible, bien qu'avec quelques restrictions. Mais reprenons depuis le début.
La première contrainte est que tous les mots doivent impérativement faire partie de la liste standard BIP39.
(Proposition d'amélioration du Bitcoin - numéro 39). Vous pouvez découvrir exactement ce que sont les propositions d'amélioration du Bitcoin dans cet article Wikipédia dédié.
BIP39 n'est ni plus ni moins qu'un dictionnaire de 2 048 mots, sélectionnés de façon à ce que les 4 premières lettres de chaque mot soient uniques. Cette règle s'applique même aux mots de trois lettres.
Cette particularité facilite leur mémorisation lorsqu'on crée une séquence de plusieurs mots – ce qu'est précisément votre phrase de récupération.
La seconde contrainte concerne le dernier mot de votre séquence. Il s'agit d'une somme de contrôle spécifique, déduite mathématiquement de tous les autres mots de la séquence, ce qui signifie que vous ne pouvez pas la choisir arbitrairement. C'est la raison exacte pour laquelle vous obtenez un message d'erreur à chaque fois que vous tentez de saisir des mots aléatoires comme phrase de récupération sur votre Ledger Nano. En général, plusieurs mots peuvent satisfaire la condition de somme de contrôle ; cependant, les chances de tomber sur un mot valide par simple hasard sont infimes. Le nombre de mots qui satisfont à la condition de somme de contrôle est strictement lié au nombre total de mots de départ. Dans le cas d'une phrase de récupération de 24 mots (l'option la plus sécurisée), il y a toujours exactement 8 mots possibles qui peuvent servir de somme de contrôle. Ainsi, la chance d'en tirer au hasard un valide dans l'ensemble BIP39 de 2 048 mots est exactement de 8 en 2048, soit seulement 0,39 %. Rien d'étonnant donc à ce que vous ayez obtenu une erreur.
Alors, comment pouvons-nous trouver la somme de contrôle appropriée pour une séquence de notre propre choix ? Par exemple, prenons un ensemble aléatoire de 23 mots conformes à la norme BIP39 :
Chaque mot possède un index, un numéro correspondant à sa position alphabétique. Attention : la numérotation commence à 0. Chaque index doit ensuite être exprimé sous une valeur binaire. Étant donné que la liste BIP39 contient 2 048 éléments, chaque index de mot doit être composé de 11 bits. Ainsi on retrouve :
À l'étape suivante, nous concaténons tous les index, en préservant leur ordre d'apparition. Cela nous donne une séquence binaire de 253 bits :
Nous complétons ensuite ce résultat avec 3 bits supplémentaires de notre choix.
Vous souvenez-vous, comme nous l'avons dit, que la phrase de récupération de 24 mots a exactement 8 résultats de somme de contrôle possibles ?
Le numéro 8 n'est qu'une simple conséquence de ces 3 bits.
Nous obtiendrons tous les 8 résultats en mettant simplement ici 000, 001, 010, 011, 100, 101, 110 et 111.
Pour cet exemple, nous choisissons : 000.
Nous le concaténons à la fin, ce qui donne un mot binaire de 256 bits :
L'étape suivante consiste à calculer le hachage SHA256 de ces données binaires préparées.
L'algorithme SHA256 (algorithme de hachage sécurisé, sortie 256 bits) est un élément essentiel de la technologie blockchain.
Pour en savoir plus sur le SHA256, consultez l'article Wikipédia sur l'algorithme SHA-256.
À la suite de ce calcul, nous obtenons le mot hexadécimal suivant :
L'étape suivante consiste à extraire les 8 premiers bits du résultat ci-dessus. Ainsi nous prenons les 2 premiers caractères hexadécimaux - 27.
Ils correspondent à :
Une fois de plus, nous utilisons les 3 mêmes bits que nous avons choisis auparavant. Cette fois, nous les concatérons au début de la chaîne binaire extraite. Par conséquent, nous obtenons :
qui est la valeur binaire 39. Il s'agit d'un index BIP39 du mot de somme de contrôle que nous essayons de trouver. N'oubliez pas que la numération de l'index commence à « 0 ». Ainsi si vous utilisez une liste de mots BIP39 avec une numération standard commençant à 1 », alors le numéro d'index réel sera 40. Nous trouvons l'index approprié sur le Liste BIP39 et nous recevons le mot : agent Finalement, la phrase de récupération de 24 mots contenant 23 mots de notre choix est :
Pour les combinaisons de 3 bits restantes, le dernier mot de somme de contrôle est :


