Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Ruta de derivación

¿Qué es una ruta de derivación?
Una ruta de derivación es la ruta por el árbol de claves de una billetera HD, escrita como m/84h/0h/0h/0/0, que indica al software exactamente qué clave, entre miles de millones, reconstruir desde su semilla.

Se especifica en el BIP-44.

Una ruta es una coordenada, no un secreto. Dos números cerca del principio deciden si sus palabras reconstruyen direcciones que empiezan por 1, 3, bc1q o bc1p, porque BIP-44, BIP-49, BIP-84 y BIP-86 leen cada uno la misma frase de manera distinta. Anotar la ruta junto a su respaldo marca la diferencia entre una restauración que encuentra sus monedas y otra que muestra cero.

Cómo funciona

Una ruta se lee de izquierda a derecha, un nivel por cada barra, y cada nivel acota la búsqueda. La m del principio es la clave maestra generada a partir de su semilla. Todo lo que va después es un índice, y un apóstrofo o una h marca ese índice como endurecido.

El primer nivel es el propósito, y es el nivel que decide qué aspecto tienen sus direcciones.

EstándarRuta de la cuentaDirecciones que produce
BIP-44m/44h/0h/0hheredadas (legacy), que empiezan por 1
BIP-49m/49h/0h/0hSegWit anidadas, que empiezan por 3
BIP-84m/84h/0h/0hSegWit nativas, que empiezan por bc1q
BIP-86m/86h/0h/0hTaproot, que empiezan por bc1p

El segundo nivel es el tipo de moneda, tomado del registro SLIP-0044, en el que bitcoin es 0 y toda testnet es 1. El tercero es el número de cuenta, que es lo que permite que una misma semilla contenga una billetera personal en 0h y una billetera de empresa en 1h sin historial compartido. A partir de ahí se acaba el endurecimiento: el cuarto nivel es la cadena, 0 para las direcciones que usted entrega y 1 para el cambio, y el quinto es el índice de dirección, que aumenta a medida que usted recibe pagos.

Esa división entre niveles endurecidos y normales es deliberada. Como el nivel de cuenta está endurecido, la clave pública extendida de m/84h/0h/0h puede exportarse a un teléfono o a un contador, que luego puede derivar todas las direcciones de recepción y de cambio que hay debajo, pero no puede desplazarse lateralmente a otra cuenta ni subir hacia la clave maestra.

El multisig usa su propia rama. BIP-48 coloca las claves de los cofirmantes en m/48h/0h/0h/2h para SegWit nativo, donde el último nivel endurecido indica el tipo de script, así que un dispositivo puede distinguir una cuenta de una sola firma de una cuenta multisig antes de firmar nada.

Por qué importa cuando compra bitcoin

La ruta nunca afecta a su seguridad. No cambia nada de lo difícil que es robar sus monedas, y lo cambia todo respecto a si el software que tiene delante puede encontrarlas.

El fallo que esto provoca es común e invariablemente aterrador. Usted compra en un exchange, retira a un dispositivo, y las monedas llegan a direcciones bc1q bajo m/84h/0h/0h. Un año después restaura las mismas 24 palabras en otra aplicación que usa direcciones heredadas de forma predeterminada, y el saldo marca 0,00000000 mientras un explorador de bloques sigue mostrando su dinero intacto en la dirección antigua. No se perdió nada. La aplicación está buscando en la rama equivocada de un árbol con cuatro mil millones de nodos hijos por nivel.

Los valores predeterminados difieren entre las billeteras reseñadas en este sitio. Trezor Suite y Ledger Live presentan cada una las cuentas por tipo de dirección y eligen en silencio un propósito por usted. Electrum pregunta qué tipo de script quiere al restaurar y esconde un campo de ruta de texto libre detrás de una opción avanzada. Sparrow escanea varias rutas estándar a la vez y le muestra cuál tiene historial. Ninguna de ellas se equivoca, y ninguna puede adivinar lo que hizo la otra.

