témoin séparé : Pouvez-vous récupérer des fonds envoyés à une adresse héritée créée avec une clé privée étendue Segwit importée dans Mycelium à partir d'un Ledger Nano S ?
En fait, j’ai découvert la réponse :
La réponse est décrite sur Reddit : https://www.reddit.com/r/ledgerwallet/comments/7d39pu/legacy_to_segwit_wallet_transfer_nightmare/
Mais si cette réponse venait à se perdre, un résumé :
Apparemment, les adresses xpub segwit ne sont pas un bon mariage (encore). Le portefeuille Mycelium importe l’adresse xpub qui est générée par le portefeuille Ledger Segwit, mais crée des adresses héritées à partir de la clé. Comme Mycelium est uniquement surveillé, vous ne pouvez plus envoyer vos fonds car l’adresse bitcoin héritée n’apparaît pas dans un portefeuille activé par segwit, vous voulez donc la clé privée qui signe pour l’adresse bitcoin héritée publique. C’est ce que vous devez savoir : trouver la clé publique qui est hachée dans l’adresse bitcoin publique.
La clé publique (pas l’adresse bitcoin) est la même pour l’adresse qui apparaît comme une ancienne adresse et l’adresse segwit. Lorsque vous choisissez le bon chemin de dérivation, vous verrez l’adresse commençant par un 1 et vous verrez la clé publique à côté. Cette dernière partie, savoir où chercher, n’est pas très simple pour les n00bs comme moi. Cette clé publique correspond à une adresse segwit, commençant par un 3. Et à côté de l’adresse segwit, vous trouverez la clé privée. Après avoir importé la clé privée dans un portefeuille comme Electrum, vous pouvez déplacer vos fonds vers une adresse Segwit normale.
Ainsi, Mycelium utilise le chemin m/44’/0’/0’/x, qui est BIP44, et une adresse SegWit utilise BIP49 (m/49/etc)
S’il s’agit de beaucoup de fonds, essayez d’en faire autant hors ligne que possible, mais le conseil est de créer une nouvelle graine pour votre grand livre et de transférer tous les fonds de toutes les pièces vers la nouvelle graine. Une fois que vous avez fait cela, jouer avec vos clés privées à partir de vos anciennes graines ne fait pas de mal car les soldes sont nuls (à l’exception de cette seule adresse)
Maintenant, allez chercher un outil BIP39, comme : https://iancoleman.io/bip39/ (vous pouvez également l’utiliser hors ligne)
Copiez l’adresse xpub que vous avez obtenue dans la section SegWit de votre portefeuille Ledger Bitcoin et copiez l’adresse dans l’outil. Assurez-vous de sélectionner le chemin de dérivation BIP32 ! Laissez Client à Custom et chemin de dérivation à m/0.
Collez votre clé xpub dans le champ Clé racine BIP32. En bas de l’écran, vous verrez une liste d’adresses dérivées.
Revenez à votre installation Mycelium et vérifiez quelle adresse a été utilisée pour la transaction (ou collez la clé xpub dans un explorateur de blocs). Dans mon cas, c’était le premier. Sur le côté droit de l’adresse commençant par un 1 se trouve la clé publique. Copiez la clé publique dans le bloc-notes ou gedit ou autre. La partie clé privée est vide (c’est logique, tout ce que nous avons fait est avec des clés publiques, aucune option pour en dériver une clé privée ! )
Maintenant, supprimez la clé racine et accédez à l’onglet BIP49. Collez votre graine Mnémonique dans le champ Mnémonique BIP39. Vos 24 mots dans le bon ordre, séparés par un seul espace, devraient dériver une nouvelle liste d’adresses.
Si c’est fait correctement, il doit y avoir une clé publique à côté de la liste des adresses publiques commençant par un 3 qui correspond à la clé publique que vous venez de copier dans votre gedit ! À côté de la clé de pub se trouve la clé privée (yay ! ) Et maintenant vous pouvez importer cette clé dans un portefeuille prenant en charge l’importation de priv. clés et vous pouvez enfin envoyer vos fonds à une nouvelle adresse bitcoin, de préférence à laquelle vous pouvez accéder 😉
Dans Electrum, vous pouvez facilement importer des clés privées, créer un nouveau portefeuille, sélectionner « importer des adresses bitcoin ou des clés privées » sur le premier écran de l’assistant, coller le priv. la clé et la voilà !
Merci encore, utilisateur stiVal sur Reddit ! 🙂