¿Tiene Ledger Nano S un xPub o un zPub para monederos Bitcoin?

{
  "xpub": "tpub-big-long-key-that-starts-with-tpub",
  "index": 1,
  "freshAddressPath": "84'/1'/1'/0/0",
  "id": "libcore:1:bitcoin_testnet:tpub-big-long-key-that-starts-with-tpub:native_segwit",
  "blockHeight": 2097540
}

Cuando copio el "xPub" de una billetera Ledger Nano S Bitcoin Testnet, encuentro exactamente esto (clave obviamente ofuscada). Estoy confundido porque en mi investigación de principiante tengo entendido que la ruta de derivación 84'/1'/1'/0/0 es para claves zpub y billeteras segwit. De hecho, mis billeteras en mi libro mayor están etiquetadas como "segwit". Pero aquí la clave extendida está etiquetada como "xpub" y la clave comienza con "xpub", o en el caso de Bitcoin Testnet, comienza con "tpub". ¿Por qué?

¿Puede alguien explicarme por qué esto parece confuso? ¿Esta clave es xpub o zpub? ¿Un tpub y un xpub son lo mismo? ¿Debo usar Bip32, Bip44 o Bip84 para obtener claves secundarias (y, por lo tanto, direcciones) que coincidan con mi libro mayor nano?

Encontré una clase de python inteligente que convertirá xpub a zpub. ¿Es esto lo correcto en este caso?

https://gist.github.com/jleo84/97fc58c6174f146642b2c215c20f88f5

¡Gracias de antemano! Esta es mi primera pregunta (no se preocupe, tengo más) en este Stack Exchange y realmente aprecio cualquier apoyo o consejo que pueda obtener.

Respuestas (1)

BIP 32 especifica un formato de serialización para claves públicas extendidas. Este formato tiene el prefijo xpuby es genérico para todas las claves públicas que se pueden utilizar con BIP 32, independientemente del tipo de dirección o la ruta de derivación.

BIP 84 agregó una serialización adicional que da como resultado que el prefijo zpubindique que las claves derivadas de esa clave pública extendida solo deben usarse en direcciones nativas de segwit.

Es correcto que una billetera genere xpubs para las claves utilizadas en las direcciones segwit. También es correcto que una billetera genere zpubs para las mismas claves. Solo depende de la implementación. La serialización solo se usa para algunos metadatos en la billetera, las claves derivadas serán todas iguales. Para obtener las mismas direcciones, necesita una billetera que obtenga las claves y las use en el tipo de dirección que espera.


tpubes un prefijo utilizado para claves públicas extendidas que se crearon en una billetera de testnet.

Gracias por esta respuesta, pero ahora debo preguntar, ¿cómo puedo saber cómo mi Nano está derivando claves? Supongo que está usando Bip84, ¿no? ¿Debo suponer que está usando Bip32 ya que la clave es un xpub? Si es así, ¿por qué la ruta de derivación comenzaría con 84? ¿Debería convertir este "xpub" en un "zpub" y usar Bip84?
xpub y zpub son codificaciones diferentes de la misma clave zpub codifica la información adicional de que la clave específica debe usarse para derivar una dirección P2WPKH (también puede derivar una dirección P2PKH si lo desea). Ledger usa bip84 para derivar las claves/direcciones, pero no se molesta en codificarlo en zpub, usa el xpub más genérico.
@ mike-a BIP 32 es el único método de derivación. Especifica la forma de derivar claves y cómo funcionan las rutas de derivación. No especifica ninguna ruta de derivación específica. BIP 84 solo especifica rutas de derivación específicas para usar, además de zpub. Su dispositivo está usando ambos bips: está usando BIP 32 para derivar claves especificadas con la ruta de derivación BIP 84.
@AndrewChow ¡Gracias por esta respuesta! ¿Conoce una API en la que pueda obtener el saldo total de una dirección zpub? bitcoin.stackexchange.com/questions/116038/… Gracias.