Dos hábitos eliminan el problema por completo. Anote la ruta de la cuenta y el tipo de dirección en la misma nota que el nombre de la billetera, y guarde esa nota en algún lugar al que pueda acceder sin la semilla, como un gestor de contraseñas, ya que por sí sola no revela nada. Después, antes de confiar en una restauración, compare la primera dirección de recepción que muestra con la que muestra su dispositivo original. Si esas dos cadenas de caracteres coinciden, todas las direcciones que hay debajo también coincidirán.

Restaurar 24 palabras en Electrum y ver cero

Una restauración en la ruta equivocada se desarrolla así. Un Trezor Model T se configuró con 24 palabras, un retiro desde un exchange fue a su primera dirección SegWit nativa y el dispositivo está ahora en un cajón. Meses después, la frase se escribe en Electrum en una computadora portátil.

Electrum pide el tipo de script antes de escanear. Elija el tipo heredado, p2pkh, y Electrum deriva m/44h/0h/0h, muestra direcciones que empiezan por 1, no encuentra nada e indica que la billetera está vacía. Las monedas siguen en la dirección bc1q, siguen confirmadas y siguen siendo visibles para cualquiera que tenga el txid.

La solución lleva un minuto. Restaure de nuevo y elija SegWit nativo, o abra el campo avanzado de derivación e introduzca m/84'/0'/0' a mano. Electrum vuelve a escanear, aparece el saldo y la lista de direcciones empieza por la misma cadena de caracteres que el Trezor muestra en su pestaña de recepción. Si sigue marcando cero y usted sabe que hubo pagos más adelante en la rama, suba el límite de brecha (gap limit) desde el valor predeterminado de 20 antes de dar por hecho que falta algo.

Nada en esa secuencia puso en riesgo las monedas, porque una restauración es una operación de lectura. Puede probar cada propósito por turnos, uno tras otro, y el único costo es el tiempo que tarda cada nuevo escaneo.

Ruta de derivación frente a descriptor de salida

Una ruta dice dónde; un descriptor dice dónde, qué y a partir de qué clave. El descriptor wpkh([fingerprint/84h/0h/0h]xpub/0/*) contiene la misma ruta, más el tipo de script como función envolvente, más la propia clave extendida, más una suma de comprobación que detecta un carácter mal escrito. Darle a alguien una ruta no le dice nada sobre su billetera. Darle un descriptor le entrega todo su historial de direcciones y cada dirección futura de esa rama, y por eso la ruta se puede enviar por correo electrónico sin riesgo y el descriptor no.

No confundir con

Preguntas frecuentes

¿Cómo encuentro la ruta de derivación de mi billetera?

Búsquela en los detalles de la cuenta o del almacén de claves de la billetera, donde suele aparecer junto a la clave pública extendida. Si no se muestra, el formato de las direcciones se lo indica: las direcciones que empiezan por 1 son BIP-44, las que empiezan por 3 son BIP-49, las que empiezan por bc1q son BIP-84 y las que empiezan por bc1p son BIP-86.

Mi billetera restaurada muestra un saldo de cero. ¿Desapareció mi bitcoin?

Casi con toda seguridad, no. La causa habitual es una restauración en la ruta equivocada, de modo que el software está generando un conjunto distinto de direcciones. Consulte la dirección antigua en un explorador de bloques y después restaure de nuevo eligiendo el tipo de dirección que le corresponda.

¿La ruta de derivación afecta a la seguridad de mis monedas?

No. Todas las rutas llevan a claves de idéntica robustez, y la elección solo afecta al formato de las direcciones, al tamaño de las transacciones y a qué software puede encontrar sus fondos. Las rutas de SegWit nativo y de Taproot producen gastos más baratos, lo cual es una cuestión de comisiones y no de seguridad.

Para seguir leyendo

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés