En los inicios del ecosistema de las criptomonedas, se usaban paper wallets, que no eran más que representaciones físicas de claves privadas y sus direcciones públicas correspondientes impresas en papel. Aunque estas wallets podían generarse de manera determinista o no, tenían importantes desventajas como la exposición de claves privadas al ser impresas en dispositivos poco seguros y la falta de soporte para gestionar las direcciones de cambio.
Posteriormente, aparecieron las wallets no deterministas (Non-HD), donde las claves privadas y públicas se generaban de manera aleatoria e independiente entre sí. Cada vez que se necesitaba generar una nueva dirección, se tenía que realizar una copia de seguridad de la clave privada. Esta arquitectura es conocida como “Just a Bunch of Keys” (JBOK). Aunque se introdujeron mejoras como el keypool en Bitcoin Core para pre-generar direcciones, el riesgo de pérdida de claves no respaldadas seguía siendo elevado.
Las wallets deterministas introdujeron una nueva arquitectura que solucionaba este problema, ya que a partir de una semilla (seed), se pueden generar todas las claves privadas necesarias, lo que permite una recuperación completa de los fondos solo con la semilla. Con el tiempo, esta idea evolucionó hacia las Hierarchical Deterministic (HD) wallets, que utilizan una estructura jerárquica para generar y organizar las claves de manera eficiente y segura.
¿Qué es una Hierarchical Deterministic (HD) wallet?
Una HD wallet, o determinística jerárquica, es un tipo avanzado de wallet determinista que genera todas sus claves privadas y públicas a partir de una única semilla, siguiendo una estructura jerárquica en forma de árbol. La semilla, generalmente representada por una frase mnemotécnica de 12, 18 o 24 palabras, es la base de todas las claves derivadas.
En una Hierarchical Deterministic (HD) wallet, una Master Private Key puede generar múltiples child keys, las cuales a su vez pueden generar sus propias claves derivadas. Esta estructura jerárquica permite gestionar de forma segura y eficiente múltiples direcciones y cuentas dentro de una misma wallet, simplificando la administración de los fondos.
Características de las HD wallets
- Semilla única: La semilla permite generar todas las claves privadas y públicas necesarias. Al estar representada como una frase mnemotécnica (según el estándar BIP39), facilita el respaldo y la restauración de la wallet.
- Jerarquía estructurada: Las claves se organizan en un árbol jerárquico, donde una parent key puede generar múltiples child keys, que a su vez pueden generar sus propias claves. Esto permite una gestión clara y ordenada de múltiples cuentas y direcciones.
- Privacidad mejorada: Cada transacción puede utilizar una nueva dirección, lo que dificulta el rastreo de fondos y mejora la privacidad.
- Seguridad con derivación hardened: En la derivación de claves, existen dos tipos: normal y hardened. En la derivación normal, conocer una child public key podría, en algunos casos, comprometer la parent private key. Sin embargo, la derivación hardened utiliza la parent private key para derivar la child key, lo que evita que una child key comprometida permita deducir la clave privada superior en la jerarquía (parent key). Esta característica añade una capa extra de seguridad en la derivación de claves.
- Compatibilidad: Las HD wallets son compatibles con los estándares BIP32, BIP39 y BIP44, lo que asegura la interoperabilidad entre diferentes wallets y criptomonedas.
- Recuperación sencilla: En caso de pérdida o daño del dispositivo, la wallet puede ser restaurada fácilmente utilizando la frase semilla.
Proceso de generación de claves en una HD wallet
- Semilla inicial: La semilla derivada de las palabras mnemotécnicas se utiliza para generar la Master Private Key y el Chain Code mediante el algoritmo HMAC-SHA512.
- Derivación de claves:
- La Master Private Key y el Chain Code son el punto de partida para derivar child keys.
- Las child keys se derivan utilizando el algoritmo HMAC-SHA512, aplicando el índice de derivación (que puede ser normal o hardened).
- Estructura jerárquica: Las claves derivadas se organizan en rutas de derivación siguiendo un esquema jerárquico, por ejemplo:
m / purpose' / coin_type' / account' / change / address_index
Donde cada nivel de la jerarquía tiene un propósito definido, lo que facilita la organización de las claves y direcciones.
Aplicaciones prácticas y uso de HD wallets
Las HD wallets no solo ofrecen una infraestructura tecnológica sólida, sino que también se adaptan bien a varios casos de uso en la vida cotidiana y en el ámbito empresarial:
- Usuarios individuales: Los usuarios pueden crear cuentas separadas para diferentes objetivos financieros, como ahorro, inversión o gastos diarios. Además, la capacidad de generar nuevas direcciones en cada transacción mejora la privacidad.
- Empresas: Las empresas pueden utilizar HD wallets para gestionar múltiples cuentas, simplificando la contabilidad. Por ejemplo, un negocio puede crear diferentes accounts dentro de la misma wallet para ingresos, pagos a proveedores o nóminas.
- Exchanges y custodios: Las HD wallets permiten a los exchanges gestionar eficientemente un gran número de cuentas de clientes sin comprometer la seguridad, facilitando la administración de las claves privadas y la auditoría.
Estándares BIP32, BIP43 y BIP44
- BIP32: Introdujo las HD wallets y definió cómo se derivan las claves de manera jerárquica a partir de una semilla única. Esto permite generar una Master Private Key y derivar múltiples child keys de forma segura.
- BIP43: Introdujo la posibilidad de definir un purpose en las rutas de derivación, lo que añade flexibilidad a la estructura jerárquica de las HD wallets.
- BIP44: Define un estándar para la derivación de múltiples cuentas dentro de una HD wallet, permitiendo la organización clara y segura de los fondos en diferentes cuentas y criptomonedas.
Conclusión
Las Hierarchical Deterministic (HD) wallets, gracias a la implementación de los estándares BIP32, BIP43 y BIP44, ofrecen una solución robusta y eficiente para la gestión de criptomonedas. Al utilizar una única semilla para generar múltiples claves organizadas jerárquicamente, no solo simplifican el manejo de cuentas y criptomonedas, sino que también refuerzan la seguridad y privacidad del usuario. La capacidad de derivar nuevas direcciones para cada transacción y la protección adicional que ofrece la derivación hardened minimizan el riesgo de comprometer claves superiores, lo que las convierte en una herramienta esencial para usuarios y empresas que buscan proteger sus fondos.
No todas las wallets deterministas son HD, sin embargo, la mayoría de las wallets modernas han adoptado la estructura Hierarchical Deterministic debido a sus beneficios en términos de organización, seguridad y flexibilidad. Las HD wallets representan un salto tecnológico significativo al ofrecer una estructura jerárquica que facilita la administración de múltiples cuentas y mejora tanto la seguridad como la flexibilidad en el uso de criptomonedas.
En el próximo artículo, exploraremos las wallets multifirma, que actúan como una opción más avanzada para distribuir el control entre varios firmantes, proporcionando así mayor seguridad y redundancia. ¡No te lo pierdas!
Recursos:
[1] Bitcoin Developer Reference – Wallets
[2] Bitcoin Developer Guide – Wallets
[3] Understanding HD Wallets
[4] BIP32 – Hierarchical Deterministic Wallets
[5] Learn Me A Bitcoin – HD Wallets
[6] Bitcoin Wiki – Deterministic Wallet
[7] Imagen – BIP32 Key Derivation Diagram
En Block&Capital, nos esforzamos por crear un entorno donde el crecimiento y el éxito sean accesibles para todos. Si estás listo para impulsar tu carrera profesional, te animamos a unirte a nosotros.
Últimos posts