OP_CHECKSIG
OP_CHECKSIG vérifie qu'une signature correspond à une clé publique pour la transaction courante. C'est l'opcode central de la sécurité Bitcoin. Présent dans presque toutes les transactions. Sa version Schnorr est utilisée par Taproot.
Vérification d'une signature
OP_CHECKSIG est l'opcode central qui vérifie qu'une signature donnée correspond bien à une clé publique pour une transaction. Il consomme une signature et une clé publique de la pile et renvoie vrai si la signature est valide.
Usage massif
Presque tous les scripts standards de Bitcoin se concluent par OP_CHECKSIG. P2PKH, P2WPKH et P2TR avec un seul signataire reposent tous sur cet opcode dans leur implémentation.
ECDSA ou Schnorr
Avant Taproot, OP_CHECKSIG vérifiait des signatures ECDSA. Depuis Taproot, il vérifie des signatures Schnorr dans les contextes Tapscript, ce qui ouvre la porte à l'agrégation et à de meilleures propriétés cryptographiques.
Importance pour la sécurité
La correction de l'implémentation de OP_CHECKSIG est critique. Une faille dans son comportement compromettrait la totalité des UTXO Bitcoin. Les développeurs core l'auditent en permanence.
Termes lies
- OpcodesLes opcodes sont les opérations du langage Bitcoin Script (OP_CHECKSIG, OP_DUP, OP_HASH160...). Chaque transaction est une succession d'opcodes interprétés sur une pile. Certains sont désactivés pour des raisons de sécurité. La liste évolue lentement par soft fork.
- ECDSAECDSA (Elliptic Curve Digital Signature Algorithm) est l'algorithme de signature numérique historique de Bitcoin. Il permet de prouver la possession d'une clé privée sans la révéler. Il est combiné à secp256k1. Depuis Taproot, Bitcoin supporte également Schnorr, plus performant.
- 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.
- Script (Bitcoin Script)Bitcoin Script est le langage de programmation des conditions de dépense. C'est un langage de pile, intentionnellement non-Turing-complet pour la sécurité. Il permet multisig, timelocks, contrats. Tapscript étend ses possibilités avec Taproot.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.