Cryptology Academy · Leçon

Script Bitcoin et vérification des signatures UTXO

Suivez les scripts pay-to-public-key-hash (P2PKH) et la signature ECDSA.

Leçon 4 sur 413 étapes

Script Bitcoin et vérification des signatures UTXO est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.

Modèle UTXO

Bitcoin utilise des sorties de transaction non dépensées (UTXO). Chaque UTXO est une unité monétaire avec un script de verrouillage (scriptPubKey). Pour la dépenser, le dépensier fournit un script de déverrouillage (scriptSig) qui satisfait le script de verrouillage. Les UTXO sont atomiques : dépensés ou non dépensés, jamais partiels.

Langage de script Bitcoin

Le langage de script Bitcoin est un langage fondé sur une pile et non complet au sens de Turing. Les scripts s'exécutent en empilant des données et en exécutant des opcodes. Ni boucles ni récursion : les scripts se terminent toujours. Cette limitation intentionnelle empêche les attaques par déni de service et rend la vérification du script O(n) par rapport à sa longueur.

P2PKH : paiement vers le hachage de clé publique

Type de sortie le plus courant. scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG. scriptSig: . Exécution : empiler sig+pubkey, dupliquer la clé publique, appliquer hash160, comparer avec le hachage intégré, vérifier la signature ECDSA. Si tout réussit : l'unité monétaire peut être dépensée.

Trace d'exécution de P2PKH

Trace de pile pour P2PKH : empiler ; empiler ; OP_DUP → empiler une copie ; OP_HASH160 → appliquer hash160 au sommet ; empiler ; OP_EQUALVERIFY → retirer les deux éléments, échouer s'ils sont différents ; OP_CHECKSIG → retirer sig+pubKey, vérifier ECDSA, empiler TRUE/FALSE. Le script réussit si le résultat est TRUE.

ECDSA dans Bitcoin

Bitcoin utilise ECDSA sur secp256k1 (courbe de Koblitz, y^2 = x^3 + 7 mod p). La clé privée d ∈ [1, n-1]. La clé publique Q = d*G. Sign(m) : k aléatoire ; r = (k*G).x mod n ; s = k^{-1}(H(m)+r*d) mod n. La signature = (r, s). Elle est encodée en DER dans scriptSig.

Types de SIGHASH

Les signatures Bitcoin se portent garantes de parties précises de la transaction : SIGHASH_ALL (par défaut) : signer toutes les entrées+sorties. SIGHASH_SINGLE : signer uniquement la sortie correspondante. SIGHASH_NONE : ne signer aucune sortie (dangereux). SIGHASH_ANYONECANPAY : signer uniquement sa propre entrée — autorise les transactions collaboratives.

P2SH : paiement vers le hachage d'un script

P2SH permet de dissimuler des conditions de dépense complexes derrière un hachage. scriptPubKey: OP_HASH160 OP_EQUAL. scriptSig: . Exécution : vérifier que hash(redeemScript) == scriptHash, puis exécuter redeemScript. Cela permet la multisignature sans révéler les conditions avant le moment de la dépense.

Multisignature 2-sur-3

redeemScript: OP_2 OP_3 OP_CHECKMULTISIG. scriptSig: OP_0 . OP_0 contourne un bogue de OP_CHECKMULTISIG, qui retire un élément supplémentaire de la pile. Une multisignature 2-sur-3 nécessite 2 signatures parmi les 3.

SegWit et P2WPKH

Le témoin séparé (SegWit, BIP-141) déplace les signatures de scriptSig vers un champ de témoin distinct. Il corrige la malléabilité des transactions (l'ID change si scriptSig change). scriptPubKey de P2WPKH : OP_0 <20-byte pubKeyHash>. Témoin : [ ].

Taproot (P2TR)

Taproot (BIP-340/341/342) utilise des signatures de Schnorr et des arbres de syntaxe abstraite organisés en arbre de Merkle (MAST). Dépense par défaut : une seule signature de Schnorr, indiscernable d'une dépense par chemin de clé. Les conditions complexes sont dissimulées dans un arbre de Merkle et révélées uniquement si elles sont utilisées. Confidentialité + efficacité.

Vérification des scripts dans le code

Bitcoin Core valide les scripts dans un interpréteur de pile. CheckSig appelle VerifyScript, qui exécute le scriptSig+scriptPubKey combiné. Pour chaque opcode CHECKSIG, il appelle CheckECDSASignature, qui vérifie la paire (r,s) encodée en DER par rapport au hachage de la transaction, en utilisant secp256k1.

Vérification rapide

Que vérifie OP_CHECKSIG dans un script P2PKH ?

Récapitulatif

Les UTXO utilisent le langage de script Bitcoin fondé sur une pile. P2PKH : le modèle de dépense le plus courant — vérifier le hachage d'une clé publique, puis vérifier une signature ECDSA. SegWit corrige la malléabilité ; Taproot ajoute Schnorr et MAST. Ensuite : la cryptanalyse différentielle.

Gratuit pour commencer

Apprends Cryptology Academy avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
67
Leçons
261

Questions Fréquemment Posées

La leçon « Script Bitcoin et vérification des signatures UTXO » est-elle gratuite ?

Oui — le texte complet de « Script Bitcoin et vérification des signatures UTXO » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Script Bitcoin et vérification des signatures UTXO » ?

Suivez les scripts pay-to-public-key-hash (P2PKH) et la signature ECDSA. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cryptology Academy ?

Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Script Bitcoin et vérification des signatures UTXO » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?

Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Chaînes de hachage et liaison de blocs
  2. Arbres de Merkle : intégrité des transactions à grande échelle
  3. Preuve de travail : minage et ajustement de la difficulté
  4. Script Bitcoin et vérification des signatures UTXO
← Retour à Cryptology Academy