Coldcardファームウェアの構造と、開発者がPCでエミュレータを実行すべき理由
ハードウェア暗号ウォレットのソースコードは、特に慎重に精査されます。乱数生成器の小さなミスやコードのバグが、数百万ドルの損失につながる可能性があります。ColdcardリポジトリのREADMEヘッダーを覗いてみると、2021年から2026年までのリリースに影響する重大なエントロピー脆弱性について、開発者が率直に警告しています。ファームウェアの更新とキーの再生成を推奨しています。
この透明性は、オープンなアーキテクチャによって実現されています。Coldcardファームウェアは誰でも利用可能で、自分のノートPC上でバイナリをバイト単位でビルドできます。

リポジトリの中身
このプロジェクトは複数の世代のウォレット向けソフトウェアを組み合わせています:Mk3、Mk4、Mk5シリーズ、そしてフルキーボード搭載のフラッグシップQ1です。メインスタックには、高レベルロジック用のMicroPythonと、STM32チップでの低レベル操作用のC言語が含まれます。

コードは достаточно論理的な方法でディレクトリに распределеныされています:
sharedエミュレータとデバイスで共有されるPythonロジックを格納stm32最終的なマイコンバイナリをビルドするためのファームウェア、ブートローダー、makefileを含むunixmacOSとLinux用のエミュレータソースコードを含むhardware回路図と部品仕様を含む
ソフトウェア、エミュレータ、ハードウェア回路図がすべて同じ場所にあるのは珍しいことです。Pythonを使った組み込み開発に興味がある人にとって、これは素晴らしい学習材料です。
興味深い技術的解決策
Dockerによる再現可能なビルド
セキュアなハードウェアを信頼するための主な基準の1つは、コンパイルされたファイルがGitHubのソースコードと一致することへの確信です。Coldcardチームはこれを自動化しています。ビルドは単一のコマンドでDocker経由で実行されます:
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
このスクリプトは隔離された環境でコードをコンパイルし、結果を公式リリースと比較します。ファイルがバイト単位で一致すれば、プロセスは成功です。
物理デバイス不要のフル機能エミュレータ
コードを学ぶためだけに数百ドルのデバイスを購入する必要はありません。unixフォルダにはSDL2とMicroPythonベースのエミュレータが含まれています。画面、ボタン、仮想SDカードファイルシステムを再現します。
LinuxまたはmacOSでシミュレータを実行するのは、数ステップで完了します:
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
起動後、画面にウォレットインターフェースのウィンドウが表示されます。キーボードまたはマウスで操作でき、独自のスクリプトをテストし、PSBT( частично署名済みBitcoinトランザクション)の処理を確認できます。
異なる目的の2つのブランチ
チームは以下の2つのメインブランチをGitでメンテナンスしています:
master現在のMk4、Mk5、Q1デバイス向けのテスト済みコードを含むedge実験用のテストベッドとして機能。TaprootサポートやMiniscriptなどの機能がメインリリースに登場する前に这里で試される。edgeのコード品質要件は低いため、変更はより 빠르게進行する
このリポジトリが役立つ人
このプロジェクトはBitcoin愛好家をはるかに超えて興味深いものです。組み込みシステム開発者は、STM32マイコンでMicroPythonとCを組み合わせる経験得られます。セキュリティ専門家は、再現可能なビルド実装の明確な例を見つけられます。
ローカルエミュレータを実行すると、追加費用なしでエアギャップデバイスのトランザクション署名がどのように機能するかを理解できます。
関連プロジェクト