Bonjour,
J’ai une question de pure curiosité technique au sujet des hardware wallet, par exemple le Ledger :
Quand on initialise le Ledger, il nous donne une seed.
Quand on utilise ensuite l’appareil, on crée des adresses associées à des clés publiques et privées. Ces clés privées sont censées être conservées par et dans le ledger et nulle part ailleurs.
Si on perd l’appareil ou qu’on le détruit accidentellement, on peut en acheter un autre et en lui donnant la seed donnée par le premier Ledger, il paraît qu’on récupère le wallet, comme si rien ne s’était passé.
Pourtant les informations (les clés privées) étaient sur l’appareil perdu et la seed n’a pas changé, c’est toujours la même. Comment le nouveau Ledger peut retrouver les clés privées d’après une seed que ne savait rien des clés privées qui seraient créées sur l’ancien Ledger ?
C’est vraiment un mystère pour moi. Si quelqu’un peut m’éclairer…
Merci
Hello o/
En fait, la seed ("les 12 mots") correspondent à un index dans un dictionnaire qui est standard.
Tu peux les consulter ici :
https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.mdCe qui importe, ce sont les mots, et leur ordre.
En finalité, cette séquence de mots, dans un certain ordre, peut se convertir en une "Master private key" et une "Master public key".
La particularité de ces clés, c'est que tu peux y appliquer un principe de
dérivation.
En prenant la même info de départ (la master public key) et en y appliquant une opération cryptographique, tu peux generer plein d'adresses public Bitcoin différentes.
Le même principe s'applique avec les clé privées. Elles sont toutes dérivées à partir de la même donnée, qui découle de la seed.
Voici un diagramme qui résume ce fonctionnement :
Comme ça, tu peux même utiliser ta seed de Ledger avec une autre appli, et retrouver les adresses
BTC que ton Ledger t'indiquait.