Aller au contenu principal
Script

P2SH-P2WSH

P2SH-P2WSH est un Nested SegWit pour des scripts complexes. Combine la rétro-compatibilité de P2SH et l'efficacité de SegWit. Surtout utilisé pour les multisigs migrant depuis P2SH. Aujourd'hui dépassé par P2WSH et P2TR.

Définition

P2SH-P2WSH est le pendant script de P2SH-P2WPKH. Comme lui, il enveloppe un programme SegWit dans une enveloppe P2SH classique pour offrir une adresse compatible commençant par 3..., mais bénéficie en interne du witness discount. La différence : à la place d'une simple clé publique hashée, il référence un script complet (multisig, timelock, miniscript).

Comment c'est construit

  1. On définit le redeemScript (multisig 2-of-3, par exemple).
  2. On calcule le SHA256(redeemScript) — 32 octets.
  3. On forme le witness program : OP_0 <32-byte hash>.
  4. On hash ce witness program en HASH160.
  5. Ce HASH160 devient le destinataire d'une adresse P2SH classique.

Dépenser une UTXO P2SH-P2WSH demande, dans le witness, à la fois les signatures et le redeemScript ; le scriptSig ne contient que le witness program.

Pourquoi cette imbrication

En 2017-2019, beaucoup d'entreprises utilisaient déjà du multisig P2SH natif (adresses 3...). Migrer vers P2WSH bc1q... cassait la compatibilité avec :

  • les anciens exchanges
  • les outils internes
  • les contrats juridiques liant à une adresse 3...

P2SH-P2WSH permettait d'améliorer la performance (frais réduits, signatures dans le witness) sans changer le format visuel. C'est le compromis « SegWit invisible ».

Cas d'usage typiques

| Cas | Pourquoi P2SH-P2WSH | |-----|---------------------| | Multisig d'entreprise legacy | Compatibilité émetteurs | | Custodien (BitGo, Casa v1) | Migration progressive | | Atomic swaps inter-chaînes | Format universellement reconnu |

BitGo, l'un des plus gros custodien institutionnel, a longtemps proposé P2SH-P2WSH par défaut pour ses clients.

Limites

  • Taille : un wrap supplémentaire = ~20-30 octets de plus par dépense qu'un P2WSH natif.
  • Pas de Taproot benefits : pas de signatures Schnorr agrégées, pas de privacy MAST.
  • Pas de witness commitment direct dans le scriptPubKey.

Adoption

P2SH-P2WSH a connu son apogée entre 2018 et 2021. Depuis l'activation de Taproot (nov. 2021) et la normalisation de P2WSH, son usage décline rapidement. Les nouveaux deployments multisig institutionnels privilégient :

  • P2TR avec MuSig2 / FROST pour la confidentialité on-chain.
  • P2WSH pour les setups Miniscript explicites.

Migration vers P2WSH ou P2TR

Pour un multisig, la migration consiste à dépenser les UTXOs vers une nouvelle adresse, en utilisant les mêmes clés mais un format différent. Cela demande un nouveau descriptor (Output Script Descriptor) et la coordination des cosignataires.

À retenir

P2SH-P2WSH est le « SegWit caché » des scripts complexes : il a permis aux multisigs institutionnels d'adopter SegWit sans bouleverser leur infrastructure. Aujourd'hui, c'est un format en sursis, dépassé par P2WSH et surtout par Taproot.

Termes lies

← Retour au glossaire complet

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