Recuperación de la cartera Electrum

Guía completa para la recuperación del monedero Electrum

electrum monedero bitcoin en el portátil durante el proceso de recuperación

Electrum lleva en funcionamiento desde noviembre de 2011, lo que lo convierte en un veterano según los estándares del mundo de las criptomonedas. Esa longevidad es a la vez una bendición y una maldición a la hora de recuperar datos. Una bendición porque el formato del monedero está bien documentado y el código fuente es Python de código abierto que realmente se puede leer. Una maldición porque quince años de cambios de versión significan que el archivo del monedero que se encuentra en el disco duro de alguien podría estar en cualquiera de media docena de formatos, cada uno con diferentes esquemas de cifrado, rutas de derivación y tipos de semillas. He recuperado monederos de Electrum que se remontan a 2012, y cada época tiene sus propios quebraderos de cabeza.

Esta guía abarca todos los aspectos técnicos relacionados con la recuperación de carteras Electrum: desde la estructura interna de los archivos de la cartera, pasando por los mecanismos de cifrado en las distintas versiones, hasta la pesadilla que supone la ruta de derivación, que hace que «mi saldo marca cero» sea la consulta más habitual en el servicio de asistencia de Bitcoin.

Cómo almacena Electrum tus claves

Electrum guarda tu monedero en un único archivo independiente. Por defecto, se llama default_wallet (sin extensión), y se encuentra en una ubicación predecible según tu sistema operativo:

Ventanas: C:\Users\<USER>\AppData\Roaming\Electrum\wallets\

macOS: ~/Library/Application Support/Electrum/wallets/

Linux: ~/.electrum/wallets/

El archivo del monedero está en formato JSON: es legible para los humanos, está estructurado y es sorprendentemente claro. Si abres un monedero sin cifrar en un editor de texto, verás todo el modelo de datos: almacenes de claves, direcciones, historial de transacciones, etiquetas, contactos... todo. El keystore El objetivo es la clave de la recuperación.

En seed campo de ahí: si el monedero no está cifrado o puedes descifrarlo, ya tienes todo lo que necesitas. El xprv (clave privada ampliada) puede derivar todas las claves secundarias que el monedero haya utilizado jamás. La seed_type te indica qué esquema de derivación se ha utilizado, y derivation muestra la ruta raíz.

En el caso de los monederos más antiguos (anteriores a la versión 2.0), la estructura es diferente. En lugar de bip32, verás type: "old" con mpk (clave pública maestra). Estos campos utilizan el método de derivación de claves propio de Electrum, anterior tanto al BIP32 como al BIP39. Más información al respecto a continuación.

Los archivos de monedero que contienen claves privadas importadas (no derivadas de una semilla) utilizan type: "imported" en el almacén de claves, y esas claves se almacenan directamente. Estas carteras no se puede recuperar a partir de una frase de semillas – El archivo de la cartera es tu única copia de seguridad. Si lo pierdes, esas claves se perderán para siempre.

Las dos capas de cifrado de Electrum

Electrum cuenta con dos capas de cifrado independientes, y confundirlas es uno de los errores de recuperación más comunes con los que me encuentro.

Nivel 1: Cifrado del almacén de claves (claves privadas y semilla)

Tus claves privadas y tu frase de semillas se cifran mediante AES-256-CBC. La clave de cifrado se genera procesando tu contraseña mediante dos rondas de SHA-256 – eso es todo. No es PBKDF2 con cientos de miles de iteraciones, como MetaMask u otros. No es scrypt. Solo SHA256(SHA256(password)). Por eso, las carteras Electrum son mucho más rápidas de atacar mediante fuerza bruta que prácticamente cualquier otra cartera moderna. Una prueba de rendimiento con Hashcat, incluso en un hardware de GPU modesto, puede probar cientos de miles de contraseñas posibles por segundo contra una cartera Electrum.

Esta capa protege la semilla y las claves privadas dentro del archivo del monedero. Cuando introduces tu contraseña para firmar una transacción, Electrum descifra brevemente las claves privadas en la memoria, las firma y, a continuación, elimina las claves descifradas. El archivo del monedero almacenado en el disco mantiene las claves siempre cifradas.

Nivel 2: Cifrado de archivos completos (ECIES)

Desde la versión 2.8 (lanzada alrededor de 2016), Electrum habilita el cifrado de todo el archivo de forma predeterminada. Para ello utiliza el Esquema de Cifrado Integrado de Curvas Elípticas (ECIES), un método de cifrado asimétrico en el que el propio archivo del monedero se cifra mediante una clave pública derivada de tu contraseña. El archivo cifrado tiene el aspecto de un texto binario sin sentido, en lugar de un formato JSON, y necesitas la contraseña solo para abrirlo.

La diferencia fundamental: cuando el cifrado de todo el archivo está activo, el monedero no revela ninguna información sin la contraseña correcta. No es posible echar un vistazo al interior para ver direcciones, transacciones o incluso el tipo de monedero. Toda la carga útil JSON está envuelta en ECIES. Cuando el cifrado de todo el archivo está desactivado (o no estaba disponible en versiones anteriores), el JSON es legible, pero el xprv y seed Los campos contienen texto cifrado con AES.

Esta distinción es importante para la recuperación porque modifica tu superficie de ataque. Con solo el cifrado del almacén de claves, aún puedes identificar el tipo de monedero, ver las direcciones y confirmar que tienes el archivo correcto antes de intentar un ataque de fuerza bruta. Con el cifrado de todo el archivo, vas a ciegas hasta que descifras la contraseña.

El sistema de semillas de Electrum —no es BIP39, y eso es muy importante—

Aquí es donde empiezan la mayoría de los problemas con la recuperación. Electrum utiliza su propio formato de semilla, que no es compatible con BIP39. Si alguien intenta importar una semilla de Electrum en un monedero que solo admite BIP39 (como Exodus, Trust Wallet o la mayoría de los monederos físicos), esta será rechazada directamente o generará direcciones totalmente erróneas.

La diferencia es técnica, pero importante. BIP39 toma tus palabras mnemotécnicas, las mapea de vuelta a la entropía utilizando una lista de palabras fija, añade una suma de comprobación y, a continuación, ejecuta PBKDF2 con la frase de contraseña «mnemonic» + una palabra de extensión opcional durante 2048 iteraciones utilizando HMAC-SHA512. Electrum 2.0+ hace algo aparentemente similar, pero con una diferencia fundamental: ejecuta PBKDF2 durante 2048 iteraciones utilizando la frase de contraseña «electrum» + una palabra de extensión opcional. El mismo número de iteraciones, el mismo HMAC-SHA512, pero una cadena de sal completamente diferente. La clave maestra resultante es totalmente diferente, incluso con las mismas 12 palabras.

También había un error en versiones anteriores de Electrum (alrededor del problema n.º 4566) relacionado con la normalización Unicode de la frase de contraseña; concretamente, Electrum eliminaba de forma agresiva los espacios en blanco de las frases de contraseña BIP39, lo que incluía eliminar un espacio cuando había dos espacios consecutivos. Si alguien configuraba una frase de contraseña con una espaciación inusual, este error podía hacer que su monedero resultara irrecuperable en las versiones más recientes, en las que se había corregido la normalización.

Las semillas de Electrum también incluyen un número de versión en la propia semilla. La versión se obtiene aplicando un algoritmo hash a la frase de semilla y comprobando si los primeros bits coinciden con un prefijo conocido. Esta versión indica qué esquema de derivación se debe utilizar:

  • Versión inicial 01 — Monedero estándar (antiguo, anterior a SegWit)
  • Versión inicial 100 — Cartera SegWit (SegWit nativo, Bech32)
  • Versión inicial 101 — Cartera con autenticación de dos factores (con TrustedCoin como avalista)
  • Versión inicial 102 — Multifirma SegWit

En realidad, se trata de un diseño ingenioso: elimina la incertidumbre sobre «¿qué ruta de derivación debo usar?», que es el talón de Aquiles del BIP39. Sin embargo, esto implica que las semillas de Electrum son un ecosistema cerrado. Solo funcionan en Electrum (o en software que admita explícitamente el formato de semillas de Electrum, como la herramienta BIP39 de Ian Coleman, que cuenta con un modo Electrum).

Las tres épocas de las semillas

