>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Python

Cómo está estructurado el firmware de Coldcard y por qué los desarrolladores deberían ejecutar su emulador en un PC

El código fuente de los monederos criptográficos de hardware se examina con especial cuidado. Un solo error en el generador de números aleatorios o un error en el código puede costar millones de dólares. Echa un vistazo al encabezado del README en el repositorio de Coldcard: los autores advierten abiertamente sobre una vulnerabilidad crítica de entropía que afecta a las versiones desde 2021 hasta 2026. Los desarrolladores sugieren honestamente actualizar el firmware y regenerar las claves.

Esta transparencia es posible gracias a la arquitectura abierta. El firmware de Coldcard está disponible para todos, y puedes compilar su binario byte por byte directamente en tu propia computadora portátil.

coldcard logo

Qué hay dentro del repositorio

El proyecto combina software para varias generaciones de monederos: las series Mk3, Mk4, Mk5 y el modelo insignia Q1 con teclado completo. La pila principal incluye MicroPython para lógica de alto nivel y C para operaciones de bajo nivel en el chip STM32.

Mk5 coldcard picture front

El código se distribuye entre directorios de manera bastante lógica:

  • shared almacena la lógica compartida en Python para el emulador y los dispositivos.
  • stm32 contiene el firmware, los bootloaders y los makefiles para construir el binario final del microcontrolador.
  • unix incluye el código fuente del emulador para macOS y Linux.
  • hardware contiene los esquemas y las especificaciones de los componentes.

Es raro encontrar software, un emulador y esquemas de hardware todo en un solo lugar. Para quienes están interesados en el desarrollo embebido con Python, este es un excelente material de estudio.

Soluciones técnicas interesantes

Compilaciones reproducibles mediante Docker

Uno de los criterios principales para confiar en hardware seguro es la confianza de que el archivo compilado coincide con el código fuente en GitHub. El equipo de Coldcard automatizó este proceso. La compilación se ejecuta mediante Docker con un solo comando:

git clone https://github.com/Coldcard/firmware.git
cd firmware
git checkout 2026-03-05T2052-v5.5.0
cd stm32
make -f MK4-Makefile repro

El script compila el código en un entorno aislado y compara el archivo resultante con la versión oficial. Si los archivos coinciden byte por byte, el proceso se realiza correctamente.

Emulador completo sin hardware físico

No necesitarás comprar un dispositivo por unos pocos cientos de dólares solo para estudiar el código. La carpeta unix contiene un emulador basado en SDL2 y MicroPython. Recrea la pantalla, los botones y el sistema de archivos de la tarjeta SD virtual.

Ejecutar el simulador en Linux o macOS solo requiere unos pocos pasos:

git clone --recursive https://github.com/Coldcard/firmware.git
cd firmware
python3 -m venv ENV
source ENV/bin/activate
pip install -r requirements.txt
cd unix
make setup && make ngu-setup && make
./simulator.py

Después del lanzamiento, aparecerá en pantalla una ventana con la interfaz del monedero. Puedes interactuar con ella usando el teclado o el ratón, probar tus propios scripts y verificar el manejo de PSBT (Transacciones de Bitcoin Parcialmente Firmadas).

Dos ramas para diferentes propósitos

El equipo mantiene dos ramas principales en Git:

  • master contiene código probado para los dispositivos actuales Mk4, Mk5 y Q1.
  • edge sirve como campo de pruebas para experimentos. Funciones como el soporte de Taproot o Miniscript terminan aquí antes de aparecer en la versión principal. Los requisitos de calidad del código en edge son menores, por lo que los cambios allí avanzan más rápido.

A quién le será útil este repositorio

El proyecto es interesante mucho más allá de los entusiastas de Bitcoin. Los desarrolladores de sistemas embebidos se beneficiarán de la experiencia de combinar MicroPython con C en microcontroladores STM32. Los especialistas en seguridad encontrarán aquí un ejemplo claro de implementación de compilación reproducible.

Ejecutar un emulador local te ayuda a entender cómo funciona la firma de transacciones en dispositivos air-gapped sin gastar dinero extra.

Proyectos relacionados