¿Qué es la clave pública maestra?

La Master Public Key es una parte fundamental de los procesos dentro de las wallets deterministas o wallets HD. De ella depende la generación de las claves públicas de este tipo de monedero y para ello usan un sistema complejo que garantiza la seguridad en todo momento. Por ello, aquí te explicamos todo lo que debes saber sobre la Master Public Key.

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

La Master Public Key tiene la propiedad de poder generar múltiples claves públicas. Esto sin necesidad de acceder a las claves privadas. Por lo que, en caso de exponer alguna de las claves públicas o incluso, la Master Public Key (MPK) en sí, no se correrá el riesgo de pérdida o robo de los fondos, aunque sí de privacidad. Esto se debe a que como las claves públicas no tienen acceso a las claves privadas de las direcciones, ni pueden generar dichas claves, entonces sólo mostrarán la cantidad disponible que está en la billetera pudiendo ver en la cadena de bloques su historial. Pero no darán acceso para utilizar o gastar los fondos que estén disponibles allí.

De igual forma que con la Master Private Key, los monedero HD deben entenderse como un árbol. De cada rama pueden salir nuevas ramas. Pues bien, cada nodo de esas ramas permite generar una Master Private Key, pero también una Master Public Key. La Master Public Key les permitirá generar solo claves públicas de todas las ramas “hijas” que se generen desde ese nodo. Pero no podrá saber las direcciones que se pueden generar desde los otros nodos paralelos o anteriores.

La Master Public Key del nodo 0, tiene control para saber todas las direcciones que se generarán. A diferencia de la Master Private Key, si revela esta clave no pondrás en riesgo tus fondos, pero sí pondrás en riesgo tu privacidad. Esto debido a que con la Master Public Key se pueden conocer todas las direcciones públicas de tu monedero. No obstante esta funcionalidad tiene muchos y buenos usos que te contaremos en este artículo.

Clave Pública Maestra (MPK) y Wallets HD

Las wallets HD del BIP 32 cuentan con una estructura jerárquica y determinista. Esto les permite una mayor organización como si de un árbol descendiente se tratara. Esta estructura permite que los monederos puedan emplear una rama del árbol para la recepción de fondos y transacciones, y otra rama para la gestión de dichos fondos. Esto permite que ambas estén relacionadas pero al mismo tiempo separadas entre sí. Por lo que con una se pueden ver los fondos disponibles 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 también permite garantizar una mayor seguridad y confiabilidad para la billetera.

La Master Public Key (MPK) permite la generación de un número infinito de claves públicas (Xpub) y direcciones relacionadas a ella. Por lo que no se tendrá la necesidad de hacer una copia de seguridad de las direcciones cada vez que una nueva se genere. Sino que partiendo de la semilla, a la que están relacionadas las claves maestras (tanto pública como privada), se puede recuperar la wallet en su totalidad con todas las claves generadas (Xpub y Xpriv), direcciones y fondos disponibles.

Así mismo, todas las claves públicas y direcciones derivadas de la Master Public Key permiten, por sí mismas, poder visualizar los montos disponibles en ella. Pero impiden el acceso a dichos fondos ya que no controlan las claves privadas asociadas a las direcciones que contienen los fondos.

Esta característica también es particularmente útil en los casos en los que se quiere configurar un monedero de almacenamiento en frío, por ejemplo, donde sólo se requiere observar el saldo disponible en él. En estos monederos, se puede configurar un servidor para que únicamente gestione la Master Public Key. Con la cual podrá crear cualquier cantidad de direcciones públicas para recibir fondos, pero no permitirá que ningún atacante pueda utilizar dichos fondos.

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

Las wallets HD utilizan una función hash que les permite derivar las claves públicas secundarias (hijas) de la clave pública maestra (padre) inicialmente. Para lo cual 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 32 bits.

A través del código de cadena, generado por el hash del algoritmo HMAC-SHA512, se añaden datos aleatorios en el proceso de derivación de las claves públicas. Esto sin permitir que el índice pueda derivar a otras claves públicas. Así se impide que por medio de una clave pública derivada se pueda localizar o encontrar a otra clave pública derivada (hermana). Y que ésto sólo se pueda realizar en caso de que se disponga del código de cadena.

Entonces, a través de la función hash que combina claves inicialmente, tanto la clave pública maestra, como el código de la cadena y el número de índice, se generan las derivadas, como un hash de 512 bits. Que posteriormente se divida en dos mitades: la mitad derecha para convertirse en el código de cadena de la clave derivada (hija). Y la mitad izquierda para añadirse junto al número índice a la clave privada (padre) que 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 podrán convertirse en padres y generar sus propias claves hijas. Por lo que puede haber un número infinito de generaciones.

Bajo este esquema, la función hash unidireccional no permite que las claves públicas derivadas puedan ser utilizadas para encontrar otras claves públicas hermanas. Ni para localizar a la clave pública maestra o principal. Así mismo, este esquema permite derivar las claves públicas hijas ya sea partiendo desde la clave privada hija, o directamente desde una clave pública padre.

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

La derivación de claves públicas hijas a partir de las claves públicas padres permite que se puedan crear ramificaciones de claves públicas de la wallet sin comprometer los fondos disponibles en ella. Ya estas no relacionan a las claves privadas en ningun momento.

Así es posible la generación de monederos de observación, por ejemplo para servidores no seguros, donde sólo se podrán ver los fondos disponibles en él pero sin la opción de gastar los fondos que estén almacenados en esas direcciones. Esta función puede ser muy útil para servidores dedicados al comercio electrónico, donde la exposición de las claves privadas al servidor podría ser de alto riesgo.

También es muy útil para esos casos en que los usuarios sólo quieren disponer de un monedero de almacenamiento en frío u offline. Que les permita mantener sus fondos seguros y libres de riesgos. Que mantenga las claves privadas fuera de línea en el monedero, pero sí permitirá la transmisión en línea de las claves públicas sin ningún riesgo.

Generación de claves públicas reforzadas

La posibilidad de poder derivar un sin fin de claves públicas hijas a partir de una clave pública padre es muy útil. Sin embargo, esto puede representar un riesgo de seguridad potencial. Debido a que la clave pública que deriva a las demás tiene acceso al código de cadena, y si se llegará a filtrar o a conocer una clave privada hija, entonces se podría deducir el resto de claves privadas hijas, comprometiendo la seguridad de los fondos.

El conocimiento de una clave privada hija junto con al código de cadena de una clave pública padre puede revelar todas las hijas privadas, e incluso, se claves podrían utilizar para deducir una clave privada padre. Entonces, para romper con esta brecha de seguridad, se utiliza una función de derivación conocida como derivación reforzada. Que utiliza la clave privada padre, en lugar 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 genera una especie de cortafuegos que no permite detectar una secuencia padre-hija en las fuentes públicas derivadas.

Casos de uso de la Master Public Key

prueba de solvencia

Imagina que eres una empresa, o incluso un gobierno. Un monedero HD sería perfecto para simplificar la gestión de tus fondos. De hecho si además fuera multifirma añadiría seguridad y control. Pero ¿cómo haces para demostrar que tienes determinados fondos sin que la gente los pueda gastar y sin necesidad de enviar millas de direcciones?, o ¿y si quieres que la gente pueda ver en tiempo real como se usa el dinero?

Para estos, y otros escenarios, una Master Public Key es la solución perfecta. Con ello das transparencia absoluta, pues no hay problema en dar transparencia, ya que es lo que se busca, al tiempo que nadie tiene capacidad de utilizar los fondos. Incluso podrá ver las direcciones que aún no han sido producidas / usadas, además del saldo y todos los movimientos.

Además debido a las ramificaciones de un monedero HD, podría generar múltiples Claves maestras públicas con el objetivo de separar por departamentos.

¿Te imaginas que un gobierno fuera tan transparente como para funcionar de esta forma?

Pasarelas de pago

Otro caso de uso es poder recibir cobros a través de herramientas en la nube. Existen servicios que permiten crear soluciones básicas de cobro en Bitcoin.

En este tipo de servicios el usuario puede agregar su propia Master Public Key de forma que, cuando el servicio deba mostrar una dirección, podrá generarla pero siendo tú quien tiene en todo momento la clave privada que permita luego usar esas criptomonedas recibidas.

CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum