Taproot - Inscrivez-vous aux flux PSBT en utilisant Golang
Chapô : Un développeur a récemment rencontré des difficultés lors de la signature partielle d'un PSBT (Partially Signed Bitcoin Transaction) en utilisant la méthode Schnorr. Malgré des signatures valides, l'état des entrées reste incorrect après traitement par son script. Cet article explore les problèmes rencontrés et les résultats obtenus.
Le processus de signature partielle du PSBT est mal interprété
Le code développé envoie un PSBT au format Base64 accompagné d'entrées à signer. Le développeur encode le PSBT, signe les entrées avec une clé privée (PK) via la méthode Schnorr, puis met à jour le PSBT avant de l'envoyer au serveur. Le résultat attendu devrait indiquer que certaines entrées sont finalisées, mais ce n'est pas le cas.
Voici comment devrait se présenter un traitement correct :
‘is_final » : false } ‘is_final » : false } ‘is_final » : false }]'fee' : 1 'error' : null/p>
Les résultats du script ne correspondent pas aux attentes
Après avoir traité le PSBT avec son script, le développeur observe que l'état des entrées reste « updater » au lieu de passer à « finalizer ». Voici à quoi ressemble le traitement incorrect :
« is_final » : false { « has_utxo » : true « next » : « updater » } ] « estimated_feerate » : 7 « error » : null/p>
Le développeur précise qu'il a vérifié les signatures qui sont correctes et a comparé le PSBT partiellement signé avec celui qu'il aurait dû obtenir ; aucune différence significative n'a été trouvée sauf pour le txid.
Une confusion persiste autour de l'état des entrées
Malgré ses efforts pour comprendre pourquoi l'état des entrées demeure sur « updater », il souligne qu'il avait déjà essayé de finaliser le PSBT sans succès. Au-delà du fonctionnement attendu du code, il note que même après décodage du PSBT traité par son code, il est identique au bon à quelques exceptions près liées uniquement au TXid.
Dans ses mots : « Je suis complètement novice en matière de codage, désolé si j'ai dit quelque chose de mal ».
Analyse technique des données brutes
Les données brutes envoyées par le script montrent une structure complexe impliquant plusieurs éléments clés tels que utxo, final et fee. Voici ce qui a été enregistré comme étant mauvais dans sa sortie initiale :
Mauvais :
cHNidP8BAPwCAAAAAh/wxKDynlU3u3GZmUsMr8s//////.
Après une tentative réussie pour signer partiellement :
cHNidP8BAPwCAAAAAAAAA.
Il semble y avoir un souci systématique dans la gestion ou la mise à jour des états associés aux transactions signées.
Des pistes d'amélioration sont nécessaires pour corriger ces erreurs
Pour conclure cette analyse technique sur un point positif potentiel, il serait bénéfique d'explorer davantage les aspects liés aux mises à jour statiques versus dynamiques dans les systèmes cryptographiques utilisés ici. Une meilleure compréhension pourrait conduire à une résolution rapide et efficace afin que chaque entrée soit correctement marquée comme finalisée après une signature valide.
Ce cas illustre bien que même lorsque toutes les étapes semblent respectées selon la logique programmée, rester attentif aux détails techniques peut faire toute la différence dans l'aboutissement d'une tâche complexe telle que celle-ci.
