Aller au contenu principal
Script

P2WSH

P2WSH (Pay-to-Witness-Script-Hash) est l'équivalent SegWit de P2SH (préfixe bc1q... longue). Verrouille sur un hash de script (multisig par ex.). Plus économique que P2SH-P2WSH. Standard pour les multisigs SegWit jusqu'à l'arrivée de Taproot.

Définition

P2WSH, Pay-to-Witness-Script-Hash, est le format SegWit natif pour les scripts complexes. C'est l'évolution de P2SH qui passe les données coûteuses (signatures, script) dans la zone witness au tarif réduit. Introduit par BIP-141 en 2017 avec SegWit. Une adresse P2WSH commence par bc1q et est plus longue qu'une P2WPKH : 62 caractères (basée sur un hash SHA-256, donc 32 octets).

Anatomie du script

scriptPubKey :

OP_0 <32-byte SHA256(witnessScript)>

À la dépense, le witness contient :

<sig1> <sig2> ... <witnessScript>

Le witnessScript est le script complet (multisig, timelock, miniscript), évalué après vérification du hash. Le scriptSig de l'input reste vide.

Différence avec P2SH

| Critère | P2SH | P2WSH | |---------|------|-------| | Format adresse | Base58 (3...) | Bech32 (bc1q...) | | Hash utilisé | HASH160 (20 octets) | SHA256 (32 octets) | | Discount frais | Non | Oui (factor 4) | | Malléabilité | Possible | Aucune | | Confidentialité | Script révélé à la dépense | Script révélé à la dépense |

Cas d'usage typiques

Multisig moderne

Un 2-of-3 P2WSH :

OP_2 <pubkey1> <pubkey2> <pubkey3> OP_3 OP_CHECKMULTISIG

Standard de fait pour la trésorerie d'entreprise jusqu'à l'arrivée de Taproot/MuSig2.

Lightning Network

Toutes les transactions d'ouverture de canal classique sont en P2WSH. C'est ce qui permet à Lightning d'utiliser des HTLCs efficaces (SegWit a été un prérequis pour Lightning).

Timelocks et CSV

Les vaults, l'héritage programmé, les contrats temporels utilisent presque tous des scripts P2WSH avec OP_CHECKLOCKTIMEVERIFY ou OP_CHECKSEQUENCEVERIFY.

Atomic swaps

Les swaps Bitcoin ↔ Liquid, Bitcoin ↔ Lightning, Bitcoin ↔ Monero utilisent des HTLC P2WSH.

Avantages

| Avantage | Gain | |----------|------| | Discount SegWit | ~30-40 % de frais en moins vs P2SH | | Pas de malléabilité | Sécurise Lightning | | Hash 32 bits | Résistance collisions accrue | | Bech32 | Détection d'erreur de saisie |

Limites face à P2TR

P2WSH dévoile tout le script à la dépense. Un multisig 2-of-3 est immédiatement reconnaissable sur la blockchain. P2TR supprime ce problème : avec MuSig2, le multisig coopératif ressemble à un singlesig.

Adoption actuelle

P2WSH a été le standard multisig 2019-2023. Depuis Taproot (nov. 2021) :

  • Les nouveaux multisigs basculent vers P2TR
  • P2WSH reste utilisé pour la compatibilité hardware wallet et l'audit explicite (le script est visible)
  • Lightning utilise encore P2WSH pour les canaux non-Taproot (et bascule progressivement)

Migration

Pour migrer un multisig P2WSH vers P2TR (MuSig2 ou Tapscript) :

  1. Mettre à jour tous les cosignataires vers du hardware/software supportant MuSig2.
  2. Établir un nouveau descriptor P2TR.
  3. Dépenser les UTXOs P2WSH vers les nouvelles adresses.

À retenir

P2WSH est le format multisig SegWit qui a permis à Bitcoin de scaler sa programmabilité économiquement. C'est aujourd'hui un standard mature mais en transition vers P2TR pour les nouveaux setups.

Termes lies

← Retour au glossaire complet

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