Código Abierto | Ethereum | Hardware
4 min read

En el mundo de la blockchain, la seguridad de las claves criptográficas es un desafío constante. Mientras que los monederos de hardware ofrecen protección de primer nivel para cuentas personales, la seguridad en entornos computacionales requiere soluciones más avanzadas, como los Módulos de Seguridad de Hardware (HSM). Estos dispositivos permiten realizar operaciones criptográficas sin exponer el material clave, garantizando la protección de activos digitales de alto valor.

Sin embargo, hasta ahora, no existía un HSM de código abierto con soporte para firmas BLS, el algoritmo de firma utilizado por los validadores en la capa de consenso de Ethereum. Conscientes de esta brecha, en Decentralized Security nos embarcamos en el desarrollo de BLS-HSM, un proyecto de código abierto diseñado para proteger las claves de validadores de Ethereum utilizando hardware accesible y firmware transparente.


Visión General del Proyecto

El proyecto BLS-HSM fue financiado inicialmente en 2021 por el programa de subvenciones de la comunidad de staking de Ethereum Foundation. En 2022, recibimos una nueva subvención para continuar con su desarrollo y mejorar sus capacidades.

Nuestro objetivo es proporcionar un firmware de código abierto que pueda ejecutarse en hardware de bajo costo, democratizando la seguridad de los validadores sin que el precio del hardware sea una barrera. Actualmente, el desarrollo se centra en la arquitectura ARM Cortex-M33, utilizando las placas de desarrollo nRF9160DK y nRF5340DK de Nordic Semiconductor, junto con sus plataformas prototipadas Thingy:91 y Thingy:53.

El software se basa en Zephyr RTOS, lo que facilita su portabilidad a otras placas compatibles con ARM Cortex-M33. Para la implementación de las firmas BLS, utilizamos la biblioteca blst de Supranational.


Prototipos y características

Hemos desarrollado dos prototipos principales:

  1. CLI – Una interfaz de línea de comandos que permite generar pares de claves BLS, firmar y verificar mensajes a través de un puerto serie. Diseñado para probar la funcionalidad básica en el hardware.
  2. Remote signer – Un firmante remoto para Ethereum que protege las claves privadas utilizando ARM TrustZone y expone la API de Web3Signer ETH2 a través de un puerto serie.

Además, hemos desarrollado versiones equivalentes que no requieren ARM TrustZone y, en lugar de comunicarse por puerto serie, utilizan sockets TCP. Esto permite que cualquiera pueda probar y contribuir al proyecto sin necesidad de adquirir hardware específico.

Para simplificar las pruebas, proporcionamos binarios precompilados para las versiones ARM, aunque animamos a los usuarios a compilarlos desde el código fuente. Las instrucción se encuentran en el repositorio.


Retos y Limitaciones

Durante el desarrollo, hemos enfrentado varios retos técnicos, entre ellos:

  • Limitaciones de memoria y CPU: La firma BLS en ARM Cortex-M33 inicialmente presentaba problemas de rendimiento, con tiempos de firma cercanos a un segundo. Continuamos optimizando el código para mejorar la eficiencia.
  • Cuellos de botella en el rendimiento: Las operaciones de firma tardan aproximadamente un segundo, lo que requiere más optimizaciones.
  • Incompatibilidad con SCRYPT: Debido a los requisitos de memoria de SCRYPT, no es viable ejecutarlo en nuestra plataforma, por lo que solo admitimos importación de keystores con PBKDFv2.
  • Puente de serie a socket: El firmante remoto opera a través de un puerto serie, por lo que requiere un puente para funcionar sin problemas con los clientes de consenso de Ethereum.

Desarrollos en Curso

El desarrollo de BLS-HSM sigue avanzando, y estamos trabajando en:

  • Firmante remoto con LTE: Esta función permitirá que las claves del validador permanezcan con el usuario en todo momento. Sin embargo, la implementación de sockets TLS en nuestro hardware presenta un desafío.
  • Compatibilidad con TF-M (Trusted Firmware-M): La transición de Secure Partition Manager (SPM) a TF-M facilitará la portabilidad a más dispositivos y permitirá realizar pruebas en PC estándar mediante QEMU.
  • Protección contra slashing: Actualmente, el firmante no almacena de manera persistente los datos de protección contra slashing. Estamos investigando soluciones de almacenamiento seguro.
  • Compatibilidad total con Thingy:91 y Thingy:53: Nuestro objetivo es hacer de estas plataformas las principales para nuestro proyecto, incluyendo actualizaciones OTA a través de BLE.
  • Compatibilidad con nuevo hardware: Estamos explorando la placa OKdo E1, una alternativa económica con ARM Cortex-M33.
  • Importación segura de keystores: Estamos investigando el uso de pantallas, interfaces táctiles y métodos de entrada multicanal (por ejemplo, envío del keystore a través de LTE y la contraseña por Bluetooth) para mejorar la seguridad.

Participa

BLS-HSM es un proyecto de código abierto y en constante evolución. Invitamos a la comunidad a probarlo, reportar problemas y contribuir al desarrollo. Si estás interesado, visita nuestro repositorio y comparte to feedback.

Juntos, podemos mejorar la seguridad de los validadores en Ethereum y hacer que la protección de claves criptográficas sea más accesible para todos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *