Vérification de la signature ECDSA dans Script


Cet article a été publié pour la première fois sur Medium.

Nous avons implémenté l’algorithme de vérification de signature ECDSA dans Script. Il peut vérifier si un arbitraire message est signé par une clé privée correspondant à une clé publique donnée, tandis que OP_CHECKSIG ne peut vérifier les signatures que lorsque le message est la transaction de dépense en cours¹. Étonnamment, cela se fait sans introduire de nouveau code d’opération tel que OP_DATASIGVERIFY (alias, OP_CHECKDATASIG) sur BCH.

Algorithme de signature numérique à courbe elliptique (ECDSA)

ECDSA est l’algorithme utilisé dans Bitcoin pour la génération et la vérification de signature. L’algorithme de vérification est indiqué ci-dessous.

Vérification de la signature ECDSA

Mise en œuvre

Nous avons implémenté l’algorithme comme indiqué ci-dessous, en utilisant la bibliothèque de courbes elliptiques que nous avons publiée auparavant.

Tout d’abord, nous devons extraire r et s composants de la signature, qui est encodée au format DER. Puisqu’ils sont big-endian, nous devons les convertir en little-endian, c’est ainsi que les données sont encodées dans Script/sCrypt.

LA

Après r et s sont récupérés, nous exécutons simplement l’algorithme de vérification standard de l’ECDSA.

Contrat ECDSA

***

REMARQUE:

[1] Plus précisément, il vérifie la signature contre soupir.

Nouveau sur Bitcoin? Découvrez CoinGeek Bitcoin pour les débutants section, le guide de ressources ultime pour en savoir plus sur Bitcoin—comme envisagé à l’origine par Satoshi Nakamoto—et la blockchain.



Source de l’article

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *