Derivation Path es la secuencia exacta con la que una cartera deriva una clave concreta a partir de otra inicial. Imagina las carpetas de un ordenador: tener el disco correcto no basta si abres las carpetas equivocadas. Pero las claves se calculan matemáticamente, no se buscan en archivos guardados. Los mismos datos iniciales y la misma ruta producen el mismo resultado. Otra ruta puede llevar a otra parte de la misma cartera. No es una dirección de pago, una contraseña ni un sustituto de la copia de seguridad.
Anna está restaurando su cartera y el programa le pide una ruta en la que nunca había tenido que pensar. Una cartera es una aplicación o un dispositivo para recibir y enviar bitcoin. m/0/7 parece complicado, pero se lee en orden: m es el nodo privado maestro, del que se deriva la clave 0 y después la clave 7 a partir de esta. Aquí nodo significa un lugar en el árbol de claves, no un ordenador de la red Bitcoin. Los números son índices, posiciones, no importes ni números de transacción. El estándar BIP 32 usa una clave extendida que incluye, además de la propia clave, un chain code: datos adicionales necesarios para derivar más claves. Por eso la ruta escrita sin la clave inicial no permite firmar un pago. [1] [10]
Consideremos m/84'/0'/0'/0/7. La primera parte tras m identifica BIP 84 para SegWit nativo, una forma de construir direcciones y gastar fondos. Después vienen Bitcoin mainnet, la red principal con bitcoins reales, la cuenta 0, la rama externa de recepción 0 y el índice 7. Es la octava posición de dirección, porque se cuenta desde cero. La cuenta separa un grupo de fondos y la rama indica para qué sirven sus direcciones. En la estructura BIP 44, la rama 1 sirve para el cambio propio, el dinero que sigue siendo del remitente después de pagar. Los tres primeros pasos llevan apóstrofo y son hardened; los dos últimos son normales. ¿Qué cambia esa marca? [2] [5]
Una clave privada es un valor numérico secreto que la cartera utiliza para crear una firma digital que autoriza el gasto. Hardened identifica un método de derivación que requiere la clave privada del nivel superior. Un paso normal permite obtener una clave pública derivada desde un xpub, una clave pública extendida. Con el tipo de script apropiado se pueden construir direcciones sin poder firmar pagos. Un xpub por sí solo no atraviesa un paso hardened. Según BIP 380, 0' y 0h significan lo mismo, no el 0 normal. Para profundizar: BIP 32 divide los índices de 32 bits en normales de 0 a 2^31−1 y hardened de 2^31 a 2^32−1; la marca convierte el cero en el índice 2^31. Omitirla cambia el cálculo, no solo el aspecto de la ruta. [1] [7] [10]
BIP 43 llama purpose al primer nivel hardened: indica la finalidad de la estructura. Los valores acordados ayudan a las carteras a reconocer cómo se usa normalmente esa rama. Como referencia, 44' identifica P2PKH tradicional, un pago protegido por el hash de una clave pública; 49' identifica P2SH-P2WPKH, SegWit dentro de un envoltorio anterior por compatibilidad; 84' identifica P2WPKH nativo; y 86' identifica single-key P2TR, una construcción Taproot con una clave interna. Son formas distintas de establecer las condiciones de gasto. Un número no transforma mágicamente la ruta en el script correspondiente ni lo impone mediante el consenso de la red. El programa debe construir la salida correcta. Además, no todas las carteras siguen estas convenciones. [3] [2] [4] [5] [6]
Anna puede conectar solo el xpub de una cuenta para ver los ingresos, en lugar de la cartera completa. Si procede de m/84'/0'/0', ya está al nivel de la cuenta. Para llegar al ejemplo anterior solo falta el sufijo relativo /0/7. Añadir otra vez toda la ruta desde la raíz iniciaría otra derivación desde el lugar equivocado; además, sus pasos hardened no pueden realizarse desde un xpub. La clave extendida exportada incluye su profundidad en el árbol y el fingerprint del padre, una etiqueta identificadora breve, pero no el registro completo de los pasos anteriores. Por eso no siempre se puede leer la ruta original que falta a partir del propio xpub. [1] [7]
Un Descriptor describe las claves y condiciones de gasto para que el programa construya las salidas que sigue. BIP 380 permite escribir el fingerprint y la ruta de origen entre corchetes antes de la clave. Esos pasos ya se realizaron. El sufijo posterior indica la derivación pendiente; un asterisco * puede representar una serie de descendientes. El fingerprint ocupa cuatro bytes y puede colisionar: claves distintas pueden tener la misma etiqueta breve. No prueba identidad ni sustituye la clave. Bitcoin Core 29.0 ofrece deriveaddresses mediante RPC, la interfaz de programación del nodo. Calcula direcciones a partir de un descriptor y del rango indicado, si lo hay; ese cálculo por sí solo no consulta saldos ni envía fondos. [7] [1] [9]
La ruta por sí sola no puede producir tus claves sin los datos iniciales. Compartir un xpub es distinto: quien lo recibe puede derivar claves públicas de la rama accesible y, con el tipo de script correspondiente, seguir sus direcciones. No obtiene permiso para gastar, pero puede perjudicar tu privacidad. BIP 32 advierte además de un riesgo menos evidente: un xpub del padre junto con una clave privada descendiente filtrada, alcanzable mediante pasos normales, puede revelar la clave privada extendida del padre. Una frontera hardened bloquea esa vía concreta de regreso al padre. No invalida la clave filtrada ni rescata los fondos que controla. [1]
Volvamos a la recuperación. Seed Phrase son las palabras de respaldo. Según BIP 39, esas palabras y una passphrase opcional producen la semilla, el secreto inicial para generar claves. La passphrase es un texto secreto adicional, no la contraseña habitual de la aplicación. Con otra semilla, la misma ruta lleva a otras claves. También deben coincidir red, cuenta, rama y tipo de script. El programa debe buscar suficientes direcciones e historial: Gap Limit detiene la búsqueda tras una serie de direcciones sin uso. Por tanto, un saldo cero no demuestra por sí solo la pérdida de las claves. Anna puede comparar el resultado con una dirección conocida y pagos anteriores. Que el programa acepte la ruta solo indica que puede procesarla, no que haya encontrado toda la cartera original. [8] [2] [7]
Para obtener la imagen más completa, lee esta entrada junto con HD Wallet, Extended Public Key (xpub), Gap Limit, Output Descriptor, BIP 39, Seed Phrase. También enlazan con esta entrada HD Wallet, Watch-only Wallet, Change Address, Extended Public Key (xpub).