¿La clave pública generada a partir de la clave privada es única en Bitcoin?

Estoy generando una clave pública a partir de mi clave privada. Lo hice en Java script y C#. pero las claves públicas generadas son diferentes. Mi código en C# (KeyCore.NET):

PrivateKey pv = new PrivateKey(Globals.ProdDumpKeyVersion, "KwY7eRvXXFd7HPX4Zuv8STZMLsVSe2X22HkU24Av84W1Cb7Rd5Yh");
PublicKey pb = pv.PublicKey;
Console.WriteLine(pb.ToString());

el resultado del código C# es 16w4zZWjWnhfEasJcSbfDQeHJRk1LytPHF5ir1ZS9mtUD5adsdHy el resultado del código javascript es16reZXagkyToongduimD25SEerXwP3MQ4n

Usé KeyCore.NET y bitaddress

Respuestas (2)

A una clave privada le corresponde una clave pública única .

En su caso, 16reZXagkyToongduimD25SEerXwP3MQ4n es una dirección (la codificación hash + de una clave pública).

pero ¿qué pasa con: 16w4zZWjWnhfEasJcSbfDQeHJRk1LytPHF5ir1ZS9mtUD5adsdH? es incorrecto?
Como la clave pública correspondiente a la clave privada que incluiste en tu publicación (por cierto, ¡no hagas eso!)

El número base58 16w4zZWjWnhfEasJcSbfDQeHJRk1LytPHF5ir1ZS9mtUD5adsdHes una codificación base58Check de la clave pública (comprimida):

030d4018f164d58e41e0c5fb99eb5ec26b4f21fc8ad0db726d51a7cce60c75df0a

que corresponde a KwY7eRvXXFd7HPX4Zuv8STZMLsVSe2X22HkU24Av84W1Cb7Rd5Yh, y cuya dirección es 16reZXagkyToongduimD25SEerXwP3MQ4n. Tenga en cuenta que su clave privada es en realidad un poco más que una clave privada. Es un número de 38 bytes que es una codificación base58Check de un número que contiene 34bytes (en lugar de solo 32 para una clave secreta). Hay un byte de versión adicional 0x80al principio que indica que la clave privada se utilizará para la red principal de bitcoin (en lugar de una red de prueba). Hay un adicional0x01byte de sufijo al final (justo antes de los 4 bytes de suma de comprobación) que indica que la clave pública asociada con esta clave privada se generará en forma comprimida (33 bytes) en lugar de sin comprimir (65 bytes). Entonces, si bien es cierto que su representación WIF de su clave secreta conduce a una dirección única (una que corresponde a una clave comprimida en la red principal), el secreto real de 32 bytes puede conducir potencialmente a 4 direcciones (dependiendo del estado de compresión de la clave pública y tipo de red).

¡gracias Señor! así que estoy claro ahora! ¡podemos convertir base58 de clave pública, es decir 16w4zZWjWnhfEasJcSbfDQeHJRk1LytPHF5ir1ZS9mtUD5adsdH, a dirección 16reZXagkyToongduimD25SEerXwP3MQ4ncon BitcoinAddressclase de espacio de Bitcoin.KeyCorenombres! en realidad es para la comodidad de la lectura humana. ¡Me gusta votar pero no puedo!