Aller au contenu principal
Script

WitnessScript

Le witnessScript est l'équivalent SegWit du redeemScript pour P2WSH. Il décrit les conditions de dépense (multisig, timelock...) et est révélé dans la donnée witness. Bénéficie du discount SegWit. Indispensable pour les multisigs P2WSH.

Définition

Le witnessScript est le script Bitcoin complet qui définit les conditions de dépense d'un UTXO de type P2WSH (Pay-to-Witness-Script-Hash). À l'envoi, on n'inscrit dans l'output que le hash SHA-256 (32 bytes) de ce script — l'adresse bc1q... longue. Lors de la dépense, le wallet révèle l'intégralité du witnessScript dans la zone witness de la transaction, accompagné des signatures et autres données nécessaires.

Différence avec le redeemScript

| Aspect | redeemScript (P2SH) | witnessScript (P2WSH) | |---|---|---| | Hash | HASH160 (20 bytes) | SHA-256 (32 bytes) | | Sécurité | 80 bits effectifs | 128 bits effectifs | | Emplacement à la dépense | scriptSig | witness | | Frais | 4 WU/byte | 1 WU/byte (discount) | | Adresse | 3... | bc1q... |

Le passage à SHA-256 corrige une faiblesse théorique du HASH160 face aux attaques de collision (Wagner birthday attack) — critique pour le multisig.

Structure typique pour un multisig 2-of-3

Le witnessScript le plus courant est un multisig :

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

À la dépense, la zone witness contient : OP_0, signature1, signature2, puis le witnessScript lui-même. Le nœud vérifie que SHA256(witnessScript) == hash inscrit dans le scriptPubKey, puis exécute le script.

Cas d'usage

  • Multisig entre cosignataires (Sparrow, Specter, Nunchuk).
  • Timelocks complexes : héritage, escrow.
  • Scripts custom : HTLC pour Lightning (avant Taproot), hash-locks, conditions composées.

Limites et successeur

Le witnessScript a un défaut : il est entièrement révélé à la dépense. Tout le monde voit "c'est un 2-sur-3 entre ces 3 clés". Taproot (BIP-341, novembre 2021) résout cela : un multisig MuSig2 ressemble à un single-sig, et un script complexe peut être divulgué partiellement (script-path) via un Merkle tree.

À retenir

Le witnessScript est le coeur du multisig P2WSH moderne (2017-2021). Il offre frais réduits et sécurité supérieure au redeemScript, mais cède peu à peu sa place à Taproot pour les setups avancés.

Termes lies

← Retour au glossaire complet

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