Recréer la signature principale Bitcoin


J’essaie de recréer exactement la même signature que Bitcoin Core. J’ai installé bitcoin-core/secp256k1, mais j’obtiens parfois une signature différente de celle de Bitcoin Core (qui sont valides). J’ai lu que depuis la v0.17, il existe une entropie supplémentaire (entier non signé little endian 32 bits avec un compteur). En raison de mon expérience limitée, je ne suis pas en mesure de le comprendre pleinement et de le mettre en œuvre.

Quelqu’un pourrait-il me donner quelques conseils sur la façon d’implémenter ce compteur dans mon code pour produire exactement les mêmes signatures que Bitcoin Core.

unsigned char *byte_array i < byte_array_length "%2hhx" } } int main(void) { // Initialiser le contexte secp256k1 secp256k1_context *ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN) const char *msg_hash_hex = "" caractère non signé msg_hash[32] priv_key hex_to_bytes(msg_hash_hex sizeof(msg_hash)) secp256k1_ecdsa_sign(ctx priv_key size_t der_sig_len = sizeof(der_signature) der_signature &signature) i < der_sig_len der_signature[i]) // Libère le contexte secp256k1 secp256k1_context_destroy(ctx) Données: Signatures principales Bitcoin  : 32eb30a17877fa7fe

55dbc70debc8

Signatures avec mon code : 47f72472ad277a073

Recréer la signature principale Bitcoin

e461fa2260