Archivos de semillas anteriores a la versión 2.0 (Electrum 1.x, formato «antiguo»): Estas utilizaban una codificación bidireccional: la frase de semillas podía reconvertirse en un valor de entropía específico y viceversa. Para ello se requería una lista de palabras exacta y fija. La derivación se basaba en el esquema propio de Electrum (no en el BIP32), utilizando rutas como m/0/k para recibir direcciones y m/1/k para direcciones de cambio. Estas carteras se reconocen por "seed_type": "old" en el archivo de la cartera. Ahora son poco comunes, pero sigo viéndolos en personas que crearon carteras de Bitcoin en 2012-2013 y se olvidaron de ellas.

Seeds de Electrum 2.x (2014 y posteriores): Se ha incorporado la estructura de monedero HD BIP32 con el sistema de versiones de semillas de Electrum. Los monederos estándar utilizan una ruta de derivación m/0h con direcciones de destino en m/0h/0/k y hacer un cambio en m/0h/1/k. Ten en cuenta que esta NO es la ruta BIP44 (m/44'/0'/0'). Esta derivación atípica es una fuente constante de confusión.

Semillas de SegWit para Electrum 3.x+: Cuando se incorporó la compatibilidad con SegWit, Electrum añadió nuevas versiones de semillas para carteras SegWit nativas. Estas utilizan una ruta de derivación m/0h además: la ruta raíz es la misma, pero el prefijo de la versión de la semilla garantiza que el monedero genere direcciones Bech32 (bc1…) en lugar de direcciones heredadas (1…).

Las rutas de derivación y el problema de la «billetera vacía»

Las rutas de derivación son la causa más habitual por la que, al restaurar una semilla, el saldo aparece como cero. Cada componente de la ruta es importante, y un solo número erróneo da lugar a claves y direcciones completamente diferentes.

Este es el panorama de las rutas de derivación de Electrum:

Semillas nativas de Electrum (no BIP39):

  • Cartera estándar clásica: m/0h → recepción en m/0h/0/k, transbordo en m/0h/1/k
  • Cartera estándar SegWit: m/0h → recepción en m/0h/0/k, transbordo en m/0h/1/k (la misma ruta, diferente codificación de la dirección)
  • Electrum antiguo (versión anterior a la 2.0): m/k para recibir, m/k con una secuencia de teclas distinta para el cambio

Semillas BIP39 importadas a Electrum:

  • Legado (P2PKH, direcciones que comienzan por 1): m/44'/0'/0'
  • SegWit envuelto (P2SH-P2WPKH, direcciones que comienzan por 3): m/49'/0'/0'
  • SegWit nativo (P2WPKH, direcciones que comienzan por bc1): m/84'/0'/0'
  • Taproot (P2TR, direcciones que comienzan por bc1p): m/86'/0'/0'

El problema: si alguien creara un monedero en Trezor Suite (que utiliza BIP39 y m/84'/0'/0' (para SegWit nativo), y luego intenta restaurarla en Electrum utilizando una semilla de tipo Electrum, las rutas no coincidirán. Aunque seleccionen correctamente «Semilla BIP39» en las opciones de Electrum, aún deben elegir el tipo de script adecuado (legado, SegWit o SegWit nativo) y verificar que la ruta de derivación coincida con la del monedero de origen.

Y aquí es donde la cosa se complica de verdad: Electrum te permite importar semillas BIP39, pero NO las genera. Al crear un nuevo monedero, Electrum siempre genera su propio formato de semilla. La opción de importación BIP39 existe únicamente para garantizar la compatibilidad entre carteras. Pero Electrum acepta sin problemas una semilla BIP39 no válida (una con una palabra de suma de comprobación incorrecta): muestra una pequeña advertencia de «suma de comprobación fallida», pero no impide que sigas adelante. Esto ha llevado a que la gente cree carteras con semillas mal escritas que parecen funcionar hasta que intentan restaurarlas.

Solución práctica para el problema del monedero vacío: si estás restaurando una frase de recuperación y ves un saldo de cero, prueba sistemáticamente diferentes combinaciones. En primer lugar, determina si la frase de recuperación está en formato Electrum o BIP39. Si es en formato Electrum, la derivación es automática. Si es BIP39, debes probar cada tipo de script: primero el segwit nativo (el más común en los monederos recientes), luego el segwit envuelto y, por último, el heredado. Electrum 4.x incluye un botón «Detectar cuentas existentes» durante la restauración BIP39 que consulta al servidor el historial de transacciones a través de rutas de derivación comunes. Úsalo.

Si el monedero tenía varias cuentas (algo habitual en los monederos de hardware que utilizan Trezor Suite), recuerda que Electrum no admite varias cuentas por archivo de monedero. Debes crear un monedero independiente para cada cuenta, incrementando el índice de la cuenta en la ruta de derivación: m/84'/0'/0' para la cuenta 1, m/84'/0'/1' para la cuenta 2, y así sucesivamente.

El límite de diferencia y por qué tus fondos podrían no aparecer

Incluso si se dispone de la semilla y la ruta de derivación correctas, puede parecer que faltan fondos debido al límite de intervalo. Electrum genera direcciones de forma secuencial y deja de buscar cuando encuentra 20 direcciones consecutivas sin usar (el límite de intervalo predeterminado). Si alguien ha utilizado las direcciones del índice 0 al 5 y luego ha saltado al índice 30 (quizás mediante una API u otra cartera), Electrum no detectará las direcciones posteriores al índice 25, ya que alcanza el límite de intervalo y deja de buscar.

La solución es muy sencilla: en la consola de Electrum (Ver → Mostrar consola), ejecuta:

wallet.change_gap_limit(50)

O cualquier otro número que necesites. A continuación, inicia una resincronización. En casos extremos, he establecido límites de diferencia de más de 200 para carteras que se utilizaban de forma programada (plataformas de comercio electrónico, páginas de donaciones).

Historial de versiones y cambios que pueden provocar fallos entre actualizaciones

Las actualizaciones de Electrum han afectado históricamente a la compatibilidad con versiones anteriores. Cuando se abre un archivo de monedero en una versión más reciente, a menudo se actualiza el formato interno, y las versiones anteriores no pueden leer el archivo actualizado. Esto se indica explícitamente en la documentación, pero suele pasarse por alto.

Las transiciones de la versión crítica:

1.x → 2.0 (2014): Cambio completo del formato del monedero. La compatibilidad con monederos HD BIP32 sustituyó al antiguo sistema de derivación propio. El proceso de actualización regenera todas las direcciones. Electrum 1.x no puede leer los archivos de monedero 2.x, y punto. Si alguien necesita abrir un monedero de la versión 1, deberá instalar específicamente Electrum 1.9.8.

2.x → 3.0 (2017): Se ha añadido un nuevo protocolo de servidor y compatibilidad con SegWit. Se ha actualizado el formato de los archivos de monedero. Se ha introducido el tipo de semilla SegWit. El interno seed_version El campo del JSON de la cartera registra esto; si ves seed_version: 13 o 14, es un monedero de la era v3.

3.x → 4.0 (2020): Compatibilidad con Lightning Network, PSBT, importante reestructuración interna. Los canales Lightning se almacenan en el archivo del monedero y, si había canales abiertos la última vez que se utilizó el monedero, recuperar solo la semilla no permitirá recuperar el estado de los canales Lightning. El propio archivo del monedero es fundamental para la recuperación de Lightning.

Serie 4.x (2020–actualidad): Mejoras continuas. La versión 4.1.0 eliminó la opción de crear carteras heredadas a través de la interfaz de usuario normal (estableciendo como predeterminado el SegWit nativo). La versión 4.5+ actualizó aún más la versión de almacenamiento. El código de actualización de la base de datos del monedero gestiona la migración desde formatos muy antiguos, pero no siempre es un proceso fluido: hay casos extremos en la ruta de actualización desde monederos v1.9.8 que pueden provocar mensajes de error que sugieren ponerse en contacto con los desarrolladores.

La lección: antes de actualizar Electrum, copia siempre el archivo de tu monedero en una ubicación diferente. Si la actualización provoca algún problema, podrás volver a la versión anterior utilizando el archivo original. Y nunca, bajo ningún concepto, vuelvas a una versión anterior después de que la actualización haya modificado el archivo del monedero.

El descifrado de contraseñas y por qué Electrum es especialmente vulnerable

La derivación de claves de Electrum: simplemente SHA256(SHA256(password)) – es uno de los más débiles de todo el ecosistema de monederos de criptomonedas. No utiliza sal, ni PBKDF2, ni scrypt, ni argon2. Dos rondas de SHA-256, y esa es tu clave de cifrado para AES-256-CBC.

A modo de contexto: MetaMask utiliza 600 000 iteraciones PBKDF2. Bitcoin Core utiliza unas 100 000 o más. Electrum utiliza… dos operaciones SHA-256. En una GPU moderna, hashcat puede analizar miles de millones de hash SHA-256 por segundo. Incluso teniendo en cuenta la verificación de descifrado AES, el descifrado de contraseñas en Electrum es mucho más rápido que en casi cualquier otra cartera.

Hashcat es compatible con Electrum a través de tres modos que dependen del tipo de sal de la cartera:

  • Modelo 16600 – Cartera Electrum (tipo de sal 1-3): Abarca la gran mayoría de las carteras. El formato del hash es similar a $electrum$1*<hex_salt>*<hex_data>.
  • Modo 21700 – Cartera Electrum (tipo Salt 4): nuevo formato de cifrado de cartera con cifrado completo de archivos mediante ECIES.
  • Modo 21800 – Cartera Electrum (tipo de sal 5): última variante de cifrado.

Para extraer el hash, utiliza electrum2john.py del proyecto John the Ripper.

btcrecover es la otra herramienta de referencia y, posiblemente, la más práctica para la mayoría de los casos de recuperación, ya que permite generar contraseñas a partir de tokens. Solo tienes que especificar los elementos que recuerdes («Sé que empezaba por “Bitcoin” y terminaba con unos números y quizá un signo de exclamación») y la herramienta genera todas las permutaciones posibles. En el caso concreto de Electrum, btcrecover admite tanto la recuperación a partir del archivo cifrado de la cartera como la recuperación directa de la frase semilla, para aquellos casos en los que se disponga de una frase semilla parcial con palabras que faltan o que no se recuerdan con certeza.

Archivos de monedero dañados

La corrupción de los archivos de la cartera en Electrum puede presentarse de diversas formas, y el método de recuperación depende del problema concreto; si tienes algún caso específico, puedes ponerte en contacto con nosotros en david@walletrecoveryservice.com e intentaremos encontrar una solución para ti.

Las carteras con el «error de la versión 1.9.8»: existe un tipo concreto de carteras dañadas de la versión 1.9.8 de Electrum en las que, al introducir una semilla incorrecta durante la restauración, se creaba un archivo de cartera que parecía válido pero que, en realidad, no contenía ninguna clave. El código de la base de datos de carteras de las versiones actuales de Electrum incluye una comprobación específica para esto: busca carteras sin claves maestras y con una semilla de versión 6, y avisa al usuario. Estas carteras no contienen fondos recuperables.

Corrupción del estado de los canales Lightning: si se daña una cartera con canales Lightning abiertos, la restauración a partir de la semilla por sí sola NO recuperará los fondos de Lightning. Los canales Lightning son dependientes del estado: el estado más reciente del canal (transacciones de compromiso, claves de revocación) solo se encuentra en el archivo del monedero. Electrum incluye un mecanismo de copia de seguridad de canales (SCB, por sus siglas en inglés), pero estos solo permiten forzar el cierre de los canales, no reanudarlos. Si tienes un monedero dañado con fondos Lightning, la prioridad es recuperar el archivo del monedero en sí, no solo la semilla.

Estrategia de copia de seguridad: Electrum cuenta con una función de copia de seguridad integrada, accesible desde Archivo → Guardar copia de seguridad (o Guardar copia en versiones anteriores). Esto guarda una copia completa del archivo del monedero. La copia de seguridad sigue estando cifrada con tu contraseña, por lo que necesitarás tanto el archivo de copia de seguridad como la contraseña para restaurarla. Para garantizar la máxima seguridad, exporta la frase de semillas en papel Y guarda copias de seguridad del archivo del monedero (especialmente si utilizas Lightning o claves importadas).

La cartera Electrum para Android

Electrum para Android se basa en el marco Kivy (introducido en la versión 2.6) y utiliza el mismo formato de archivo de monedero que Electrum para ordenador. Los tipos de semilla, el cifrado y las rutas de derivación son idénticos. Un archivo de monedero creado en Android se puede abrir en el ordenador y viceversa.

El reto específico de Android es el acceso a los archivos. En los dispositivos Android sin root, los archivos de la cartera de Electrum se almacenan en el almacenamiento interno privado de la aplicación, en:

/data/data/org.electrum.electrum/files/data/wallets/

No se puede acceder a esta ruta mediante un gestor de archivos normal ni a través de USB, ya que el entorno aislado de Android lo impide. Esto es así por diseño (para evitar que otras aplicaciones roben los archivos del monedero), pero supone un verdadero problema de recuperación si la aplicación se bloquea o se desinstala accidentalmente.

No existe una versión de Electrum para iOS. Y punto. Si alguien afirma estar utilizando Electrum en un iPhone, está usando una aplicación falsa; además, a lo largo de los años han aparecido en la App Store múltiples clones fraudulentos de Electrum que roban fondos.

El problema del archivo de monedero sobrescrito y eliminado

Los archivos del monedero Electrum son archivos normales del sistema de archivos. Esto hace que sea más fácil hacer una copia de seguridad de ellos, pero también que se borren accidentalmente.

Situación 1: Se ha eliminado el archivo de la cartera

Si se ha eliminado el archivo de la cartera (por accidente, al desinstalarla o por culpa de un programa malicioso), ponte en contacto con WalletRecoveryService.com para solicitar una recuperación profesional de datos o envíanos un correo electrónico a david@walletrecoveryservice.com. El archivo de la cartera suele ser pequeño (unos pocos cientos de KB para una cartera estándar, y potencialmente varios MB para carteras con un historial extenso de canales Lightning), lo que significa que a menudo se puede recuperar del disco incluso después de su eliminación, SI no se ha escrito mucho en el disco desde entonces.

En los SSD, se aplica la ventana TRIM: deja de usar la unidad inmediatamente. En los HDD, dispones de más tiempo, pero cada operación de escritura conlleva el riesgo de sobrescribir los sectores del archivo de la cartera.

Escenario 2: Cartera sobrescrita durante la restauración

Esta es una trampa específica de Electrum. Cuando restauras desde una semilla en Electrum y eliges el mismo nombre de archivo de monedero que un archivo ya existente, Electrum sobrescribe el archivo antiguo. La documentación lo menciona, pero es fácil pasarlo por alto en un momento de pánico. Si tienes un archivo de monedero con claves privadas importadas (no derivadas de una semilla) y lo sobrescribes al restaurar una semilla diferente con el mismo nombre de archivo, esas claves importadas se perderán a menos que tuvieras una copia de seguridad independiente.

Utiliza siempre un nombre de archivo diferente al restaurar: restored_wallet, recovery_test, cualquier cosa que no sea el nombre de un archivo de monedero ya existente.

Escenario 3: Archivo de la cartera en una unidad defectuosa

El archivo de la cartera de Electrum es un único archivo independiente. Si consigues recuperar ese archivo de un disco duro averiado —ya sea mediante un servicio profesional de recuperación de datos, la creación de una imagen del disco o la recuperación de datos de un disco dañado— walletrecoveryservice.com puede ayudarte y guiarte en el proceso: ya tienes todo lo necesario. No es necesario recuperar toda la instalación de Electrum, la configuración ni los encabezados de la cadena de bloques. Solo necesitas el archivo de la cartera y tu contraseña (o frase de semillas).

El vector de ataque de phishing: un problema exclusivo de Electrum

Electrum presenta una vulnerabilidad muy conocida que no existe en la mayoría de las demás carteras, y que está directamente relacionada con la recuperación, ya que provoca precisamente las situaciones que requieren una recuperación.

En diciembre de 2018, se descubrió que los servidores de Electrum podían enviar mensajes de error arbitrarios al cliente, que Electrum mostraba como texto renderizado en HTML. Los atacantes crearon servidores maliciosos de Electrum que, cuando un usuario emitía una transacción, devolvían un error falso del tipo «se requiere una actualización» con un enlace a un sitio de phishing que alojaba un binario de Electrum modificado. A los usuarios que descargaban e instalaban la actualización falsa se les robaban sus semillas o las contraseñas de sus monederos.

Este ataque fue especialmente devastador porque el mensaje de phishing aparecía dentro de la propia interfaz de Electrum, lo que le daba un aspecto oficial. Se robaron miles de bitcoins antes de que se corrigiera la vulnerabilidad. La corrección se publicó en Electrum 3.3.3, que dejó de mostrar el código HTML en los mensajes del servidor.

Por qué esto es importante para la recuperación: muchos usuarios que perdieron fondos a causa de este ataque aún conservan los archivos originales de su monedero con las semillas originales; la versión del atacante robó las claves y transfirió los fondos, pero el monedero legítimo sigue existiendo. Si alguien acude a mí diciendo «Tenía bitcoins en Electrum y simplemente desaparecieron en 2018-2019», el ataque de phishing es siempre una de las primeras cosas que compruebo. La recuperación en ese caso no es técnica: los fondos fueron robados, no perdidos. Pero es importante diagnosticar correctamente para que el usuario no pierda tiempo y dinero en descifrar la contraseña de un monedero que fue vaciado por un atacante.

Recuperación de carteras con firma múltiple y autenticación de dos factores

Electrum admite carteras con múltiples firmas y una opción de autenticación de dos factores (2FA) a través de TrustedCoin, y ambas cosas complican el proceso de recuperación.

Carteras multifirma en Electrum se identifican mediante el campo «Tipo de monedero»: "wallet_type": "2of3" o similar. El archivo de la cartera contiene varios almacenes de claves (x1/, x2/, etc.), cada una de las cuales representa a un cofirmante. Para realizar un gasto desde un monedero multisig, se necesita el número mínimo de claves. Si dispones del archivo del monedero con todos los almacenes de claves de los cofirmantes, la recuperación se lleva a cabo con normalidad. Si solo tienes la semilla de un cofirmante y necesitas a los demás cofirmantes, necesitarás la colaboración de los demás titulares de claves.

Las carteras con 2FA utilizan TrustedCoin como servicio de co-firma. Se trata, en esencia, de carteras multisig de 2 de 3, en las que TrustedCoin conserva una clave y el usuario, dos. La recuperación requiere: (a) dos de las tres semillas, o (b) una semilla, además de que el servicio TrustedCoin esté operativo y el usuario haya sido autenticado. Si TrustedCoin deja de funcionar, los usuarios pueden seguir realizando transacciones utilizando sus dos semillas locales, pero necesitan ambas. La clave de recuperación 2FA que Electrum muestra durante la creación de la cartera (y que la mayoría de la gente nunca anota) es la tercera semilla, y es esencial para la recuperación sin TrustedCoin.

Técnicas de recuperación que realmente funcionan en la práctica

Tras años dedicándome a recuperar carteras Electrum, estos son los casos con los que me encuentro con más frecuencia y cómo los abordo.

Situación 1: Tengo la frase de recuperación, solo necesito restaurarla

Abre Electrum, Archivo → Nuevo/Restaurar. Selecciona «Cartera estándar» → «Ya tengo una semilla». Introduce la semilla. Si se trata de una semilla de Electrum, Electrum detectará automáticamente el tipo de semilla y la derivación. Si se trata de una semilla BIP39 (procedente de una cartera de hardware u otra cartera de software), haz clic en Opciones → selecciona «Semilla BIP39» ANTES de introducir las palabras. Selecciona el tipo de script correcto y verifica la ruta de derivación. Establece una nueva contraseña.

Si el saldo es cero: prueba con diferentes tipos de script (segwit nativo, segwit envuelto, legacy). Si utilizas BIP39, haz clic en «Detectar cuentas existentes» para buscar el historial. Aumenta el límite de intervalo si se han utilizado direcciones posteriores a la número 20.

Escenario 2: Tienes el archivo del monedero y la contraseña

Solo tienes que abrir Electrum y seleccionar el archivo del monedero. Si el archivo se encuentra en una memoria USB o en una ubicación distinta a la predeterminada, ve a Archivo → Abrir y busca el archivo. Una vez abierto, puedes ver tu frase de recuperación en Monedero → Frase de recuperación (se requiere contraseña), exportar claves privadas o simplemente realizar transacciones con normalidad.

Escenario 3: Tienes el archivo del monedero, has olvidado la contraseña, pero tienes la frase de recuperación

Ignora por completo la contraseña. Crea un nuevo monedero a partir de la frase de semillas (como en el escenario 1). La frase de semillas genera las mismas claves independientemente de la contraseña que se hubiera establecido en el archivo del monedero anterior. Establece una nueva contraseña en el nuevo monedero.

Situación 4: Tienes el archivo del monedero, has olvidado la contraseña y no tienes la frase de recuperación

Esto es terreno para métodos de fuerza bruta. Ponte en contacto con un experto profesional en recuperación, como walletrecoveryservice.com o extraer el hash con electrum2john.py, y pasarlo a hashcat (modo 16600, 21700 o 21800, dependiendo del tipo de sal) o a btcrecover.

Escenario 5: Cartera antigua de Electrum v1.x

No intentes abrir un monedero v1 directamente en Electrum 4.x: el proceso de actualización puede fallar en algunos casos excepcionales y, si eso ocurre, te conviene tener el archivo original intacto. Ponte en contacto con nosotros por correo electrónico en david@walletrecoveryservice.com; llevamos mucho tiempo gestionando casos como este.

Escenario 6: La frase de recuperación de Electrum no funciona en otra cartera

Si intentas importar una frase de recuperación de Electrum a un monedero que no sea de Electrum (Trezor, Ledger, Exodus, etc.), no funcionará porque esos monederos esperan el formato BIP39. Puedes restaurar los fondos en Electrum y transferirlos al monedero de destino.

Escenario 7: La semilla BIP39 de un monedero físico muestra direcciones incorrectas en Electrum

Probablemente hayas seleccionado un tipo de script o una ruta de derivación incorrectos. Para carteras Trezor: el segwit nativo es m/84'/0'/0', el legado es m/44'/0'/0', SegWit envuelto es m/49'/0'/0'. Si tienes varias cuentas, incrementa el último índice de seguridad. Electrum debe estar configurado en modo BIP39 (Opciones → Semilla BIP39) antes de introducir las palabras.

Situación 8: Cartera de Android, la aplicación no se abre

Si el teléfono está rooteado, ve a /data/data/org.electrum.electrum/files/data/wallets/ y copia el archivo del monedero. Si ninguna de estas opciones funciona y dispones de la frase de semillas, restaura el monedero en el ordenador. Si no tienes la frase de semillas y el teléfono no está rooteado, tu última opción es recurrir a un servicio profesional de extracción de datos para Android que pueda crear una imagen del almacenamiento del dispositivo.

Herramientas que todo especialista en recuperación de Electrum debería tener

  • electrum2john.py – Extracción de hash de la edición Jumbo de John the Ripper. Funciona con todos los formatos de monedero Electrum.
  • hashcat – Modos 16600, 21700, 21800. Descifrado rápido de contraseñas basado en GPU.
  • btcrecover: recuperación de contraseñas y de semillas mediante tokens (para frases de semillas parciales o inciertas).
  • La herramienta BIP39 de Ian Coleman: funciona solo sin conexión. Incluye el modo de semilla de Electrum para derivar claves y direcciones a partir de semillas en formato Electrum.

¿Qué diferencia hay entre los monederos que se pueden recuperar y los que se pierden?

El ecosistema de Electrum es más flexible que la mayoría, ya que el archivo del monedero es un archivo JSON autónomo, portátil y bien documentado que se puede abrir en cualquier editor de texto (si no está cifrado en su totalidad) y procesar con herramientas de código abierto ampliamente compatibles. El cifrado, aunque ofrece una protección adecuada para la mayoría de los usuarios, es considerablemente más débil que los estándares del sector, lo cual es perjudicial para la seguridad, pero excelente para la recuperación.

Las carteras que no puedo recuperar comparten una de estas dos características: el usuario ha perdido tanto la frase de semillas como el archivo de la cartera (por lo que no hay nada con lo que trabajar), o bien el usuario ha perdido la frase de semillas, conserva el archivo de la cartera y ha establecido una contraseña realmente segura (más de 15 caracteres aleatorios), lo que hace que un ataque de fuerza bruta sea computacionalmente inviable, incluso con el débil método de derivación de claves de Electrum.

Todo lo demás —rutas de derivación erróneas, incompatibilidades de formato, archivos dañados, versiones antiguas, extracción de Android— se puede resolver con las herramientas personalizadas adecuadas y los conocimientos necesarios.

Lo más importante que puedes hacer ahora mismo es lo siguiente: ve a «Wallet» → «Seed» en tu instalación de Electrum, anota esas 12 palabras en un papel y guarda ese papel en un lugar seguro. Tu archivo de monedero puede dañarse, borrarse, cifrarse o perderse. Pero esas doce palabras en un papel, guardadas de forma segura, siempre te permitirán recuperar tus bitcoins.

 

¿Tienes alguna pregunta? Envíanosla por correo electrónico a david@walletrecoveryservice.com