Descriptor
Synonyme d'« output script descriptor ». Sert à décrire de façon précise et reproductible un wallet ou un script. Format texte normalisé (BIP-380 à 389). Au cœur des outils modernes : Bitcoin Core, Sparrow, BDK, etc.
Le problème historique
Avant les descriptors, la description d'un wallet était implicite. On disait « xpub + BIP-84 + index 0 à 1000 » et on espérait que l'autre logiciel comprenne. Les confusions étaient fréquentes : un wallet exporté de Trezor ne s'importait pas correctement dans Electrum ; un multisig créé sur Specter affichait des adresses différentes dans Sparrow. Plus grave, certains utilisateurs ont perdu temporairement l'accès à leurs fonds lors de migrations, simplement parce que le chemin de dérivation n'était pas convenu.
La solution : un langage standardisé
Les descriptors (Output Script Descriptors) ont été proposés par Pieter Wuille à partir de 2017 et standardisés dans une famille de BIP : 380 (descriptors), 381 (non-segwit), 382 (segwit), 383 (multi), 384 (combo), 385 (raw/addr), 386 (tr), 387 (tapscript), 388 (wallet policy), 389 (multipath). Un descriptor est une chaîne de caractères qui décrit exactement comment construire les adresses d'un wallet, sans ambiguïté.
Exemples concrets
wpkh([d34db33f/84h/0h/0h]xpub6...AY/0/*)
Cette ligne dit : « SegWit natif (wpkh), à partir de la xpub indiquée, qui provient elle-même du chemin m/84'/0'/0' du wallet de fingerprint d34db33f, branche 0 (réception), index variable ». Tout y est : type de script, dérivation parente, fingerprint, branche, range.
Pour un multisig 2-of-3 SegWit :
wsh(multi(2,
[aaa...]xpub1.../0/*,
[bbb...]xpub2.../0/*,
[ccc...]xpub3.../0/*
))
Avantages décisifs
| Sans descriptor | Avec descriptor | |---|---| | Format propriétaire par wallet | Format universel BIP-380+ | | Multisig fragile à migrer | Backup descriptor = backup complet | | Risque de mauvais path | Path explicite et vérifié par checksum | | Hard de mélanger types d'adresses | Combinaisons natives |
Bitcoin Core a complètement basculé en mode descriptors depuis la version 24 (2022), et les wallets « legacy » sont en cours de suppression. Sparrow, Specter, BDK, Liana, Caravan : tous reposent sur les descriptors.
Lien avec Miniscript
Les descriptors plus complexes (vaults, multisig conditionnels) reposent sur Miniscript, un sous-ensemble de Script Bitcoin conçu pour être analysable et composable. Un descriptor Miniscript peut décrire par exemple : « 2-of-3 dans les 6 mois, sinon 1 clé après 1 an, sinon clé d'urgence ».
À retenir
Pour tout backup sérieux, sauvegardez votre seed ET votre descriptor (ou la wallet policy en BIP-388). Sans le descriptor, restaurer un multisig ou un wallet à chemin non-standard peut être un cauchemar. Voir aussi Miniscript et BIP-380.
Termes lies
- Output Script DescriptorsLes descriptors décrivent un wallet de manière déterministe et inter-opérable (ex : wpkh([fp/84'/0'/0']xpub.../0/*)). Permettent à n'importe quel logiciel de regénérer les mêmes adresses. Standardisés par BIP-380. Indispensables aux multisigs modernes.
- MiniscriptMiniscript est une représentation de Bitcoin Script lisible et composable. Permet d'écrire des politiques complexes (multisig avec timelock, etc.) sûrement. Implémenté par Liana, Bitcoin Core, BDK. Démocratise les scripts avancés.
- BIP-380BIP-380 standardise les Output Script Descriptors. Format universel pour décrire un wallet de manière déterministe.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.