El principio central y el objetivo de diseño de Bitcoin era ser”una versión puramente de igual a igual de dinero electrónico”. Si bien esta declaración del documento técnico se considera tradicionalmente como relacionada únicamente con el procesamiento de pagos independientes de una institución financiera, hay otros aspectos de Bitcoin que son increíblemente importantes de mantener para mantenerlo como un sistema peer-to-peer que empodera sus usuarios para mantener el control sobre sus propias finanzas. La autovalidación es una de las cosas más importantes que debe hacer un Bitcoiner para mantener su propia soberanía sobre su dinero. La privacidad es otra cosa que también es increíblemente importante en relación con la soberanía propia. Obviamente, además de estos dos aspectos, administrar sus propias claves es clave (¿entienden?) para tener un control total sobre su propio bitcoin.
Spectre es una familia de proyectos de código abierto que ha estado trabajando para hacer que todos de estas importantes cualidades accesibles y fáciles de usar para Bitcoiners desde 2018. Moritz Wietersheim de Spectre tuvo la amabilidad de dar algo de tiempo para responder preguntas sobre el estado pasado, presente y planes futuros del equipo de Spectre en la expansión de sus dispositivos de software y hardware para continuar simplificando el proceso de uso de Bitcoin de la manera más soberana posible.
El proyecto comenzó en 2018 en Lisboa durante una cena de bistec después de la conferencia Building on Bitcoin. Wietersheim conoció a Stepan Snigirev durante la conferencia, donde Snigirev había ganado el evento de hackathon con un prototipo de una billetera de hardware con soporte Lightning Network integrado. Durante el transcurso de la cena, Wietersheim y Snigirev decidieron comenzar a trabajar juntos en lo que se convertiría en la billetera de hardware Spectre DIY (Do-It-Yourself). Esto se convirtió en la pieza central de todo un ecosistema de diferentes herramientas para interactuar con Bitcoin.
Spectre DIY
La billetera Spectre DIY se diseñó en un momento en que el espacio de la billetera de hardware era mucho menos maduro. En el sitio web de Saleem Rashid y en el Presentación de Wallet.Fail en el Chaos Communication Congress. En ese momento, era casi mensual que se encontraran vulnerabilidades bastante desagradables en diferentes dispositivos de hardware. Aunque el espacio ha madurado bastante desde ese período de tiempo, creo que es importante tener en cuenta el entorno en ese momento para dar contexto al pensamiento detrás de Spectre DIY.
El Spectre DIY se basa en el microcontrolador STM32, el mismo (microcontrolador unidad) utilizada por carteras de hardware como Coldcard, Trezor, Bitbox, etc. Está montada en una placa de desarrollador Discovery que tiene una ranura para tarjeta SD y USB para comunicarse con carteras de software. También tiene soporte opcional para un escáner de códigos QR. La noción original de un dispositivo de firma”sin estado”, uno que no almacena persistentemente la semilla mnemotécnica o las claves privadas en el dispositivo, fue iniciada por Spectre DIY. Esta decisión de diseño se tomó debido a la falta de seguridad física del STM32 al almacenar datos confidenciales (el STM32 se ha visto comprometido físicamente para extraer secretos muchas veces en el pasado).
Al no almacenar persistentemente sus claves privadas en el dispositivo, limita la superficie de ataque que cualquier actor malintencionado puede explotar si puede obtener acceso físico al dispositivo. Sin la semilla, lo máximo que un atacante puede hacer es acceder a su dispositivo, comprometerlo para que persista o transmitir sus claves en lugar de borrarlas y luego reemplazarlo y esperar que no se dé cuenta de que ha sido manipulado antes de la próxima vez que lo cargue. sus claves en el dispositivo. Esto de ninguna manera es perfecto, pero en el mundo de la seguridad nada lo es, y esto es una gran mejora en comparación con el simple almacenamiento persistente de sus claves en el STM32, donde cualquier persona que tenga tiempo para comprometer el chip puede acceder a ellas. Puede desactivar este modo y almacenar los datos de la clave privada en el , pero a menos que pueda asegurar físicamente su dispositivo con un alto grado de certeza, esto debería ser algo que considere cuidadosamente antes de hacerlo. Además, sin un elemento seguro, sería recomendable usar una frase de contraseña con tal configuración.
El lado del software del proyecto se crea utilizando la biblioteca embit. Es una biblioteca de MicroPython/Python 3 para interactuar con datos de Bitcoin que se creó específicamente para usar con Spectre DIY (también la usan SeedSigner y krux, los cuales son proyectos de dispositivos de firma sin estado; una extensión LNBits de solo visualización; Spectre cartera de software de escritorio). La biblioteca admite BIP39/BIP32 (generación de semillas mnemotécnicas y rutas de derivación para claves), compatibilidad con PSBT para las versiones uno y dos, compatibilidad con indicadores SIGHASH personalizados (firmar diferentes partes de la transacción en lugar de todo) y descriptores de salida y miniscript (cadenas de datos para almacenar lo que se necesita para que las billeteras encuentren los UTXO que controla y un lenguaje de alto nivel para facilitar la creación de scripts de Bitcoin). También tiene soporte experimental para Shamir Secret Sharing, Liquid Network y Taproot (todavía en progreso). Para funciones criptográficas utiliza la biblioteca libsecp256k1 mantenida por Bitcoin Core. La biblioteca está muy bien redondeada con las funciones necesarias para satisfacer las necesidades básicas de las billeteras de hoy, así como las funciones que sientan las bases para futuras mejoras en la funcionalidad existente y la incorporación de funciones ampliadas que aún no se han implementado ampliamente en la mayoría de las billeteras. En general, es una base muy sólida para construir y todo se armó inicialmente para Spectre DIY.
Además del Spectre DIY básico, existe una versión extendida llamada Spectre Shield es un aumento importante en la seguridad física. Esta es una placa de extensión personalizada para la placa principal STM32 Discovery en la que se basa el modelo base. Los archivos necesarios para que un fabricante de placas de circuito impreso produzca uno están disponibles en su repositorio de Github (enlace anterior). La placa Shield tiene un escáner de códigos QR, una batería y una ranura para lector de tarjetas inteligentes. Esta última característica es realmente lo que hace que esta placa de extensión sea importante. Con la placa de extensión y una tarjeta inteligente equipada con un elemento seguro, la billetera puede funcionar con el mismo modelo de seguridad que una Coldcard. El material clave puede almacenarse en el elemento seguro de una tarjeta inteligente y cargarse en el dispositivo durante el uso, pero solo puede almacenarse de forma persistente en la tarjeta inteligente. La comunicación entre el y el elemento seguro de la tarjeta está encriptada, por lo que el microcontrolador que maneja la interfaz de la tarjeta inteligente no puede acceder a la información que se transmite entre ellos.
El flujo de la billetera (con o sin la extensión Shield) cuando las claves persisten es el mismo que la mayoría de las otras billeteras de hardware. Genera un secreto único que se almacena en la memoria flash y, en combinación con un pin proporcionado por el usuario, cifra las claves privadas reales (nuevamente, independientemente de si se almacenan en el elemento seguro de la tarjeta inteligente o en el STM32) para que un atacante tenga que acceda tanto a su pin como al secreto en el para descifrar sus claves de bitcoin. Esto pone a los dos modelos dominantes de dispositivos de hardware de bitcoin (firmantes sin estado y dispositivos de almacenamiento de claves) en manos de personas de forma casera. Si prefiere no confiar en un elemento seguro y depender únicamente de un código abierto, el Spectre DIY se puede construir de esa manera. Si prefiere la seguridad adicional de un elemento seguro además de un abierto, eso se puede lograr con el uso de la placa de extensión Shield. Para colmo, también acepta la entropía de entrada del usuario de lanzamientos de monedas para no depender del generador de números aleatorios del hardware. Las interrupciones de las cadenas de suministro a nivel internacional han hecho que sea un poco difícil obtener el hardware necesario, pero si puede, el proyecto vale la pena.
Wietersheim y Snigirev realmente lograron una gran hazaña al armar el Spectre DIY. De ninguna manera es la primera billetera de hardware de bricolaje que existe, pero es la primera que admite modularmente, en términos simples, cualquier cosa entre el modelo de seguridad de algo como Trezor a algo como Coldcard según lo que quiera el usuario que lo construye. Solo había un problema pendiente: el software de billetera para usarlo.
Spectre Desktop
Al buscar aplicaciones complementarias para la billetera de hardware, todo parecía no estar a la altura de lo que buscaban Weitersheim y Snigirev. Les gustó la funcionalidad de Bitcoin Core, pero a pesar de la estabilidad aportada por los desarrolladores, Bitcoin Core tiene una interfaz de usuario muy minimalista y, en cierto modo, poco intuitiva. Sin embargo, tiene una buena interfaz para PSBT (Transacciones de Bitcoin parcialmente firmadas) y la interfaz HWI (Hardware Wallet Integration), por lo que Stepan compuso la primera versión de Spectre como una mejora mínima de la interfaz de usuario para interactuar con Bitcoin Core.
Piense en Spectre Desktop como un”envoltorio”para Bitcoin Core. Incluye una buena GUI con soporte multisig; integración de billetera de hardware Comunicación PSBT a través de códigos QR, tarjeta SD o USB; verificación de direcciones de recepción mediante código QR y USB; Soporte RBF (reemplazar por tarifa); un sistema de etiquetado para realizar un seguimiento de sus UTXO y de dónde provienen; y control de monedas para seleccionar UTXO específicos al gastar (así como la capacidad de congelar UTXO específicos para protegerse de errores al gastar). Incluso han integrado una solución fácil de usar con un solo clic para instalar Bitcoin Core directamente desde Spectre Desktop (aunque instalar Bitcoin Core y conectar Spectre de forma independiente es algo incluso Peter McCormack pudo lograrlo por su cuenta).
Además de la flexibilidad de las funciones, el hecho de que Spectre requiera activar su propio nodo completo como backend es un importante beneficio de privacidad en comparación con muchas billeteras disponibles para los usuarios. La mayoría de las billeteras en este ecosistema utilizan un backend de terceros para rastrear sus UTXO, lo que significa que el operador de ese backend puede correlacionar todos sus UTXO con una sola identidad. Además, si no se comunica con el backend a través de Tor o mediante un servicio VPN, el operador puede correlacionar todas esas monedas con su dirección IP. Esta es una horrible fuga de privacidad que se soluciona con la insistencia de Spectre en una instancia local de Bitcoin Core para rastrear su saldo de Bitcoin.
Spectre también es compatible con Liquid Network, una cadena lateral de Bitcoin federada, que también admite la instalación con un solo clic para un nodo completo de Liquid Elements dentro de la GUI de Spectre. Admite billeteras Liquid usando Blockstream Jade, Spectre DIY, así como billeteras calientes directamente en Spectre. Liquid ofrece algunos beneficios interesantes con algunas compensaciones en comparación con la propia red principal de Bitcoin. La cadena lateral es un sistema federado, lo que significa que utilizar la cadena requiere depositar su BTC en una billetera multisig controlada por la federación que opera la cadena lateral y luego recibir L-BTC, un token emitido en la cadena lateral respaldado por BTC custodiado por la federación. A cambio de confiar en la federación, los usuarios tienen la capacidad de aprovechar las Transacciones confidenciales, un esquema básico de prueba de conocimiento cero que oculta las cantidades (y el tipo de activo, en el caso de la implementación de Liquid) que se negocian en la cadena de bloques. Utiliza una”prueba de rango”que prueba criptográficamente que el dinero no se está imprimiendo de la nada sin revelar los montos de las transacciones.
Liquid también admite la emisión de otros activos. Un ejemplo útil son las monedas estables como Tether (L-USDT), una moneda estable denominada en dólares que permite a los usuarios evitar la volatilidad de Bitcoin de una manera de”autocustodia”(el token aún requiere que el emisor respete el canje para adquirir”reales”). dinero”al final del día). La emisión de activos líquidos también permite la creación de otros tipos de tokens, como acciones que podrían ser autocustodiadas, y la funcionalidad de secuencias de comandos de Liquid admite más funciones que el propio Bitcoin, lo que permite contratos inteligentes más avanzados, como préstamos respaldados por BTC, todo manejado directamente por un usuario a través de su propia billetera. Spectre ha optado por admitir Liquid para permitir que los usuarios interactúen con Liquid de la misma manera que la cadena principal: con privacidad y total soberanía.
Spectre Enterprise
Proyectos como la billetera Bitcoin Beach en realidad usan Spectre como backend para administrar sus fondos multigrado en cadena. No son la única empresa que utiliza Spectre en el backend para administrar los fondos de la empresa y, según Wietersheim, ni siquiera sabían de las empresas que utilizaban Spectre hasta que se les solicitó ayuda. Una gran parte de los ingresos que mantienen el proyecto a flote proviene en realidad de esas empresas que pagan al equipo de Spectre por firmware personalizado para Spectre DIY y otros servicios de desarrollo, lo que les permite trabajar a tiempo completo en el mantenimiento de todo su paquete de software.
Es interesante pensar que el mismo conjunto de herramientas desarrollado para ofrecer a los usuarios individuales el camino hacia la auto-soberanía y la seguridad también está siendo utilizado por empresas reales con los mismos fines. Es común pensar en cada grupo como mercados totalmente separados con necesidades completamente diferentes, pero como se demuestra aquí con Spectre, la superposición es mucho mayor de lo que se podría pensar a primera vista.
Centro de comando de un Bitcoiner
El equipo de Spectre ha logrado algo realmente espectacular con el proyecto. Todo, desde los dispositivos de hardware que administran de forma segura las claves privadas y las operaciones de firma hasta el software para validar sus transacciones, ha sido desarrollado por el equipo de manera interoperable y sin problemas. Realmente es una navaja suiza de herramientas para el Bitcoiner autónomo, ya sea un usuario individual o una empresa profesional que administra los fondos de otras personas, para manejar todo lo que necesita para interactuar con la red de Bitcoin. El proyecto tiene un valor incalculable y se debe felicitar al equipo por el excelente trabajo que han realizado en la creación de este conjunto de software y hardware de código abierto para que todos en este espacio puedan aprovecharlo.
Esta es una publicación invitada de Shinobi. Las opiniones expresadas son totalmente propias y no reflejan necesariamente las de BTC Inc o Bitcoin Magazine.