Recuperar una cartera de Bitcoin no es solo ejecutar un programa y esperar. Cuando se trata de Blockstream Green, la semilla BIP39 es la llave maestra de tus fondos. Por eso, compilar y ejecutar la herramienta de recuperación en una máquina conectada a Internet es una mala idea: cualquier malware, telemetría o dependencia comprometida podría filtrar tus claves. La compilación offline, también llamada compilación air-gapped, reduce ese riesgo, pero introduce sus propias trampas. Esta guía explica cómo preparar el entorno, compilar el código sin conexión y evitar los errores más frecuentes.
Blockstream Green es una cartera de Bitcoin que ofrece modos de firma single-sig y multisig con 2FA. Su herramienta oficial de recuperación, disponible en el repositorio Blockstream/green-recovery, permite reconstruir direcciones y firmar transacciones a partir de una semilla compatible. Al compilarla tú mismo, evitas depender de binarios precompilados y puedes auditar el código en el commit que elijas. Sin embargo, la herramienta no sustituye a una buena higiene operativa: si expones la semilla en un entorno inseguro, la compilación offline no te salvará.
Usa un equipo dedicado, un live USB de Linux o una máquina virtual sin red. Lo ideal es un sistema recién instalado y sin servicios innecesarios. Desconecta Wi-Fi, Ethernet, Bluetooth y cualquier módem. Si usas una VM, desactiva la red y comparte archivos solo mediante carpetas montadas de forma manual y controlada.
En una máquina conectada, clona el repositorio oficial:
git clone https://github.com/Blockstream/green-recovery.git
cd green-recovery
git checkout <tag_o_commit_verificado>
No uses la rama main sin fijar un commit. Revisa el README y el archivo Cargo.lock. Después, descarga el toolchain de Rust que necesites y vendoriza las dependencias de Cargo:
cargo vendor > vendor_config.toml

Esto crea una carpeta vendor con todos los crates. Copia el repositorio, la carpeta vendor, el toolchain y los paquetes del sistema que falten en un USB o disco cifrado.
Antes de transferir, comprueba los hashes SHA256 y las firmas GPG de las release oficiales. Si el proyecto no publica binarios, verifica al menos el commit firmado y el contenido de Cargo.lock. No confíes en enlaces de foros, acortadores ni repositorios espejo no oficiales.
En la máquina air-gapped, instala Rust sin conexión. Puedes copiar los directorios ~/.rustup y ~/.cargo desde la máquina preparada o usar un instalador offline. Define las variables para que rustup no intente actualizar:
export RUSTUP_HOME=/ruta/offline/rustup
export CARGO_HOME=/ruta/offline/cargo
export PATH=$CARGO_HOME/bin:$PATH
Evita ejecutar rustup update o cualquier comando que requiera red. Comprueba la versión con rustc --version y cargo --version.
Dentro del repositorio, crea o edita .cargo/config.toml para que Cargo use los crates vendorizados:
[source.crates-io]
replace-with = 'vendored-sources'
[source.vendored-sources]
directory = 'vendor'
Si el proyecto tiene dependencias Git, deberás vendorizarlas también o reemplazarlas por rutas locales. Este es uno de los puntos que más falla: cargo build --offline no puede descargar nada, así que todo debe estar presente.
--locked y --offline
Usa siempre las banderas que evitan cambios inesperados:
cargo build --release --locked --offline
--locked respeta el Cargo.lock; --offline prohíbe accesos a la red. Si aparece un error de dependencia faltante, revisa que la carpeta vendor esté completa y que la configuración de fuentes sea correcta. No desactives --offline para «probar si funciona»: eso rompe el modelo de seguridad.
Al terminar, el ejecutable estará en target/release/. Calcula su hash SHA256 y compáralo con el que obtengas en una compilación reproducible si el proyecto lo permite. Ejecuta --help y --version sin conectar la máquina a la red. Revisa que los permisos sean correctos y que no haya bibliotecas dinámicas inesperadas con ldd.
Una vez compilada, la herramienta puede pedir la semilla, una passphrase BIP39 o un descriptor. Introduce estos datos solo en la máquina air-gapped. Si necesitas transmitir una transacción firmada, hazlo por QR o por un archivo PSBT, nunca copiando la semilla. Verifica las direcciones de recepción y de cambio en un dispositivo hardware compatible o en una pantalla de confianza. Para carteras Green con 2FA o multisig, revisa la documentación específica del commit que compilaste: algunos flujos pueden requerir coordinación con servidores de Blockstream, y hacerlo mal puede bloquear fondos.
Aunque compiles con --offline, si el sistema tiene red, el binario podría ser manipulado o espiado. Usa una máquina air-gapped real para introducir la semilla.
Cargo.lockSin --locked, Cargo puede resolver versiones distintas. Fija un tag o commit verificado y conserva el Cargo.lock original.
cargo vendor no siempre cubre dependencias Git. Revisa Cargo.toml y Cargo.lock; si hay fuentes Git, sustitúyelas por rutas locales o inclúyelas manualmente.
Un binario o un tarball sin verificar puede contener código malicioso. Verifica firmas GPG y hashes SHA256 antes de transferir.
Blockstream Green distingue redes. Si pruebas con una semilla de testnet, no esperes recuperar fondos de mainnet. Revisa la bandera de red antes de firmar.

Si tu cartera usa una passphrase, la semilla por sí sola no recupera los mismos fondos. Introdúcela exactamente, respetando mayúsculas y espacios.
Borra ~/.bash_history, ~/.zsh_history, archivos de swap, portapapeles y capturas de pantalla. Mejor aún, usa un sistema amnésico que no persista datos.
Ejecutar la herramienta con privilegios de root amplía el daño potencial. Usa un usuario sin privilegios y limita los permisos de la carpeta de trabajo.
Antes de usar la semilla real, prueba todo el flujo con una semilla de prueba y una cantidad pequeña. Así detects errores de sintaxis, derivación o red sin arriesgar fondos.
Verifica varias direcciones y la ruta de derivación. Un error en el cambio de dirección puede hacer que una transacción firmada envíe fondos a una dirección no deseada.
Cargo.lock intacto.--release --locked --offline.Compilar offline la herramienta de recuperación de Blockstream Green es una práctica excelente para quienes quieren máxima soberanía sobre sus bitcoins. Pero la seguridad no viene solo de desconectar el cable de red: viene de verificar, fijar versiones, vendorizar dependencias, probar con señuelos y limpiar todo rastro. Si sigues esta guía y evitas los errores descritos, reducirás drásticamente el riesgo de perder fondos o filtrar tu semilla. La comodidad de un binario precompilado nunca debería superar el valor de tus claves.
Etiquetas de este artículo: BIP39 recuperación de cartera compilación offline air-gapped Rust Cargo vendor multisig 2FA Blockstream Green herramienta de recuperación seguridad Bitcoin