Investigación. Análisis forense de hardware
Análisis forense de la ruta de derivación de Trezor
Un Trezor restaurado que muestra un saldo incorrecto —o ninguno— normalmente no ha perdido nada. Está generando direcciones erróneas. Las monedas están en la cadena; el camino es el equivocado.
Las carteras de hardware derivan numerosas direcciones a partir de una semilla mediante una ruta de derivación. A lo largo de los años, el firmware de Trezor y los estándares generales han cambiado en cuanto a las rutas que utiliza una cartera, y esas divergencias son una causa frecuente y malinterpretada de las denuncias del tipo «he perdido mis fondos». Esta página documenta el análisis forense de la derivación de Trezor y cómo la recuperación resuelve este problema.
Qué es una ruta de derivación
Una sola semilla puede generar un número prácticamente ilimitado de direcciones, organizadas mediante una ruta de derivación como «m/44’/0’/0’». La ruta codifica qué moneda, qué cuenta y qué índice de dirección. Si restauras una semilla con una ruta incorrecta, obtendrás un monedero diferente, válido pero vacío: la semilla es correcta, el dinero es real, pero el software está buscando en la rama equivocada del árbol. Este simple hecho explica la mayoría de los casos de monederos de hardware «restaurados pero vacíos».
Las normas que divergían
Cada tipo de dirección de Bitcoin tiene su propio estándar de ruta: el estándar heredado BIP44 (m/44’, direcciones que comienzan por 1…), el estándar compatible con SegWit BIP49 (m/49’, 3…), el estándar nativo de SegWit BIP84 (m/84’, bc1q…) y el estándar Taproot BIP86 (m/86’, bc1p…). Dado que el firmware de Trezor ha ido adoptando cada uno de ellos con el tiempo, una cartera recargada según un estándar puede restaurarse con otro software que utilice por defecto un estándar diferente, sin que se muestre nada. Los fondos permanecen en las direcciones de la ruta original.
Historial de firmware e índices de cuentas
Más allá de los tipos de direcciones, el firmware antiguo de Trezor y las primeras herramientas de terceros utilizaban a veces rutas e índices de cuenta no estándar o modificados, y algunas carteras empleaban una ruta de derivación de ETH específica de un periodo concreto que el software posterior dejó de utilizar por defecto. La existencia de varias cuentas añade otra variable: los fondos en los índices de cuenta 1 o 2 son invisibles si solo se analiza la cuenta 0. Reconstruir el historial implica saber qué firmware y herramientas eran plausibles en la fecha de creación de la cartera y qué derivaba cada una de ellas.
Carteras con frase de acceso (oculta)
La frase de acceso, o «25.ª palabra», añade una capa adicional de seguridad: cada frase de acceso genera una cartera oculta totalmente independiente a partir de la misma semilla. Si se olvida o se escribe mal la frase de contraseña, o si se conecta el Trezor a una interfaz diferente, aparece un monedero derivado distinto que parece vacío, mientras que los fondos permanecen a salvo en el monedero oculto protegido por la frase de contraseña correcta. Esto es distinto a la pérdida de un PIN, y se trata de un problema de búsqueda más que de un callejón sin salida.
Cómo lo recupera un barrido de ruta
La recuperación es un proceso sistemático: a partir de la semilla correcta, se derivan, siguiendo todas las rutas plausibles, las direcciones estándar, las de cuenta y (cuando proceda) la frase de contraseña, y se compara cada conjunto de direcciones derivadas con la dirección conocida en la que se encuentran los fondos o con la cadena. Cuando una dirección derivada coincide, se confirma la ruta correcta y los fondos pasan a estar disponibles para su uso. La semilla era la correcta desde el principio; la tarea consiste en encontrar la rama en la que se encuentran realmente las monedas.
Por qué esto se confunde tan a menudo con una pérdida de fondos
La razón por la que las discrepancias en la ruta causan tanto pánico es que todo parece catastrófico: introduces tu semilla correcta, el monedero se abre y el saldo marca cero. Es natural concluir que te han robado las monedas o que la semilla es incorrecta. Pero un saldo cero con una semilla válida casi siempre significa que el software ha derivado una rama diferente del árbol de direcciones a aquella en la que se encuentran tus fondos: un tipo de dirección diferente, un índice de cuenta diferente o (con una frase de contraseña) un monedero oculto completamente distinto. La cadena de bloques sigue mostrando tus monedas en sus direcciones reales; lo único que ocurre es que tu visión actual de ellas es errónea. Entender esto evita el peor error, que es dar por hecho que la pérdida es real y rendirse.
Cómo registrar tu ruta y tu contraseña
La forma de evitar tener que enfrentarse a esta situación es anotar más datos además de la semilla. Anota qué tipo de dirección utiliza tu monedero (legado, SegWit, SegWit nativo, Taproot), en qué índice de cuenta se encuentran tus fondos y —lo más importante— tu frase de contraseña exacta si utilizas un monedero oculto, ya que la frase de contraseña nunca se almacena en ningún sitio y no se puede recuperar desde el dispositivo. La semilla por sí sola permite restaurar un monedero; los detalles de la ruta y la frase de contraseña garantizan que se restaure tu monedero a la primera, en cualquier software.
Cómo se lleva a cabo el barrido en la práctica
El proceso es mecánico una vez que se conoce la semilla. A partir de la semilla, generamos las claves extendidas de la cuenta para cada estándar de ruta, derivamos el primer tramo de direcciones de recepción y de cambio correspondientes a cada una de ellas, y las cotejamos con la cadena —ya sea con una dirección específica que el propietario recuerde, o buscando cualquier dirección del conjunto derivado que haya tenido saldo en algún momento—. Añadir candidatas a la frase de acceso multiplica el espacio, pero la lógica es idéntica: derivar, comprobar, confirmar. Dado que la confirmación se realiza con el historial real de la cadena, no hay ambigüedad cuando se da con la combinación correcta: aparecen las direcciones con fondos y se establecen conjuntamente la ruta, la cuenta y la frase de acceso correctas.
Nuestra documentación
KeychainX mantiene una base de datos exhaustiva que abarca las rutas históricas del firmware de Trezor, los estándares de tipos de direcciones, los índices de cuentas y las combinaciones de frases de contraseña, elaborada a partir de años de casos en los que una cartera «restaurada pero vacía» resultaba ser, en realidad, un error de ruta. Publicamos esta información para que los propietarios no abandonen una cartera que, de hecho, está totalmente intacta. Para casos relacionados con el hardware, consulta nuestra página de recuperación de Trezor.
Preguntas frecuentes
He restaurado mi Trezor y muestra un saldo de cero. ¿Se han perdido mis monedas?
Normalmente no. Una ruta de derivación o un índice de cuenta incorrectos dan como resultado una cartera diferente y vacía a partir de la misma semilla correcta. Los fondos están en la cadena; un barrido de rutas los localiza.
¿A qué se debe el problema del «camino equivocado»?
Estándares de tipo de dirección (BIP44/49/84/86) y diferencias históricas en el firmware. Un monedero recargado mediante una ruta y restaurado por el software, que por defecto utiliza otra, no muestra nada.
Mi monedero oculto Trezor ha desaparecido, ¿por qué?
La frase de contraseña (la palabra número 25) da acceso a un monedero oculto independiente. Si la frase de contraseña es incorrecta o se olvida, o si se utiliza una interfaz diferente, aparecerá un monedero derivado distinto; los fondos permanecen en el monedero asociado a la frase de contraseña correcta.
¿Es lo mismo que haber perdido el PIN?
No. Un PIN bloquea el dispositivo; los problemas relacionados con la derivación y la frase de acceso se refieren a las direcciones de las que se deriva una semilla correcta. Son problemas distintos con soluciones diferentes.
¿Cuánto cuesta la recuperación?
Basado en los resultados: un porcentaje del valor recuperado solo si conseguimos recuperar el acceso, y sin pago por adelantado.
¿Tu Trezor restaurado muestra un saldo incorrecto o nulo?
Lo más probable es que se trate de un error en la ruta de derivación o de una discrepancia en la frase de acceso, no de una pérdida de fondos. Cuéntanos cuál es tu situación: te daremos una valoración sincera en un plazo de 24 horas.