Accueil Masterclass #16 : comment fonctionnent les ScriptPubKey et ScriptSig
Actualités Crypto-monnaies, Actualités sur Bitcoin, Actualités sur Blockchain, Analyse technique, Web 3.0

Masterclass #16 : comment fonctionnent les ScriptPubKey et ScriptSig

Romaric Saint Aubert Journaliste Author expertise
Faits Vérifiés
Faits Vérifiés
Tous nos contenus sont écrits par des experts et sont soumis à un processus strict de vérification des faits avant publication, pour fournir à nos lecteurs les informations les plus fiables et à jour possibles. Un ou plusieurs journaliste(s) de Cryptonaute reli(sen)t systématiquement le travail de leurs pairs afin d'en assurer la véracité, en se référant à des sources de confiance.

Pourquoi faire confiance à Cryptonaute

Tous les articles, guides et analyses publiés sur Cryptonaute sont méticuleusement vérifiés par notre équipe d’éditeurs et de journalistes experts dans leur domaine, afin de garantir leur exactitude et leur pertinence. Nous gardons et publions uniquement les contenus vérifiés par des sources fiables, que ce soit par un site de confiance, un expert avéré ou par la personne source elle-même.

masterclass bitcoin
Rejoignez notre groupe Telegram pour rester au courant des dernières nouvelles crypto en direct.

Maintenant que nous avons abordé les outputs et les inputs, découvrons un peu plus en détail ce que sont et comment fonctionnent les scripts qui permettent de les programmer.

Qu’est-ce qu’un script dans la transaction Bitcoin ?

Nous avons vu dans le précédent épisode ce qu’était un output et un input. Je vous invite à le lire avant de lire cet article. De plus, nous avions dit que les outputs et les inputs étaient programmables. Et ces “programmes” sont appelés des scripts.

En d’autres termes, un script est une sorte de programme informatique permettant de “locker” et “d’unlock” (de vérouiller et dévérouiller) des informations dans un output de transaction. En effet, cela permet donc de programmer la transaction et sert à deux tâches essentielles : 

  • À faire un script de verrouillage (ScriptPubKey) sur chaque output de transaction.
  • à exécuter un script de déverrouillage (ScriptSig ou Witness) qui permet d’utiliser un input lors d’une transaction pour que les Bitcoins soient dépensés.

En conséquence, pour qu’une transaction soit valide et que vos Bitcoins puissent être dépensés, le script complet doit être valide. À la fois, le verrouillage de l’ouput et le déverrouillage de l’input doivent être réussis.

“La partie script pubkey du programme stipule exactement ce que la transaction de dépense doit fournir pour dépenser l’output. La seule façon de dépenser un output est de fournir un script de signature qui fait que le programme se termine par un “OK” en haut de la pile.”

cryptonaute twitter

Comment fonctionnent-ils ?

Avant toute chose, un script consiste en deux éléments de base : 

  • Les Opcodes qui sont des fonctions permettant de donner des “ordres” et de faire bouger les données.
  • Les données comme les clés publiques et les signatures.

Voici un exemple de script P2PKH obtenu sur le site LearnMeaBitcoin

Les données : 

En effet, ce script intervient dans un processus de vérification de toutes les informations de la transaction. A chaque vérification d’un élément, le programme déplace une information validée dans “une pile” (stack en anglais).

Imaginez-vous en train de vérifier si des habits n’étaient pas abîmés dans un sac et que, à chaque fois que vous trouvez un beau vêtement neuf, vous le déposiez en pile hors du sac.

Le script fonctionne donc de la même manière. Il va d’abord vérifier la signature contenue dans l’input. Puis, il va déposer la signature dans la pile. Ensuite, il vérifiera la clé publique et si elle est juste, il dira “OK” et la déposera en haut de la pile et ainsi de suite.

Les OP : 

L’information qui suit la clé publique est la fonction OP_DUD. Comme son nom peut l’indiquer, sa fonction est simple : faire ajouter l’élément supérieur sur la pile. Mais en plus, il dit également de garder l’élément sur la pile tout en le copiant par-dessus.

Par conséquent, la pile devient une sorte de copie de vos éléments afin d’avoir un résumé de tous les calculs nécessaires à la validation de la transaction. Vous avez donc désormais deux signatures et deux clés publiques (une dans le sac, une autre sur la pile).

Intervient ensuite l’opérateur OP_HASH160. Ce dernier signifie : « retirez l’élément du haut de la pile et hachez-le en utilisant SHA256+RIPEMD160, et mettez ensuite le résultat sur la pile.” Je vous invite à lire notre épisode expliquant les fonctions SHA256+RIPEMD160 qui permettent notamment de réduire les informations pour les rendre plus lisibles. 

