
Tiempo de lectura aprox: 3 minutos, 21 segundos
En las carteras jerárquico deterministas (HD) el esquema de derivación que codifica las claves públicas y privadas se le conoce como xpub Master Extended Public Keys o lo que es lo mismo, de xpub, ypub y zpub.
Este estándar permite no solo ser usado dentro de carteras para Bitcoin, sino en general en todas aquellas «criptomonedas» que siguen este patrón y en este artículo nos centraremos en Bitcoin.
Una única semilla mnemónica genera Claves Master Extended Private Key y Claves Master Extended Public Key, las cuales pueden ser usadas para derivar nuevas claves dentro de la cartera.
Cada Master Extended Private Key, a su vez, da lugar a un número casi infinito de Claves «hijo», llamados Child Private Keys, los cuales tienen su contraparte publica llamadas Child Public Keys. y sus direcciones asociadas.
Por lo tanto, puedes tener una única Master Extended Private Key, y utilizarla como fuente para todas las claves privadas y públicas hijas de tu cartera. Además, una Master Extended Public Key correspondiente generará las mismas claves públicas hijas (Child Public Keys).
De lo anterior, debemos entender que la Master Extended Public Key es útil para la creación de carteras de vigilancia o watch-only wallet, ya que nos permite tener acceso a las direcciones de la cartera sin que a su vez se tenga acceso a las claves privadas, y por ende sin poder operar sobre ellas, solo «verlas».
Entonces, ¿qué es xpub, ypub, zpub y demás?.
Pues habiendo repasado lo anterior, son el nombre que se le da a la codificación de las claves Públicas Extendidas en diferentes tipos de scripts a saber:
xpub
Es como se denomina a una Clave Pública Extendida – eXtended Public.
Nace en el estándar de bitcoin BIP32 y sirve para dar acceso de solo lectura a una cartera. La xpub permite tener una visión completa de todas las transacciones, direcciones y saldos de una cartera en específico, pero no permite ningún tipo de gasto. Para gastar, se requieren claves privadas, y el xpub no tiene ninguna clave privada. Son las claves de nomenclatura inicial y se usan en las carteras tipo Legacy, las cuales tienen direcciones que empiezan por 1.
ypub
Es exactamente lo mismo que un xpub, excepto que la «y» nos indica que la clave pública extendida pertenece a una cartera que sigue el estándar de bitcoin BIP49, el cual detalla un esquema de direccionamiento compatible con versiones anteriores a SegWit. Una clave ypub tiene un tipo de dirección P2SH-P2WPKH.
zpub
Y resulta que zpub es exactamente igual que ypub en el sentido de que nos indica que la clave pública extendida es la de una cartera que sigue el BIP49, sin embargo también nos indica que esa cartera en particular no sigue el esquema de direccionamiento compatible hacia atrás, en su lugar sigue el tipo de dirección P2WPKH, es decir zpub es para carteras nativas compatibles con SegWit.
En esta tabla queda más clara la relación de las claves privadas / Públicas
Tipo de dirección | Tipo de script | Public Key | Private Key | BIP32 Derivation Path |
---|---|---|---|---|
Legacy | P2PKH o P2SH | 0x0488b21e – xpub | 0x0488ade4 – xprv | m/44’/0′ |
Segwit compatible | P2WPKH en P2SH | 0x049d7cb2 – ypub | 0x049d7878 – yprv | m/49’/0′ |
Segwit native | P2WPKH | 0x04b24746 – zpub | 0x04b2430c – zprv | m/84’/0′ |
Multifirma segwit compatible | P2WSH en P2SH | 0x0295b43f – Ypub | 0x0295b005 – Yprv | – |
Multifirma segwit native | P2WSH | 0x02aa7ed3 – Zpub | 0x02aa7a99 – Zprv | – |
Testnet Legacy | P2PKH o P2SH | 0x043587cf – tpub | 0x04358394 – tprv | m/44’/1′ |
Testnet Segwit compatible | P2WPKH in P2SH | 0x044a5262 – upub | 0x044a4e28 – uprv | m/49’/1′ |
Testnet Segwit native | P2WPKH | 0x045f1cf6 – vpub | 0x045f18bc – vprv | m/84’/1′ |
Testnet Multifirma segwit compatible | Multi-signature P2WSH in P2SH | 0x024289ef – Upub | 0x024285b5 – Uprv | – |
Testnet Multifirma segwit native | Multi-signature P2WSH | 0x02575483 – Vpub | 0x02575048 – Vprv | – |
NOTA 1: Todas las master public keys pueden llegar a codificarse como xpub. La codificación es la misma que se describe para xpub en el BIP 32 pero con un byte de prefijo diferente.
Las rutas para derivar ypub, zpub, etc han sido implementaciones creadas por Electrum y SatoshiLabs. Estas rutas tienen una codificación específica, la cual esta descrita en el SLIP 132 y se complementan con el SLIP 032
NOTA 2: Con TapRoot se implementará un nuevo tipo de script para direcciones en Bitcoin (P2TR), y supongo que va a suponer la adopción de nuevo tipos de Claves Públicas Extendidas, sin embargo, al momento de escribir este artículo no encontré información que me ayudara a conocer claramente que clave de codificación va a usarse para identificar las claves públicas y privadas de Taproot.
Actualización a la nota 2. Para Taproot no es necesario representar el script bajo ningún tipo de Public Key, ya que Taproot no utiliza el hash de clave pública. Las salidas almacenan una clave pública directamente. La recomendación que dan los desarrolladores de Bitcoin es usar un descriptor que indique que la salida (la dirección a usar es de tipo Taproot, usar como descriptor tr(). Si quieres saber que son los descriptores, te invito a leer este artículo que escribí aquí en Estudio Bitcoin.
Consideraciones de privacidad
Como podrás entender después de leer el artículo, con tu clave pública maestra es posible acceder a tus direcciones y con ello obtener el balance total de los mismos, por eso, no es recomendable ni seguro compartirlas. Este es el principal motivo por el que recomiendo tener un nodo de Bitcoin propio, ya que con ello eliminas de raíz qué se pueda tener acceso a esa información.
Recuerda que con Bitcoin, ahora tú eres el responsable de cuidar tus finanzas y de la misma forma que en el mundo Fiat tradicional no vas mostrando ni publicando el saldo y los movimientos de tus cuentas, debes cuidar de no hacerlo, evitando compartir las claves.
Sobre el autor de este artículo

Escribo sobre temas referentes a Bitcoin en mi blog, en Estudio Bitcoin y en twitter, opiniones personales, no doy consejos de inversión. No confíes, verifica!
¿Te ha sido útil esta información? Puedes apoyarme con una propina: bitcoin o LN . | FEFAC3C61327B024