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

Charles Ledoux
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 :

Rejoignez notre groupe Telegram pour rester au courant des dernières nouvelles crypto en direct.
Ajoutez Cryptonaute à vos flux Google Actualités

Charles Ledoux

Charles Ledoux

Charles Ledoux est un rédacteur pour Cryptonaute avec une expertise pour les crypto-monnaies et la technologie blockchain. Grâce à sa formation dans la « Crypto-Academy » du célèbre YouTubeur Pompliano, il a pu passer un mois à se former avec les meilleurs spécialistes de l’industrie des crypto-monnaies. C’est en observant des similitudes frappantes entre la permaculture et la technologie du Bitcoin qu’il a réussi à avoir une perspective et une expertise rare sur la technologie et son fonctionnement.

Après avoir écrit son premier livre à 10 ans et plusieurs autres ouvrages depuis, Charles met désormais en pratique son talent d’écrivain pour apporter le meilleur contenu possible aux lecteurs de Cryptonaute. Après avoir rencontré des dizaines d’acteurs majeurs de l’industrie et s’être créé un réseau de centaines de builders web 3, il apportera de nombreux contenus originaux comme des interviews, ou encore des enquêtes exclusives. En plus de son expertise technique sur la technologie blockchain, Charles permettra aux lecteurs d’être au “cœur” de l’industrie crypto.

Déterminé à créer le meilleur contenu possible, il a également le souhait de relayer des informations exclusives qui apportent de la véritable valeur ajoutée à l’industrie florissante des médias crypto.

Section Expertise

  • Bitcoin et Bitcoin mining
  • Compréhension technique de la technologie blockchain et de son fonctionnement
  • Business development et entrepreneuriat
  • Interviews et enquêtes spéciales

Section Accomplissements

Section Éducation 

  • Diplômé de la Crypto Academy : “Les fondamentaux de Bitcoin et des crypto-monnaies”
  • Bac Scientifique mention Européenne

Section bonus

  • Auteur de plusieurs ouvrages.
  • 30k+ vues sur sa chaîne Youtube
Recevez toute l'actualité crypto en direct sur Telegram
Rejoignez notre groupe Telegram