En prenant donc la clé publique, OP_HASH160 va permettre de déposer un PKH sur le haut de la pile pour pouvoir être vérifié et comparé.

C’est donc là qu’est utile la prochaine fonction : OP_EQUALVERIFY. Cette dernière signifie simplement « prenez les deux premiers éléments de la pile et comparez-les. S’ils sont égaux, passez à l’instruction de programme suivante ; sinon, quittez le programme avec une erreur.”

En somme, elle permet de comparer les deux signatures et PKH afin de déterminer si la transaction est valable et qu’elle détient bien les BTCs.

“S’ils sont égaux, cela signifie que la clé publique  que John a fournie dans le script de signature de sa transaction correspond à la PKH qui a été définie comme destinataire dans l’output.”

Pour finir, le dernier opérateur, OP_CHECKSIG signifie « vérifier que la clé publique supérieure sur la pile et la signature à côté de la pile peuvent signer correctement la transaction. Mettez vrai ou faux en haut de la pile en fonction du résultat de la vérification.”

OP_CHECKSIG permet donc de vérifier les deux éléments supérieurs de la pile, à savoir la clé publique et la signature de l’émetteur. Mais le receveur doit d’abord nettoyer le script de l’émetteur afin de ne sélectionner que ces deux éléments supérieurs.

Si la clé et la signature passent le test de l‘OP_CHECKSIG avec un “OK”, les Bitcoins peuvent enfin être transmis !

“Le seul script de signature acceptable est une signature valide suivie de la clé publique correspondant au PKH dans le script de la clé publique.”

Sources : Grokking Bitcoin, LearnMeaBitcoin.

Sur le même sujet :

  • Projet prometteur et plus évolutif que Solana
  • Aucune congestion ni transaction échouée
  • Un gros potentiel multi chaînes
Projet lancé
Novembre 2024
Méta
Meme, Multi-Chain
Méthodes d'achat
  • Ethereum
    Ethereum
  • USDT
    USDT
  • Debit
    Debit
  • Le pari ultime sur le prochain cycle haussier massif qui arrive pour Bitcoin
  • Conservez des jetons $BTCBULL, gagnez des airdrops BTC
  • Construit sur Ethereum, avec staking APY élevé dans un contrat intelligent sécurisé
Projet lancé
Février 2025
Méta
Meme
Méthodes d'achat
  • Ethereum
    Ethereum
  • USDT
    USDT
  • Debit
    Debit
  • Agent IA auto-évolutif interagissant avec des réseaux dont X
  • En une seule transaction, achetez et stakez des tokens $MIND
  • Recevez des récompenses de staking de 773%
Projet lancé
Janvier 2025
Méta
IA, Meme
Méthodes d'achat
  • Debit
    Debit
  • Ethereum
    Ethereum
  • BNB
    BNB
  • USDT
    USDT
  • +1 plus
Rejoignez notre groupe Telegram pour rester au courant des dernières nouvelles crypto en direct.
Ajoutez Cryptonaute à vos flux Google Actualités

Romaric Saint Aubert Journaliste

Romaric Saint Aubert Journaliste

Biographie

Romaric est journaliste pour Cryptonaute. Après un passage en faculté de lettres modernes, il s’oriente dans un domaine tout à fait différent, tout en gardant l’œil rivé sur les crypto et l’actualité de l’époque. Il investit alors dans son premier actif numérique : le bitcoin (BTC).

Majoritairement intéressé par Bitcoin, il s’est diversifié plus tard en se penchant également sur le web3, les NFT, les crypto-monnaies et la FinTech. Investisseur aguerri, il est capable d'orienter son entourage et ses lecteurs. Son expérience au sein de l’écosystème crypto et sur la blockchain lui permettent de proposer une actualité précise et experte à ses lecteurs, tout en gardant un recul et une objectivité indispensable à son activité.

Romaric se rend régulièrement en conférence ou à divers événements crypto dans toute l'Europe, notamment aux conférences Bitcoin, au Zebu Live ou aux événements relatifs à la blockchain. Fasciné par ce secteur en plein développement, il aime découvrir de nouveaux projets, apprécie l’innovation, et se laisse porter par son enthousiasme et sa curiosité.

Expertise

  • Bitcoin
  • Cybersécurité
  • Régulation cryptos

Accomplissements

  • Révélé un cas rare de cyberfraude
  • Rencontre avec de nombreux innovateurs de l’industrie
  • Participe à la création d’une équipe dédiée de journalistes

Publications

Éducation

  • Université Polytechnique des Hauts-de-France

Autres

  • Carte de presse FIJ n°1385
  • Journaliste indépendant

Suivez Romaric sur Twitter | LinkedIn

Recevez toute l'actualité crypto en direct sur Telegram
Rejoignez notre groupe Telegram