Jak zbudowane jest oprogramowanie sprzętowe Coldcard i dlaczego deweloperzy powinni uruchamiać jego emulator na PC
Kod źródłowy sprzętowych portfeli kryptowalutowych jest analizowany z szczególną starannością. Pojedynczy błąd w generatorze liczb losowych lub usterka w kodzie mogą kosztować miliony dolarów. Zerknij na nagłówek README w repozytorium Coldcard: autorzy otwarcie ostrzegają o krytycznej luce entropijnej dotyczącej wydań od 2021 do 2026 roku. Deweloperzy szczerze zalecają aktualizację oprogramowania sprzętowego i ponowne wygenerowanie kluczy.
Ta przejrzystość jest możliwa dzięki otwartej architekturze. Oprogramowanie sprzętowe Coldcard jest dostępne dla każdego, a binarny plik można zbudować bajt po bajcie na własnym laptopie.

Co zawiera repozytorium
Projekt łączy oprogramowanie dla kilku generacji portfeli: serii Mk3, Mk4, Mk5 oraz flagowego Q1 z pełną klawiaturą. Główny stos technologiczny obejmuje MicroPython do logiki wysokiego poziomu oraz C do operacji niskiego poziomu na mikrokontrolerze STM32.

Kod jest rozłożony na katalogi w dość logiczny sposób:
sharedprzechowuje współdzieloną logikę Pythona dla emulatora i urządzeń.stm32zawiera oprogramowanie sprzętowe, bootloadery i pliki makefile do budowania końcowego pliku binarnego dla mikrokontrolera.unixzawiera kod źródłowy emulatora dla systemów macOS i Linux.hardwarezawiera schematy i specyfikacje komponentów.
Rzadko zdarza się znaleźć oprogramowanie, emulator i schematy sprzętowe w jednym miejscu. Dla zainteresowanych programowaniem wbudowanym z Pythonem to doskonały materiał do nauki.
Interesujące rozwiązania techniczne
Powtarzalne kompilacje przez Docker
Jednym z głównych kryteriów zaufania do bezpiecznego sprzętu jest pewność, że skompilowany plik odpowiada kodowi źródłowemu na GitHub. Zespół Coldcard zautomatyzował ten proces. Kompilacja uruchamiana jest przez Docker za pomocą jednego polecenia:
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
Skrypt kompiluje kod w izolowanym środowisku i porównuje wynikowy plik z oficjalnym wydaniem. Jeśli pliki są identyczne bajt po bajcie, proces kończy się sukcesem.
Pełnoprawny emulator bez fizycznego urządzenia
Nie będziesz musiał kupować urządzenia za kilkaset dolarów tylko po to, by studiować kod. Folder unix zawiera emulator oparty na SDL2 i MicroPython. Odwzorowuje ekran, przyciski i wirtualny system plików na karcie SD.
Uruchomienie symulatora na Linuksie lub macOS zajmuje zaledwie kilka kroków:
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
Po uruchomieniu na ekranie pojawi się okno z interfejsem portfela. Możesz wchodzić z nim w interakcję za pomocą klawiatury lub myszy, testować własne skrypty i weryfikować obsługę transakcji PSBT (Partially Signed Bitcoin Transactions).
Dwie gałęzie do różnych celów
Zespół utrzymuje dwie główne gałęzie w Git:
masterzawiera przetestowany kod dla obecnych urządzeń Mk4, Mk5 i Q1.edgesłuży jako poligon doświadczalny dla eksperymentów. Funkcje takie jak obsługa Taproot czy Miniscript trafiają tutaj przed pojawieniem się w głównym wydaniu. Wymagania dotyczące jakości kodu wedgesą niższe, więc zmiany tam postępują szybciej.
Kto znajdzie to repozytorium przydatne
Projekt jest interesujący znacznie szerzej niż tylko dla entuzjastów Bitcoina. Deweloperzy systemów wbudowanych skorzystają z doświadczenia łączenia MicroPython z C na mikrokontrolerach STM32. Specjaliści ds. bezpieczeństwa znajdą tu jasny przykład implementacji powtarzalnej kompilacji.
Uruchomienie lokalnego emulatora pomaga zrozumieć, jak działa podpisywanie transakcji na urządzeniach odciętych od sieci, nie wydając dodatkowych pieniędzy.
Powiązane projekty