Imaginez que vos Bitcoins sont enfermés dans un coffre-fort numérique. Pour y accéder et les dépenser, vous avez besoin de deux éléments essentiels : une clé et un code secret. Dans l’univers Bitcoin, ces gardiens de vos fonds s’appellent ScriptPubKey et ScriptSig. Mais comment fonctionnent exactement ces scripts mystérieux ? Plongeons ensemble dans les rouages de la blockchain pour percer leurs secrets !
ScriptPubKey et ScriptSig : les gardiens des transactions Bitcoin
Lorsque vous envoyez des Bitcoins, votre transaction est sécurisée par un ingénieux système de verrouillage et de déverrouillage. C’est là qu’entrent en scène nos deux protagonistes :
- ScriptPubKey : le script de verrouillage présent dans chaque output (sortie) de transaction. Il définit les conditions à remplir pour dépenser les Bitcoins.
- ScriptSig : le script de déverrouillage fourni dans chaque input (entrée) de transaction. Il prouve que les conditions de dépense sont remplies.
Ensemble, ScriptPubKey et ScriptSig forment un programme complet qui doit s’exécuter avec succès pour valider une transaction. Mais comment accomplissent-ils cette prouesse ?
Fonctionnement des scripts : un ballet bien orchestré
Chaque script se compose de deux éléments de base : des opcodes qui donnent des instructions et des données comme les clés publiques et les signatures. Lorsqu’une transaction est lancée, un fascinant ballet s’orchestre :
- Le script vérifie la signature contenue dans l’input et la place dans une “pile”.
- Il contrôle ensuite la validité de la clé publique et la copie au sommet de la pile avec l’opcode
OP_DUP
. - L’opcode
OP_HASH160
transforme la clé publique en hash (empreinte numérique) pour faciliter sa vérification. OP_EQUALVERIFY
compare le hash obtenu avec celui défini dans le ScriptPubKey. Si égalité, le script continue.- Enfin,
OP_CHECKSIG
valide que la clé publique et la signature peuvent bien signer la transaction.
Si cette chorégraphie complexe se déroule sans accroc, les Bitcoins sont déverrouillés et la transaction approuvée !
Exemples concrets de scripts Bitcoin
Pour mieux comprendre, rien ne vaut un exemple. Voici à quoi pourrait ressembler un script P2PKH (Pay-to-Public-Key-Hash), le plus courant sur le réseau Bitcoin :
ScriptPubKey :
OP_DUP OP_HASH160
ScriptSig :
Le ScriptPubKey indique que pour dépenser les Bitcoins, il faut fournir une clé publique dont le hash correspond à celui spécifié, ainsi qu’une signature valide. Le ScriptSig, lui, apporte la preuve en fournissant la clé publique et la signature requises.
Des scripts variés pour des usages multiples
Si le script P2PKH est le plus répandu, Bitcoin offre une grande flexibilité dans la programmation des transactions. On trouve ainsi des scripts plus complexes comme :
- P2SH (Pay-to-Script-Hash) : permet de verrouiller les fonds avec un hash de script, offrant plus de possibilités de déverrouillage.
- MultiSig : requiert plusieurs signatures pour autoriser une dépense, idéal pour les portefeuilles partagés.
- Timelock : bloque les fonds jusqu’à une date future ou un certain nombre de blocs, utile pour les paiements différés.
Cette variété de scripts renforce la sécurité et la polyvalence de Bitcoin, en s’adaptant à de multiples cas d’usage.
Conclusion : des petits scripts au grand rôle
ScriptPubKey et ScriptSig peuvent sembler obscurs de prime abord, mais ils jouent un rôle primordial dans le fonctionnement de Bitcoin. Grâce à eux, les transactions sont sécurisées, vérifiables par tous et programmables à souhait. Un ingénieux système de serrure et de clé qui protège vos précieux Bitcoins !
Alors la prochaine fois que vous effectuerez une transaction Bitcoin, pensez à ces petits scripts qui travaillent dur en coulisses pour garantir que vos fonds arrivent à bon port. Tout un art de la cryptographie et de la programmation qui fait la force de Bitcoin !