¿Cuál es la diferencia entre la clave maestra pública/privada y la clave pública/privada?

  1. ¿Cuál es la diferencia entre la clave pública maestra (MPK) y la clave pública?
  2. ¿Cuál es la diferencia entre la clave privada maestra y la clave privada?
  3. ¿Debo usar la clave pública maestra (MPK) al generar una dirección o una clave pública?

Respuestas (1)

Con "Clave pública maestra" probablemente se refiera a la derivación de clave determinista después de bip32.

El término correcto es "Clave privada maestra extendida" (acrónimo xpriv ) y "Clave pública maestra extendida" (acrónimo xpub ).

Los acrónimos son "xpriv" y "xpub" porque el prefijo de verificación base58 da como resultado esos 4 caracteres para una clave pub/priv extendida de red principal.

La diferencia entre una clave pública extendida y una clave pública normal es que también contiene información sobre la cadena bip32 (cadena/jerarquía determinista).

Contiene:

  • La profundidad en la jerarquía (1 byte 0x00 para nodos maestros, 0x01 para claves derivadas de nivel 1, ...)
  • Una huella digital (4 bytes, posible identificador)
  • El código de cadena (32 bytes, = enlace utilizado para la jerarquía)
  • El índice secundario ("número" de la clave en el nivel de jerarquía actual)
  • La clave pública o privada (32 bytes para clave privada, 33 bytes para clave pública)

Una clave pública o privada normal solo contiene el último elemento (clave [pública|privada] de 32/33 bytes).

Un ejemplo (simplificado) de cómo generaría direcciones:

  1. Tome la clave privada maestra extendida ( m/)
  2. Derivar una clave privada extendida de cuenta ( m/0')
  3. Tome esta clave privada extendida de cuenta ( m/0') y obtenga la primera clave privada extendida en el siguiente nivel ( m/0'/0).
  4. Use la clave privada extendida de ( m/0'/0) para generar la clave pública extendida y saque la "clave pública normal" (33 bytes) y codifique una dirección P2PKH (o P2WPKH, multisig, etc.) a partir de ella.