>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Python

Hoe de Coldcard-firmware is gestructureerd en waarom ontwikkelaars de emulator op hun pc moeten draaien

De broncode van hardware crypto-wallets wordt met bijzondere zorg onderzocht. Een enkele misstap in de random number generator of een bug in de code kan miljoenen dollars kosten. Neem een kijkje in de README-header van de Coldcard-repository: de auteurs waarschuwen openlijk over een kritieke entropie-kwetsbaarheid die releases van 2021 tot en met 2026 treft. De ontwikkelaars raden eerlijk aan om de firmware te updaten en sleutels opnieuw te genereren.

Deze transparantie wordt mogelijk gemaakt door de open architectuur. De Coldcard-firmware is beschikbaar voor iedereen, en je kunt de binaire bestanden byte-voor-byte zelf bouwen op je eigen laptop.

coldcard logo

Wat er in de Repository Zit

Het project combineert software voor verschillende generaties wallets: de Mk3, Mk4, Mk5-serie en het vlaggenschip Q1 met een volledig toetsenbord. De hoofdstack bestaat uit MicroPython voor high-level logica en C voor low-level operaties op de STM32-chip.

Mk5 coldcard picture front

De code is verdeeld over directories op een vrij logische manier:

  • shared bevat gedeelde Python-logica voor de emulator en apparaten.
  • stm32 bevat de firmware, bootloaders en makefiles voor het bouwen van het uiteindelijke microcontroller-binary.
  • unix bevat de emulator-broncode voor macOS en Linux.
  • hardware bevat schema's en componentspecificaties.

Het is zeldzaam om software, een emulator en hardware-schema's op één plek te vinden. Voor degenen die geïnteresseerd zijn in embedded development met Python is dit uitstekend studiemateriaal.

Interessante Technische Oplossingen

Reproduceerbare Builds via Docker

Een van de belangrijkste criteria voor het vertrouwen van veilige hardware is het vertrouwen dat het gecompileerde bestand overeenkomt met de broncode op GitHub. Het Coldcard-team heeft dit proces geautomatiseerd. De build draait via Docker met één commando:

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

Het script compileert de code in een geïsoleerde omgeving en vergelijkt het resulterende bestand met de officiële release. Als de bestanden byte-voor-byte overeenkomen, slaagt het proces.

Volledig Functionele Emulator Zonder Fysieke Hardware

Je hoeft geen apparaat van een paar honderd dollar te kopen alleen om de code te bestuderen. De unix folder bevat een emulator gebaseerd op SDL2 en MicroPython. Het recreateert het scherm, de knoppen en het virtuele SD-kaartbestandssysteem.

De simulator draaien op Linux of macOS kost maar een paar stappen:

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

Na het opstarten verschijnt er een venster met de wallet-interface op het scherm. Je kunt ermee interageren met het toetsenbord of de muis, je eigen scripts testen en PSBT (Partially Signed Bitcoin Transactions) verwerking verifiëren.

Twee Takken voor Verschillende Doeleinden

Het team onderhoudt twee hoofdbranches in Git:

  • master bevat geteste code voor huidige Mk4, Mk5 en Q1-apparaten.
  • edge dient als testomgeving voor experimenten. Functies zoals Taproot-ondersteuning of Miniscript belanden hier voordat ze in de hoofdrelease verschijnen. Codekwaliteitseisen in edge zijn lager, dus wijzigingen daar gaan sneller.

Voor Wie Deze Repository Nuttig Is

Het project is interessant ver voorbij alleen Bitcoin-enthousiastelingen. Ontwikkelaars van embedded systems profiteren van de ervaring van het combineren van MicroPython met C op STM32-microcontrollers. Beveiligingsspecialisten vinden hier een duidelijk voorbeeld van reproduceerbare build-implementatie.

Het draaien van een lokale emulator helpt je begrijpen hoe transactieondertekening werkt op air-gapped apparaten zonder extra geld uit te geven.

Gerelateerde projecten