Tutoriel de l’outil de dérivation de clés : Explorateur de chemin BIP-44
Les wallets déterministes hiérarchiques (HD) sont la base de la gestion moderne des clés de cryptomonnaie. À partir d’une seule seed, un wallet HD dérive tout un arbre de clés — des milliards d’adresses uniques sur plusieurs blockchains, toutes récupérables depuis votre phrase de seed d’origine. L’outil de dérivation de clés de SafeSeed vous permet de visualiser et d’explorer cet arbre, de comprendre le fonctionnement des chemins de dérivation et de diagnostiquer les problèmes quand les wallets ne se comportent pas comme prévu.
Explorez les chemins de dérivation BIP-44 sur safeseed.app/tools/key-derivation/ — entièrement côté client, fonctionne hors ligne.
Qu’est-ce que la dérivation de clés ?
La dérivation de clés est le processus de génération de nouvelles clés cryptographiques à partir d’une clé existante. En cryptomonnaie, cela commence avec votre phrase de seed et suit un algorithme déterministe défini par BIP-32 (Hierarchical Deterministic Wallets) et organisé par BIP-44 (Multi-Account Hierarchy).
La propriété critique est le déterminisme : la même seed produit toujours le même arbre de clés. Cela signifie :
- Vous pouvez récupérer l’intégralité de votre wallet avec uniquement la phrase de seed
- Plusieurs appareils avec la même seed afficheront les mêmes adresses
- Aucun élément aléatoire n’intervient après la génération initiale de la seed
L’arbre des clés
Considérez la dérivation de clés comme un arbre :
Master Key (root)
├── Purpose 44' (Legacy)
│ ├── Bitcoin (0')
│ │ ├── Account 0'
│ │ │ ├── External (0)
│ │ │ │ ├── Address 0
│ │ │ │ ├── Address 1
│ │ │ │ └── Address 2 ...
│ │ │ └── Internal/Change (1)
│ │ │ ├── Address 0
│ │ │ └── Address 1 ...
│ │ └── Account 1'
│ │ └── ...
│ ├── Ethereum (60')
│ │ └── Account 0'
│ │ └── ...
│ └── Litecoin (2')
│ └── ...
├── Purpose 49' (SegWit)
│ └── ...
├── Purpose 84' (Native SegWit)
│ └── ...
└── Purpose 86' (Taproot)
└── ...
Chaque nœud de cet arbre possède à la fois une clé privée et une clé publique. Le générateur d’adresses dérive les nœuds feuilles (adresses individuelles), tandis que l’outil de dérivation de clés vous permet d’inspecter n’importe quel nœud de l’arbre entier.
Comprendre les chemins de dérivation
Un chemin de dérivation est une séquence d’indices qui décrit comment naviguer de la clé maître vers une clé enfant spécifique. La notation standard ressemble à ceci :
m / 84' / 0' / 0' / 0 / 0
Décomposons cela complètement.
Composants du chemin
| Composant | Signification | Valeurs d’exemple |
|---|---|---|
m | Clé maître (racine) | Toujours m |
purpose' | Standard BIP utilisé | 44', 49', 84', 86' |
coin_type' | Cryptomonnaie concernée | 0' (BTC), 60' (ETH), 2' (LTC) |
account' | Séparation des comptes | 0', 1', 2' |
change | Externe/interne | 0 (réception), 1 (change) |
address_index | Numéro d’adresse | 0, 1, 2, ... |
Dérivation renforcée vs. normale
L’apostrophe (') indique une dérivation renforcée. C’est un concept de sécurité fondamental des wallets HD.
Dérivation normale (non renforcée) (m/0/1/2) :
- La clé publique parent peut dériver toutes les clés publiques enfants
- Si une clé privée enfant et la clé publique parent sont toutes deux compromises, la clé privée parent peut être calculée
- Utilisée pour les niveaux
changeetaddress_index
Dérivation renforcée (m/0'/1'/2') :
- Seule la clé privée parent peut dériver les clés enfants
- La compromission d’une clé enfant n’expose pas la clé parent
- Utilisée pour les niveaux
purpose,coin_typeetaccount
Justification de sécurité : les trois premiers niveaux (purpose', coin_type', account') utilisent la dérivation renforcée pour créer un pare-feu. Même si un attaquant obtient une clé privée enfant au niveau adresse, il ne peut pas remonter au-delà de la frontière renforcée pour découvrir votre clé maître ou les clés d’autres comptes ou cryptomonnaies.
Chemins de dérivation standard selon les wallets
Différents logiciels de wallet peuvent utiliser des chemins de dérivation différents. Voici une référence pour les wallets courants :
| Wallet | Chemin Bitcoin | Chemin Ethereum | Remarque |
|---|---|---|---|
| Ledger Live | m/84'/0'/0'/0/x | m/44'/60'/0'/0/x | Native SegWit par défaut |
| Trezor Suite | m/84'/0'/0'/0/x | m/44'/60'/0'/0/x | Native SegWit par défaut |
| Electrum | m/84'/0'/0'/0/x | N/A | Native SegWit par défaut |
| MetaMask | N/A | m/44'/60'/0'/0/x | Ethereum uniquement |
| BlueWallet | m/84'/0'/0'/0/x | N/A | Native SegWit par défaut |
| Exodus | m/84'/0'/0'/0/x | m/44'/60'/0'/0/x | Multi-chaînes |
| Trust Wallet | m/84'/0'/0'/0/x | m/44'/60'/0'/0/x | Multi-chaînes |
| Coinbase Wallet | m/44'/0'/0'/0/x | m/44'/60'/0'/0/x | Legacy pour BTC |
| Mycelium | m/84'/0'/0'/0/x | N/A | Bitcoin uniquement |
| Wasabi | m/84'/0'/0'/0/x | N/A | Axé confidentialité |
Lors de la récupération de fonds, il est essentiel de savoir quel chemin votre wallet d’origine utilisait. L’outil de dérivation de clés vous aide à explorer systématiquement les chemins pour trouver où se trouvent vos clés.
Étape par étape : utiliser l’outil de dérivation de clés
Étape 1 : Ouvrir l’outil
Accédez à safeseed.app/tools/key-derivation/. Comme tous les outils SafeSeed, les opérations s’exécutent entièrement dans votre navigateur.
Rappel de sécurité : si vous saisissez une phrase de seed liée à des fonds réels, utilisez une machine isolée (air-gapped). Voir le Guide d’utilisation hors ligne.
Étape 2 : Saisir votre phrase de seed
Saisissez votre phrase mnémonique BIP-39 de 12 ou 24 mots. Saisissez éventuellement une passphrase. L’outil valide la phrase et affiche la seed maître (hexadécimal 512 bits) dérivée via PBKDF2.
Étape 3 : Afficher la clé maître
Après saisie d’une phrase de seed valide, l’outil affiche les informations de la clé maître :
- Clé privée maître (xprv) : la clé privée racine à partir de laquelle toutes les autres clés sont dérivées. C’est la donnée la plus sensible de toute la hiérarchie de clés.
- Clé publique maître (xpub) : la clé publique correspondante. À partir de cette clé, toutes les clés publiques enfants peuvent être dérivées (pour les chemins non renforcés).
- Code de chaîne maître : une valeur 256 bits utilisée avec la clé dans la fonction de dérivation. Le code de chaîne ajoute une couche supplémentaire d’imprévisibilité à la dérivation des clés enfants.
Étape 4 : Naviguer dans l’arbre de dérivation
L’outil de dérivation de clés présente la hiérarchie de clés sous forme d’arbre interactif. Vous pouvez :
- Cliquer sur les nœuds de l’arbre pour les développer et voir les clés enfants
- Saisir un chemin personnalisé dans le champ de chemin (ex.
m/84'/0'/0'/0/0) - Basculer entre l’affichage des clés privées et publiques
- Copier n’importe quelle clé ou chemin pour l’utiliser dans d’autres outils ou wallets
Étape 5 : Inspecter une clé spécifique
Quand vous sélectionnez un nœud dans l’arbre, l’outil affiche les informations complètes de cette clé :
- Chemin de dérivation : chemin complet de la clé maître vers cette clé
- Clé privée : la clé à ce niveau (au format étendu et WIF si applicable)
- Clé publique : la clé publique correspondante (compressée)
- Code de chaîne : le code de chaîne à ce niveau
- Empreinte : identifiant sur 4 octets de cette clé (utilisé dans la sérialisation des clés étendues)
- Adresse dérivée : l’adresse de cryptomonnaie (pour les clés de niveau feuille)
Étape 6 : Explorer différents purpose
Naviguez entre les différents standards BIP pour comprendre comment la même seed produit des types d’adresses différents :
BIP-44 (Legacy) : m/44'/0'/0'/0/0
- Produit des adresses Legacy commençant par
1 - Frais de transaction les plus élevés
- Compatibilité maximale avec les anciens systèmes
BIP-49 (SegWit) : m/49'/0'/0'/0/0
- Produit des adresses SegWit commençant par
3 - Frais de transaction moyens
- Bonne compatibilité
BIP-84 (Native SegWit) : m/84'/0'/0'/0/0
- Produit des adresses Native SegWit commençant par
bc1q - Frais de transaction faibles
- Standard des wallets modernes
BIP-86 (Taproot) : m/86'/0'/0'/0/0
- Produit des adresses Taproot commençant par
bc1p - Frais de transaction les plus faibles
- Standard le plus récent, prend en charge les scripts avancés
Approfondissement : fonctionnement de la dérivation BIP-32
Comprendre les mathématiques derrière la dérivation de clés n’est pas nécessaire pour utiliser l’outil, mais cela apporte un éclairage précieux à quiconque veut vraiment comprendre la sécurité de son wallet.
Dérivation de clé enfant avec HMAC-SHA512
BIP-32 utilise HMAC-SHA512 pour dériver les clés enfants. Le processus diffère entre dérivation renforcée et normale :
Dérivation normale de clé enfant :
HMAC-SHA512(
key = parent_chain_code,
data = parent_public_key || child_index
) → (child_key_data, child_chain_code)
child_private_key = parent_private_key + child_key_data (mod n)
Dérivation renforcée de clé enfant :
HMAC-SHA512(
key = parent_chain_code,
data = 0x00 || parent_private_key || child_index
) → (child_key_data, child_chain_code)
child_private_key = parent_private_key + child_key_data (mod n)
Différence critique : la dérivation renforcée utilise la clé privée en entrée, alors que la dérivation normale utilise la clé publique. Cela signifie que les clés enfants renforcées ne peuvent pas être dérivées à partir de la seule clé publique parent.
Sérialisation des clés étendues
Les clés étendues (xprv/xpub) encodent plusieurs éléments :
| Champ | Taille | Description |
|---|---|---|
| Version | 4 octets | Réseau et type de clé (0488ADE4 pour xprv, 0488B21E pour xpub) |
| Profondeur | 1 octet | Nombre de niveaux depuis la clé maître |
| Empreinte parent | 4 octets | 4 premiers octets du hash de la clé parent |
| Indice enfant | 4 octets | Quel enfant c’est (avec bit renforcé) |
| Code de chaîne | 32 octets | Le code de chaîne |
| Données de clé | 33 octets | La clé privée ou publique |
La structure entière est encodée en Base58Check pour produire les chaînes familières xprv... ou xpub.... Des octets de version différents produisent ypub/zpub pour SegWit et Native SegWit respectivement.
Applications pratiques
Application 1 : Débogage de la récupération d’un wallet
Scénario : vous avez récupéré votre phrase de seed dans un nouveau wallet, mais votre solde Bitcoin affiche zéro.
Diagnostic avec l’outil de dérivation de clés :
- Saisissez votre phrase de seed dans l’outil de dérivation de clés
- Naviguez vers
m/84'/0'/0'/0/0(Native SegWit, chemin moderne le plus courant) - Notez l’adresse — vérifiez-la sur mempool.space
- Si aucun solde, essayez
m/44'/0'/0'/0/0(Legacy) - Essayez
m/49'/0'/0'/0/0(SegWit) - Essayez
m/86'/0'/0'/0/0(Taproot) - Si toujours aucun solde, essayez le compte
1':m/84'/0'/1'/0/0 - Vérifiez à la fois les chaînes externe (change=
0) et interne (change=1)
Cette exploration systématique révèle exactement où se trouvent vos fonds dans l’arbre de dérivation.
Application 2 : Comprendre les wallets en mode watch-only
Scénario : vous voulez configurer un wallet watch-only pour surveiller votre solde Bitcoin sans exposer de clés privées.
Utilisation de l’outil de dérivation de clés :
- Saisissez votre phrase de seed (sur une machine isolée)
- Naviguez au niveau compte :
m/84'/0'/0' - Copiez la clé publique étendue (zpub) à ce niveau
- Importez ce zpub dans votre logiciel de wallet watch-only (ex. Electrum, BlueWallet)
- Le wallet watch-only peut dériver toutes les adresses de réception et de change sous ce niveau
- Il ne peut pas dériver de clés privées ni signer de transactions
L’outil de dérivation de clés vous montre exactement quel niveau de l’arbre exporter et quelles informations sont contenues dans la clé publique étendue.
Application 3 : Organisation multi-comptes
Scénario : vous souhaitez séparer vos avoirs Bitcoin en comptes distincts (ex. épargne, trading, activité professionnelle) tout en utilisant une seule phrase de seed.
Utilisation de l’outil de dérivation de clés :
- Compte 0 :
m/84'/0'/0'— Épargne personnelle - Compte 1 :
m/84'/0'/1'— Trading - Compte 2 :
m/84'/0'/2'— Activité professionnelle
Chaque compte possède son propre ensemble d’adresses et de clés étendues. La dérivation renforcée au niveau compte garantit que la compromission des clés d’un compte n’affecte pas les autres.
Application 4 : Exploration de clés multi-chaînes
Scénario : vous voulez comprendre comment une phrase de seed génère des adresses à la fois pour Bitcoin et Ethereum.
Utilisation de l’outil de dérivation de clés :
- Saisissez votre phrase de seed
- Naviguez vers
m/44'/0'/0'/0/0— c’est la clé Bitcoin - Naviguez vers
m/44'/60'/0'/0/0— c’est la clé Ethereum - Observez : les clés sont complètement différentes malgré la même seed
- Le niveau
coin_type(0'vs60') est l’endroit où les arbres divergent
Cela montre comment la hiérarchie BIP-44 empêche tout chevauchement entre chaînes tout en conservant la récupérabilité avec une seule seed.
Application 5 : Vérifier le comportement d’un hardware wallet
Scénario : vous voulez confirmer que votre hardware wallet n’induit pas en erreur sur les adresses qu’il contrôle.
Utilisation de l’outil de dérivation de clés :
- Sur une machine isolée, saisissez la phrase de seed utilisée pour initialiser votre hardware wallet
- Dérivez les 10 premières adresses sur le même chemin que celui du hardware wallet
- Comparez chaque adresse avec ce que le hardware wallet affiche
- Si elles correspondent toutes, le hardware wallet implémente correctement la dérivation BIP-32/44
- Si elles diffèrent, il peut y avoir un problème de firmware, une passphrase différente, ou une incompatibilité de chemin de dérivation
Comprendre les adresses de change
L’un des aspects les plus déroutants des wallets HD pour les nouveaux utilisateurs est le concept d’adresses de change. L’outil de dérivation de clés aide à le démystifier.
Que sont les adresses de change ?
Dans Bitcoin (et les chaînes similaires basées sur UTXO), lorsque vous dépensez depuis une adresse, vous consommez généralement l’intégralité de l’UTXO de cette adresse. Si vous voulez envoyer 0.5 BTC mais que l’UTXO est de 1.0 BTC, la transaction crée deux sorties :
- 0.5 BTC vers l’adresse du destinataire
- 0.5 BTC (moins les frais) vers une adresse de change que vous contrôlez
Cette adresse de change provient de la chaîne interne (change = 1) dans votre chemin de dérivation :
- Adresses de réception :
m/84'/0'/0'/0/x - Adresses de change :
m/84'/0'/0'/1/x
Afficher les adresses de change dans l’outil de dérivation de clés
Accédez à la chaîne de change en réglant le composant change sur 1 :
| Path | Type | Purpose |
|---|---|---|
m/84'/0'/0'/0/0 | External | First receiving address |
m/84'/0'/0'/0/1 | External | Second receiving address |
m/84'/0'/0'/1/0 | Internal | First change address |
m/84'/0'/0'/1/1 | Internal | Second change address |
Comprendre les adresses de change est crucial pour la récupération d’un wallet. Si vous ne scannez que les adresses externes, vous pouvez manquer des fonds placés sur des adresses de change. L’outil de dérivation de clés affiche les deux chaînes.
Types de coin SLIP-44
Le niveau coin_type dans les chemins BIP-44 utilise des valeurs enregistrées de SLIP-44. Voici les plus utilisées :
| Coin | Type SLIP-44 | Préfixe de chemin |
|---|---|---|
| Bitcoin | 0' | m/84'/0'/... |
| Bitcoin Testnet | 1' | m/84'/1'/... |
| Litecoin | 2' | m/84'/2'/... |
| Dogecoin | 3' | m/44'/3'/... |
| Ethereum | 60' | m/44'/60'/... |
| Ethereum Classic | 61' | m/44'/61'/... |
| Bitcoin Cash | 145' | m/44'/145'/... |
| Stellar | 148' | m/44'/148'/... |
| Ripple (XRP) | 144' | m/44'/144'/... |
| Cardano | 1815' | m/1852'/1815'/... |
| Solana | 501' | m/44'/501'/... |
| Polkadot | 354' | m/44'/354'/... |
| Cosmos | 118' | m/44'/118'/... |
| Tron | 195' | m/44'/195'/... |
| Avalanche | 9000' | m/44'/9000'/... |
L’outil de dérivation de clés utilise ces valeurs enregistrées lorsque vous sélectionnez une cryptomonnaie, mais vous pouvez aussi saisir des chemins personnalisés manuellement.
Pour la liste complète, consultez Blockchains prises en charge.
Avancé : limite de gap et découverte d’adresses
Quand un wallet se restaure depuis une phrase de seed, il doit déterminer quelles adresses ont été utilisées. Il le fait en scannant les adresses séquentiellement depuis l’index 0 et en vérifiant l’historique des transactions sur la blockchain.
La limite de gap est le nombre d’adresses consécutives non utilisées qu’un wallet scanne avant de s’arrêter. Le standard BIP-44 recommande une limite de gap de 20. Cela signifie que si les adresses 0-15 ont été utilisées mais pas les adresses 16-35, le wallet scanne jusqu’à l’adresse 35 (16 + 20 de gap) et conclut qu’il n’y a plus d’adresses utilisées.
Implications :
- Si vous générez plus de 20 adresses séquentielles dans le générateur d’adresses de SafeSeed et en utilisez de non séquentielles (ex. saut de l’index 5 à l’index 30), certains wallets peuvent ne pas découvrir les adresses plus éloignées pendant la récupération
- La plupart des wallets permettent d’augmenter la limite de gap dans les paramètres
- L’outil de dérivation de clés vous aide à comprendre exactement quels indices ont été dérivés et potentiellement utilisés
FAQ
Quelle est la relation entre BIP-32, BIP-44, BIP-49, BIP-84 et BIP-86 ?
BIP-32 définit l’algorithme de base de dérivation de clés déterministe hiérarchique — comment passer d’une clé parent à une clé enfant. BIP-44 définit une organisation standard de l’arbre de clés résultant (purpose/coin/account/change/index). BIP-49, BIP-84 et BIP-86 sont des extensions qui utilisent le même algorithme BIP-32 et la structure BIP-44, mais spécifient des valeurs purpose différentes (49, 84, 86) et des formats d’encodage d’adresse différents (SegWit, Native SegWit, Taproot respectivement).
Puis-je utiliser l’outil de dérivation de clés pour retrouver une cryptomonnaie perdue ?
Si vous avez la bonne phrase de seed mais ne savez pas quel chemin de dérivation a été utilisé, l’outil de dérivation de clés peut vous aider à explorer systématiquement tous les chemins standard. Dérivez les adresses pour chaque combinaison de chemin et vérifiez-les sur un explorateur blockchain. C’est le cas d’usage le plus courant pour déboguer la récupération d’un wallet.
Que signifie concrètement la dérivation « renforcée » ?
La dérivation renforcée signifie que la clé enfant ne peut être dérivée qu’en utilisant la clé privée parent. En pratique, cela crée une frontière de sécurité : si quelqu’un obtient une clé enfant sous un nœud renforcé, il ne peut pas remonter pour découvrir la clé privée parent. C’est pourquoi les trois premiers niveaux des chemins BIP-44 (purpose, coin_type, account) sont renforcés — cela empêche qu’une compromission au niveau adresse expose votre clé maître.
Pourquoi mon wallet affiche-t-il un zpub au lieu d’un xpub ?
Le préfixe (xpub, ypub, zpub) indique le format d’adresse auquel la clé publique étendue est destinée. xpub est pour Legacy (BIP-44), ypub pour SegWit (BIP-49), et zpub pour Native SegWit (BIP-84). Ils contiennent tous le même type de données (une clé publique étendue avec code de chaîne), mais l’octet de version diffère pour signaler le format d’adresse attendu. L’outil de dérivation de clés indique quel format s’applique à chaque niveau.
Puis-je dériver des clés Ethereum avec des chemins BIP-84 ?
Techniquement, vous pouvez dériver des clés sur n’importe quel chemin, mais Ethereum utilise par convention BIP-44 (m/44'/60'/...). BIP-84 est un standard spécifique à Bitcoin pour les adresses Native SegWit. L’outil de dérivation de clés dérivera correctement les adresses Ethereum lorsque vous utilisez le chemin Ethereum standard. Utiliser des chemins non standard produira des clés valides, mais aucun logiciel de wallet ne les reconnaîtra.
Que se passe-t-il si j’utilise le mauvais index de compte ?
Si vous avez dérivé des adresses depuis le compte 0' mais que vos fonds sont sur le compte 1', ils n’apparaîtront pas dans un scan standard de wallet. L’outil de dérivation de clés vous permet de naviguer entre différents index de compte pour découvrir lequel contient vos fonds. La plupart des wallets utilisent le compte 0' par défaut, mais certains permettent de créer des comptes supplémentaires.
Comment l’outil de dérivation de clés gère-t-il la passphrase ?
La passphrase (25e mot) est appliquée lors de l’étape initiale de dérivation de seed (BIP-39), avant tout début de dérivation de clé BIP-32. Une passphrase différente produit une seed maître totalement différente, qui produit à son tour un arbre de clés entièrement différent. L’outil de dérivation de clés affiche la seed maître après application de la passphrase, afin que vous puissiez vérifier que vous travaillez avec la bonne seed.
Existe-t-il une profondeur maximale pour la dérivation de clés ?
BIP-32 prend théoriquement en charge une dérivation à profondeur arbitraire, mais BIP-44 standardise cinq niveaux (purpose/coin/account/change/index). Aller au-delà de cinq niveaux est non standard et n’est pris en charge par aucun logiciel de wallet courant. L’outil de dérivation de clés prend en charge les cinq niveaux standard et autorise des chemins personnalisés pour une exploration avancée.
Guides associés
- Aperçu des outils SafeSeed — Aperçu de tous les outils SafeSeed
- Tutoriel du générateur de phrase de seed — Générer la phrase de seed utilisée pour la dérivation de clés
- Tutoriel du générateur d’adresses — Dériver des adresses depuis des chemins spécifiques
- Blockchains prises en charge — Types de coin SLIP-44 et chaînes prises en charge
- Utiliser SafeSeed hors ligne — Dérivation de clés sur machine isolée pour une sécurité maximale