Erreur de diffusion sur le testnet pour les transactions Bitcoin brutes en Python

Chapô : Un utilisateur tente de créer une transaction brute pour le testnet, mais rencontre des erreurs lors de sa diffusion. Les problèmes semblent liés à la vérification de la signature et à l'utilisation incorrecte des clés publiques. Cet article explore les détails techniques de cette transaction et les erreurs rencontrées.

Un utilisateur teste une transaction sur le testnet

L'utilisateur s'efforce d'envoyer une transaction brute au testnet en utilisant des clés privées et publiques spécifiques au réseau d'essai. Il a décodé sa clé privée comme suit : « efd0171bc0e1a973c75d97cdf38ecccfb2e70227a23cfcdadfed8d9dd1f198c6dc ». La clé publique du récepteur est identifiée par « a4842eed5a2c6fd7b71a238632f268d5831dacc0 », tandis que sa propre clé publique est notée « 2431e05399f655c52f2e7ab6227837c94d450312 ».

La sortie fournie présente également deux scripts pour les sorties (out1Script et out2Script) ainsi qu'un message à signer, suivi d'une signature qui semble avoir été générée correctement.

Formatage détaillé de la transaction

Le formatage de la transaction réelle indique plusieurs éléments essentiels :

  • Version : 01000000
  • Transaction utilisée : 01
  • Index de la transaction sortante : 00000000
  • Taille du script de signature : 8b

Le script inclut un ensemble complexe d'instructions, telles que OP_DUP, OP_HASH160, suivies des clés publiques encodées. Cependant, malgré ces détails minutieux, l'utilisateur fait face à une erreur lors de la validation.

Erreur rencontrée lors de la diffusion

Lorsqu'il essaie de diffuser sa transaction sous forme hexadécimale, il reçoit un message d'erreur indiquant une « erreur d'exécution du script » avec l'indice 0 faisant référence à son adresse. L'erreur précise que le script n'a pas été vérifié avec succès.

Une autre tentative a abouti à l’erreur « obligatoire-script-verify-flag-failed », signalant que bien que le script ait été évalué sans erreur, il se termine avec un élément supérieur faux ou vide dans la pile.

Analyse du décodage et confusion autour du sigscript

En examinant les résultats après décryptage complet, plusieurs adresses sont mentionnées :

  • Adresses entrantes : « mipLNRZc9oo2fKFzhfwJVNy1t29VsqHRvS »
  • Adresses sortantes : « mvWqTmhjEyMkymTm4VMFWLPQhzGwo6RPGM »

Les frais associés sont établis à 6499, avec un total entrant calculé à 7640000. L’utilisateur note qu’il existe probablement une confusion concernant le sigscript ; en effet, l'adresse vers laquelle les pièces sont envoyées utilise « 04 » ajouté à la clé publique avant application des fonctions SHA256 puis RIPEMD160.

Il conclut en demandant si quelqu’un aurait besoin du code source pour mieux comprendre ou aider dans ce processus complexe.

Cet article met en lumière les défis techniques auxquels font face ceux qui interagissent avec le réseau Bitcoin via des transactions brutes sur testnet. Le cheminement technique peut sembler obscur aux non-informaticiens mais révèle toute la complexité inhérente aux systèmes blockchain.