>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

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.

coldcard logo

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.

Mk5 coldcard picture front

Kod jest rozłożony na katalogi w dość logiczny sposób:

  • shared przechowuje współdzieloną logikę Pythona dla emulatora i urządzeń.
  • stm32 zawiera oprogramowanie sprzętowe, bootloadery i pliki makefile do budowania końcowego pliku binarnego dla mikrokontrolera.
  • unix zawiera kod źródłowy emulatora dla systemów macOS i Linux.
  • hardware zawiera 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:

  • master zawiera przetestowany kod dla obecnych urządzeń Mk4, Mk5 i Q1.
  • edge sł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 w edge są 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