>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Python

Coldcardファームウェアの構造と、開発者がPCでエミュレータを実行すべき理由

ハードウェア暗号ウォレットのソースコードは、特に慎重に精査されます。乱数生成器の小さなミスやコードのバグが、数百万ドルの損失につながる可能性があります。ColdcardリポジトリのREADMEヘッダーを覗いてみると、2021年から2026年までのリリースに影響する重大なエントロピー脆弱性について、開発者が率直に警告しています。ファームウェアの更新とキーの再生成を推奨しています。

この透明性は、オープンなアーキテクチャによって実現されています。Coldcardファームウェアは誰でも利用可能で、自分のノートPC上でバイナリをバイト単位でビルドできます。

coldcard logo

リポジトリの中身

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

Mk5 coldcard picture front

コードは достаточно論理的な方法でディレクトリに распределеныされています:

  • shared エミュレータとデバイスで共有されるPythonロジックを格納
  • stm32 最終的なマイコンバイナリをビルドするためのファームウェア、ブートローダー、makefileを含む
  • unix macOSと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を組み合わせる経験得られます。セキュリティ専門家は、再現可能なビルド実装の明確な例を見つけられます。

ローカルエミュレータを実行すると、追加費用なしでエアギャップデバイスのトランザクション署名がどのように機能するかを理解できます。

関連プロジェクト