Código de cadena pública y MPK

Cuando se generan la clave privada maestra y la clave pública maestra, ¿puedo divulgar el código de cadena como, por ejemplo, BIP32 ? Si no, ¿cómo es posible verificar una clave pública secundaria con parámetros públicos?

Esta es una pregunta importante para mí porque es necesario dar la posibilidad de verificar la clave pública secundaria generada a otro usuario en mi escenario.

¿Se podría generar la clave privada maestra usando un número entero aleatorio 0< k < n donde n es el orden del grupo de curvas?

Respuestas (1)

Puede compartir una clave pública extendida (clave xpub) y el destinatario podrá generar claves públicas secundarias (y, por lo tanto, verificar las claves públicas secundarias que se le proporcionen). Una clave pública extendida se define como (K,c), donde Kes la clave pública principal y ces el código de cadena.

Tenga en cuenta: cualquier persona con la clave xpub no solo podrá verificar que una dirección que le proporcione se deriva de la clave xpub, sino que también podrá derivar todas las direcciones relacionadas con la clave xpub . Dependiendo de la situación, esto puede ser un problema de privacidad.

Vale la pena mencionar: para la mayoría de las aplicaciones, no debe compartir una clave pública maestra extendida. En su lugar, debe compartir una clave pública extendida que se encuentra en un nivel más profundo del árbol de derivación. También puede valer la pena ver los beneficios de usar un esquema de derivación de clave reforzado, de modo que pueda crear un firewall a una cierta profundidad de derivación, lo que significa que un atacante no podrá volver a trabajar más allá de ese nivel en caso de que su sistema esté comprometido.

Entonces, básicamente, una clave privada maestra (k) podría ser 0<k<n, y una clave pública maestra kG donde G es un punto en la curva elegida. ¿Bien?
@CipherX Para crear una clave privada extendida maestra, debe seguir de cerca el estándar BIP32 para garantizar la compatibilidad con otras implementaciones de billetera. En cuanto a los valores que puede tener una clave privada, la wiki de bitcoin tiene buena información . Copiado de esa página: ... cualquier número de 256 bits de 0x1 a 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140 es una clave privada válida. El rango de claves privadas válidas se rige por el estándar ECDSA secp256k1 utilizado por Bitcoin.