Cómo utilizar las teclas BIP-32

Estoy tratando de construir una aplicación que use el BIP-32. Pero no estoy seguro de cómo usarlo.

Tengo un passphrasecon el que genero el Derived Private Keyy Derived Public Key. Si comparto mi Derived Public Keybilletera con una segunda billetera, ¿la billetera podrá generar otras Derived Public Keya partir de ella? Es posible ?

Y como tengo el original Derived Private Keyconmigo, ¿puedo ver lo que sucede en la segunda billetera?

Además, si pierdo tanto el Derived Private Keycomo el Derived Public Key, ¿podré recuperar mis monederos usando solo el Passphrase?

Respuestas (1)

1) No debe derivar una clave privada maestra de una "frase de contraseña". Necesita un PRNG seguro (/dev/urandom) para generar 32 bytes de entropía. Estos 32 bytes (256 bits aleatorios) son su semilla maestra que se puede "convertir" en su "clave privada maestra extendida".

Posteriormente, puede cifrar la entropía de 32 bytes con una clave AES256 derivada de la frase de contraseña (utilice un KDF adecuado).

2) Las claves públicas se pueden calcular a partir de las claves privadas.

3) Si tiene una clave privada, siempre puede calcular la clave pública

4) No puede calcular la clave privada a partir de una clave pública (logaritmo discreto)

5) Lo mismo se aplica a las claves privadas/públicas "extendidas" (claves bip32 que comienzan con xpriv, xpub, etc.)

6) Puede darle a alguien su información extended public keyque le permitiría ver su saldo, ver su transacción

¿Es posible compartir mi clave pública extendida con otra billetera usando la red Bitcoin?
Puede compartir su clave pública extendida con otra billetera. Pero tenga en cuenta que si tiene dos billeteras que pueden distribuir direcciones, es muy probable que se encuentre con el problema de "reutilización de direcciones".
¿Es posible hacerlo con la propia red bitcoin, compartiendo la clave pública extendida?
No entiendo tu pregunta, envíame un mensaje privado en IRC #bitcoin-dev o #bitcoin
He hecho ping en IRC.