Bitcoin Forum
November 08, 2024, 11:44:14 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: curiosité au sujet des hardware wallet  (Read 94 times)
Beauzebut (OP)
Member
**
Offline Offline

Activity: 79
Merit: 23


View Profile
January 14, 2021, 11:36:11 AM
Merited by Halab (3), Becassine (1)
 #1

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
yogg
Legendary
*
Offline Offline

Activity: 2464
Merit: 3158



View Profile WWW
January 14, 2021, 11:43:23 AM
Merited by Halab (5), asche (2), Becassine (1)
 #2

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.md

Ce 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. Smiley
Beauzebut (OP)
Member
**
Offline Offline

Activity: 79
Merit: 23


View Profile
January 14, 2021, 12:04:39 PM
 #3

Ah ! Merci. Vraiment fascinant !
Je suppose, pour que ça fonctionne, que la création de child keys et grandchid keys à partir de la Master Key est totalement déterminée (pas aléatoire). C’est-à-dire que la même Master Key (expérience de pensée qui imagine deux même clés) pondra les mêmes descendant dans le même ordre. Ce qui permet donc de recréer ces clés à partie de la seed. C’est ça ?
yogg
Legendary
*
Offline Offline

Activity: 2464
Merit: 3158



View Profile WWW
January 14, 2021, 12:10:32 PM
Merited by Halab (3), Beauzebut (1)
 #4

Ah ! Merci. Vraiment fascinant !
Je suppose, pour que ça fonctionne, que la création de child keys et grandchid keys à partir de la Master Key est totalement déterminée (pas aléatoire). C’est-à-dire que la même Master Key (expérience de pensée qui imagine deux même clés) pondra les mêmes descendant dans le même ordre. Ce qui permet donc de recréer ces clés à partie de la seed. C’est ça ?


Oui, tout à fait. Smiley
C'est une opération déterministe. (un peu comme l'algo de hash SHA-256 au coeur de BTC)
La même seed (donc, la même liste de mots dans le même ordre) permettra toujours de générer la même Master public key et Master private key.

Si tu dois automatiser la reception de BTC pour une appli quelconque, tu peux te débrouiller en te basant sur la Master public key, et ton appli donnera une adresse publique BTC différente à chaque personne.
En même temps, tu récupéreras tout les fonds dans le portefeuille dans lequel cette seed est chargée.
(Bon .. il y'a subtilitées pratiques, par exemple si tu dérives 10 000 adresses BTC avec ta master public key, il faut que le wallet que tu utilises sache aller vérifier à la 9990è adresse si des fonds sont arrivés .. En général, quand tu cliques sur "créer une adresse de paiement" ou "recevoir", ton wallet va commencer à observer l'adresse publique qu'il t'a fournie.)

T'a l'air d'avoir bien saisi le fonctionnement. Cheesy
Beauzebut (OP)
Member
**
Offline Offline

Activity: 79
Merit: 23


View Profile
January 14, 2021, 12:38:18 PM
 #5

Génial !
Merci beaucoup :-)
Becassine
Hero Member
*****
Offline Offline

Activity: 2002
Merit: 816



View Profile WWW
January 18, 2021, 07:12:57 PM
 #6

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

Toujours des questions pertinentes, ça mérite bien un smerit  Wink

Beauzebut (OP)
Member
**
Offline Offline

Activity: 79
Merit: 23


View Profile
January 18, 2021, 07:22:24 PM
 #7

Toujours des questions pertinentes, ça mérite bien un smerit  Wink

smerit ?
Becassine
Hero Member
*****
Offline Offline

Activity: 2002
Merit: 816



View Profile WWW
January 18, 2021, 07:50:02 PM
Merited by Beauzebut (1)
 #8

Toujours des questions pertinentes, ça mérite bien un smerit  Wink

smerit ?

smerit = sendable merit. C'est vrai j'aurais dû écrire merit tout court.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!