Aller au contenu principal
Script

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

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.