¿Qué es la Master Public Key?

La Master Public Key es una parte esencial de los procesos en las wallets deterministas o bien wallets HD. De ella depende la generación de las claves públicas de esta clase de monedero y para esto emplean un complejo sistema que garantiza la seguridad en todo instante. Por esta razón, acá te explicamos todo cuanto has de saber sobre la Master Public Key. 

En las wallets deterministas o bien HD, una Master Public Key es aquella clave pública primordial derivada de la Master Private Key. Para ello se emplea un proceso matemático normal de multiplicación de curva elíptica. Desde la clave pública profesora van a ser generadas una cantidad infinita de claves públicas (Xpub) que controlan las direcciones de una wallet, mas que no tienen acceso a las claves privadas de dichas direcciones. 

La Master Public Key tiene la propiedad de poder producir múltiples claves públicas. Esto sin precisar acceder a las claves privadas. Con lo que, en el caso de exponer ciertas claves públicas o bien aun, la Master Public Key (MPK) en sí, no se va a correr el peligro de pérdida o bien hurto de los fondos, si bien sí de privacidad. Esto es debido a que como las claves públicas no tienen acceso a las claves privadas de las direcciones, ni pueden producirlas dichas claves, entonces solo van a mostrar la cantidad libre que esté en la wallet pudiendo ver en la blockchain su historial. Mas no van a dar acceso para usar o bien gastar los fondos que estén libres allá. 

De igual forma que con la Master Private Key, los monedero HD deben comprenderse como un árbol. De cada rama pueden salir nuevas ramas. Puesto que bien, cada nodo de esas ramas deja producir una Master Private Key, mas asimismo una Master Public Key. La Master Public Key les dejará producir solo claves públicas de todas y cada una de las ramas “hijas” que se produzcan desde ese nodo. Mas no va a poder saber las direcciones que se pudieron producir desde los otros nodos paralelos o bien precedentes. 

La Master Public Key del nodo 0, tiene control para saber todas y cada una de las direcciones que se producirán. A diferencia de la Master Private Key, si revelas esta clave no vas a poner bajo riesgo tus fondos, mas sí vas a poner bajo riesgo tu privacidad. Esto debido a que con la Master Public Key se pueden conocer todas y cada una de las direcciones públicas de tu monedero. Sin embargo esta funcionalidad tiene muchos y buenos usos que te vamos a contar en el artículo. 

Master Public Key (MPK) y Wallets HD

Las wallets HD del BIP 32 cuentan con una estructura jerárquica y determinista. Esto les deja una mayor organización tal y como si de un árbol descendiente se tratara. Esta estructura deja que los monederos puedan emplear una rama del árbol para la recepción de fondos y transacciones, y otra rama para la administración de tales fondos. Esto deja que las dos esten relacionadas mas al tiempo separadas entre sí. Con lo que con una se pueden ver los fondos libres sin tener acceso a ellos. Y con la otra, sí se pueden firmar y gastar esos fondos. Esta separación completa de las claves maestras asimismo deja asegurar una mayor seguridad y fiabilidad para la wallet. 

La Master Public Key (MPK) deja la generación de un número infinito de claves públicas (Xpub) y direcciones relacionadas a ella. Con lo que no se va a tener la necesidad de hacer una backup de las direcciones toda vez que una nueva se produzca. Sino partiendo de la semilla, a la que están relacionadas las claves maestras (tanto pública como privada), se puede recobrar la wallet en totalidad con todas y cada una de las claves generadas (Xpub y Xpriv), direcciones y fondos libres. 

Así mismo, todas y cada una de las claves públicas y direcciones derivadas de la Master Public Key  dejan, por sí solas, poder visualizar los montos libres en ella. Mas impiden el acceso a dichos fondos en tanto que no controlan las claves privadas asociadas a las direcciones que poseen los fondos.

Esta característica asimismo es particularmente útil en los casos en los que se quiera configurar un monedero de almacenaje en frío, por servirnos de un ejemplo, donde solo se requiere observar el saldo libre en él. En estos monederos, se puede configurar un servidor a fin de que solamente gestione la Master Public Key. Con la que va a poder crear cualquier cantidad de direcciones públicas para percibir fondos, mas no dejará que ningún atacante pueda emplear dichos fondos. 

Generación de las claves públicas derivadas (Xpub)

Las wallets HD emplean una función hash que les deja derivar las claves públicas secundarias (hijas) de la clave pública profesora (padre) en un inicio. Para lo que emplea la Master Public Key, la semilla de la wallet, el código de cadena generado por medio del algoritmo HMAC-SHA512 y un número índice de treinta y dos bits. 

A través del código de cadena, generado por el hash del algoritmo HMAC-SHA512, se agregan datos azarosos en el proceso de derivación de las claves públicas. Esto sin dejar que el índice pueda derivar a otras claves públicas. De este modo se impide que a través de una clave pública derivada se pueda encontrar o bien hallar a otra clave pública derivada (hermana). Y que esto solo se pueda efectuar en caso que se disponga del código de cadena. 

