Tapscript
Tapscript 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.
Définition et origine
Tapscript est le langage de script introduit par le BIP-342, activé conjointement à Taproot le 14 novembre 2021. Il succède au Bitcoin Script v0 (hérité de Satoshi) pour les sorties P2TR utilisées en script path. La spécification a été rédigée par Pieter Wuille, Jonas Nick et Anthony Towns.
Comment ça fonctionne
Une sortie Taproot peut être dépensée :
- Par key path : une signature Schnorr directe sur la clé tweakée
- Par script path : révélation d'une feuille de l'arbre MAST et exécution d'un Tapscript
Chaque feuille contient un script et une leaf version. Le dépenseur révèle la feuille, le contrôle (chemin Merkle) et le witness, puis Bitcoin exécute le script en Tapscript.
Changements clés vs Script v0
| Opcode | Changement |
|---|---|
| OP_CHECKSIG / OP_CHECKSIGVERIFY | Signatures Schnorr, hash sighash V1 |
| OP_CHECKMULTISIG | Supprimé |
| OP_CHECKSIGADD | Nouveau : multisig efficace |
| OP_SUCCESSx | 80 opcodes réservés pour upgrades futurs |
| Limite Script | 10 000 octets retirée par feuille |
OP_CHECKSIGADD permet d'écrire un k-of-n multisig en N vérifications successives, chacune ajoutant 1 à un compteur si valide. Plus compact, plus parallélisable.
Cas d'usage
- Multisig taproot-natif (3-of-5 vault par exemple)
- DLC : contrats discrets avec branches d'oracle
- Inscriptions Ordinals (qui exploitent la limite de script relâchée)
- BitVM : émulation de calculs arbitraires par fragments de Tapscript
Limites
Tapscript reste un langage non-Turing-complet, sans boucles, sans covenants natifs. Les fonctionnalités attendues (OP_CAT, OP_CTV, OP_VAULT) nécessitent de nouveaux soft forks. La taille du witness reste limitée par la règle des 4 Mo de poids par bloc.
À retenir
Tapscript est aujourd'hui la couche de scripting où se construit l'innovation Bitcoin : du multisig efficace aux DLCs en passant par BitVM. Sa conception modulaire (via OP_SUCCESSx) permet d'introduire de nouveaux opcodes par soft fork sans casser la rétrocompatibilité.
Termes lies
- 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.
- MASTMAST (Merkelized Abstract Syntax Tree) permet d'inscrire plusieurs scripts dans un arbre de Merkle, dont seul le chemin emprunté est révélé. Introduit par Taproot. Améliore la confidentialité et l'efficacité des scripts complexes. Permet des conditions de dépense très riches.
- Schnorr (signature)Schnorr est un schéma de signature numérique introduit dans Bitcoin par le soft fork Taproot (2021). Il offre la linéarité, qui permet l'agrégation des signatures (MuSig). Plus simple, plus rapide et plus sûr que ECDSA. Il ouvre la voie à de nouveaux usages comme MuSig2, FROST et Tapscript.
- 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.
- BIP-342BIP-342 spécifie Tapscript, l'évolution du langage Script pour Taproot. Introduit OP_CHECKSIGADD, supprime OP_CHECKMULTISIG.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.