Al terminar esta lección podrás
- Seguir el camino de las palabras a la semilla, de la semilla a la clave maestra y de ahí a cada clave
- Distinguir un hijo normal de uno endurecido y saber por qué importa
Mucha gente cree que la billetera guarda una lista de claves y que la seed es una copia de esa lista. No hay lista. Hay un árbol, y cada clave se vuelve a calcular cuando hace falta.
Antes de BIP-32 cada clave salía del azar por separado. La copia de seguridad caducaba: las claves creadas después de hacerla no estaban en ella. BIP-32 cambió eso con una idea sencilla. Todas las claves salen de una sola semilla siguiendo un cálculo fijo, así que quien conserva la semilla puede rehacer cualquier clave, la primera o la del año que viene.
El camino tiene tres tramos:
- De las palabras a la semilla. BIP-39 pasa la frase, y la passphrase si la hay, por 2.048 rondas de hash. Salen 64 bytes. Otra passphrase da otra semilla y, con ella, un árbol entero distinto.
- De la semilla a la clave maestra. Un hash de la semilla da otros 64 bytes, que se parten en dos mitades: una es la clave privada maestra y la otra, un código de cadena (chain code) que hará falta para bajar por el árbol.
- De cada nudo a sus hijos. Cada hijo sale de mezclar en un hash los datos del padre con un número de hijo. Siempre da el mismo resultado y, con el hijo solo, no se puede subir al padre.
Hay dos clases de hijos. De los normales se puede calcular la clave pública con la clave pública del padre y su código de cadena, sin ninguna privada. Los endurecidos necesitan la privada del padre. Esa diferencia, que parece un detalle, decide qué puede hacer una xpub y qué no. La verás en la lección 2.4.
Para tu plan, la consecuencia es directa. Lo que hay que proteger no son las claves, que se recalculan, sino lo que está arriba del árbol: las palabras y, si la usas, la passphrase. Quien tenga eso tiene todas las ramas.
La entrada de HD wallets es avanzada y trae las fórmulas. No te hacen falta. Lee «Una seed, un árbol: qué problema resolvía BIP-32», la primera parte de «Clave extendida: una clave más un chain code» y, en «Cómo nace un hijo», la lista de hijos normales y endurecidos.
Lee en Bitcoinpedia
Pruébalo
Estas claves salen de vectores de prueba públicos: cualquiera puede gastar lo que se envíe a ellas. Nunca metas una clave tuya en una web, tampoco en esta.
En la herramienta, con la frase de prueba «abandon … about», mira la semilla: ¿cuántos bytes tiene? Pulsa «Siguiente dirección» dos veces y compara las claves privadas. Cambia el origen a «Vector 1 de BIP32» sin tocar la ruta: ¿se parece algo a lo anterior? Luego, en tu escenario, calcula cuántas direcciones usarías en un año (una persona que ahorra, unas pocas; un negocio, una por factura) y explica por qué ninguna de ellas pide una copia nueva.
Piénsalo o escríbelo a mano. No guardamos lo que respondas.