BIP-342
BIP-342 spécifie Tapscript, l'évolution du langage Script pour Taproot. Introduit OP_CHECKSIGADD, supprime OP_CHECKMULTISIG.
Le BIP qui modernise Script
BIP-342, écrit par Pieter Wuille, Jonas Nick et Anthony Towns, est l'un des trois BIPs qui ensemble forment l'activation Taproot (avec BIP-340 Schnorr et BIP-341 Taproot lui-même). BIP-342 spécifie Tapscript, la nouvelle version du langage Script utilisée à l'intérieur d'un script-path Taproot.
Les changements clés
| Changement | Effet | |------------|-------| | OP_CHECKSIG / OP_CHECKSIGVERIFY | Utilisent les signatures Schnorr (BIP-340) | | OP_CHECKSIGADD (nouveau) | Remplace OP_CHECKMULTISIG, coûte 1 sigops par signature | | OP_CHECKMULTISIG/VERIFY | Supprimés (NOP) | | OP_SUCCESSx | 80 nouveaux opcodes réservés (futurs soft forks) | | Limite de stack | Inchangée à 1 000 éléments | | Limite de script | Plus de 10 000 octets par défaut | | Hash de signature | Format Taproot (BIP-341) |
OP_CHECKSIGADD : le nouveau multisig
L'ancien OP_CHECKMULTISIG était bogué (off-by-one) et coûteux en sigops. Tapscript le remplace par OP_CHECKSIGADD, qui prend une signature et incrémente un compteur si elle est valide. Un multisig 2-of-3 s'écrit désormais :
<sig1> <sig2> <pubkey1> OP_CHECKSIG
<pubkey2> OP_CHECKSIGADD
<pubkey3> OP_CHECKSIGADD
2 OP_EQUAL
Cela permet aussi des k-of-n threshold signatures arbitraires, et combiné à MuSig2, on peut faire passer un multisig pour un singlesig (privacy++).
OP_SUCCESSx : la porte ouverte aux futurs soft forks
Tapscript réserve 80 opcodes comme OP_SUCCESSx. Si un script Tapscript en contient un, il est automatiquement considéré comme valide. Cela permet aux futurs soft forks d'ajouter de la sémantique à ces opcodes (par exemple OP_CTV, OP_CAT) sans soft fork de consensus complet : il suffit de transformer un OP_SUCCESSx en OP_VAULT.
Coûts et limites
La validation de Tapscript a son propre système de poids/sigops : chaque OP_CHECKSIG/OP_CHECKSIGADD coûte un sigop, mais l'enveloppe Taproot est globalement plus économe que P2WSH pour les scripts complexes.
À retenir
BIP-342 est plus que de la syntaxe : c'est la plateforme d'évolution future de Script. Toutes les propositions actuelles (CTV, CAT, APO) s'implémenteraient comme un OP_SUCCESSx promu, ce qui rend l'évolution de Bitcoin progressivement plus modulaire.
Termes lies
- TapscriptTapscript est le langage de script de Taproot, mis à jour pour Schnorr et plus extensible. Permet d'inscrire plusieurs scripts dans un MAST avec révélation sélective. Active OP_CHECKSIGADD, supprime OP_CHECKMULTISIG. Base technique des contrats Bitcoin modernes.
- TaprootTaproot est le soft fork activé en novembre 2021 (BIP-340/341/342). Il introduit signatures Schnorr, Tapscript et MAST. Il rend une dépense par clé indistinguable d'une dépense par script complexe. Plus efficace, plus privé, plus extensible.
- OP_CHECKSIGADDOP_CHECKSIGADD est introduit par Tapscript en remplacement de OP_CHECKMULTISIG. Il permet des multisigs plus efficaces et batchables. Active la composition de signatures arbitraires. Évite les bugs de l'opcode historique.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.