Entonces, mediante la función hash que combina en un inicio, tanto la clave pública profesora, como el código de la cadena y el número de índice, se producen las claves derivadas, como un hash de quinientos doce bits. Que más tarde es dividido en 2 mitades: la mitad derecha para transformarse en el código de cadena de la clave derivada (hija). Y la mitad izquierda para añadirse al lado del número índice a la clave privada (padre) que va a crear la clave privada (hija). Este proceso se repite en secuencia para crear un número infinito de claves públicas, donde las claves públicas hijas van a poder transformarse en progenitores y producir sus claves hijas. Con lo que puede haber un número infinito de generaciones. 

Bajo este esquema, la función hash unidireccional no deja que las claves públicas derivadas puedan ser empleadas para hallar a otras claves públicas hermanas. Ni para encontrar a la clave pública profesora o bien primordial. Igualmente, este esquema deja derivar las claves públicas hijas así sea partiendo desde la clave privada hija, o bien de forma directa desde una clave pública padre.  

Importancia de la generación de claves públicas derivadas

La derivación de claves públicas hijas desde las claves públicas progenitores deja que se puedan crear ramificaciones de claves públicas de la wallet sin comprometer los fondos libres en ella. Ya estas no relacionan a las claves privadas en ningún instante. 

Así es posible la generación de monederos de observación, por servirnos de un ejemplo para servidores no seguros, donde solo se van a poder ver los fondos libres en él mas sin la opción de gastar los fondos que estén guardados en esas direcciones. Esta función puede ser realmente útil para servidores destinados al comercio virtual, donde la exposición de las claves privadas al servidor podría ser de alto peligro. 

También es realmente útil para esos casos en que los usuarios solo desean contar con de un monedero de almacenaje en frío o bien offline. Que les deje sostener sus fondos seguros y libres de peligros. Que sostendrá las claves privadas fuera de línea en el monedero, mas sí dejará la transmisión on line de las claves públicas sin peligro. 

Generación de claves públicas reforzadas 

La posibilidad de poder derivar un sin fin de claves públicas hijas desde una clave pública padre es realmente útil. No obstante, esto puede representar un peligro de seguridad potencial. Dado a que la clave pública que deriva a el resto tiene acceso al código de cadena, y si se va a llegar a filtrar o bien a conocer una clave privada hija, entonces se podría inferir el resto de claves privadas hijas, comprometiendo la seguridad de los fondos. 

El conocimiento de una clave privada hija al lado del código de cadena de una clave pública padre puede descubrir todas y cada una de las claves privadas hijas, e inclusive, se podrían usar para inferir una clave privada padre. Entonces, para romper con esta brecha de seguridad, se usa una función de derivación famosa como derivación reforzada. Que usa la clave privada padre, en vez de la clave pública padre, para derivar el código de cadena de cada clave hija. Rompiendo con la relación existente entre la clave pública padre y el código de cadena hijo. Esto produce una suerte de cortafuegos que no deja advertir una secuencia padre-hija en las claves públicas derivadas.

¿Cuánto sabes, criptonauta?

¿Las Master Public Key son una forma más eficaz y segura de resguardar nuestros monederos de criptomonedas?

Casos de empleo de las Master Public Key

Prueba de solvencia

Imagina que eres una compañía, o bien aun un gobierno. Un monedero HD sería idóneo para facilitar la administración de tus fondos. En verdad si además de esto fuera multifirma agregaría seguridad y control. Mas ¿de qué forma haces para probar que tienes ciertos fondos sin que la gente los pueda gastar y sin precisar mandar miles y miles de direcciones?, o bien ¿ y si deseas que la gente pueda ver en tiempo real como se emplea el dinero?

Para estos, y otros escenarios, una Master Public Key es la solución perfecta. Con esto das trasparencia absoluta, puesto que no hay inconveniente en dar trasparencia, en tanto que es lo que se busca, mientras que absolutamente nadie tiene capacidad de usar los fondos. Aun van a poder verse las direcciones que todavía no han sido generadas / utilizadas, aparte del saldo y todos y cada uno de los movimientos.

Además debido a las ramificaciones de un monedero HD, podrías producir múltiples Claves maestras públicas con el propósito de separar por departamentos.

¿Te imaginas que un gobierno fuera tan transparente para marchar de esta manera?

Pasarelas de pago

Otro caso de empleo es poder percibir cobros medianteherramientas en la nube. Existen servicios que dejan crear soluciones básicas de cobro en Bitcoin. 

En esta clase de servicios el usuario puede incorporar su Master Public Key de manera que, cuando el servicio deba enseñar una dirección, va a poder producirla mas siendo quien tiene en todo instante la clave privada que deje entonces emplear esas criptomonedas recibidas.

bitcoin
Bitcoin (BTC) $ 62,231.00
ethereum
Ethereum (ETH) $ 3,814.79
binance-coin
Binance Coin (BNB) $ 491.11
tether
Tether (USDT) $ 1.00
cardano
Cardano (ADA) $ 2.13
xrp
XRP (XRP) $ 1.09
solana
Solana (SOL) $ 157.26
polkadot
Polkadot (DOT) $ 41.03
usd-coin
USD Coin (USDC) $ 1.00
dogecoin
Dogecoin (DOGE) $ 0.247226