Contact

【CTO Tech Blog】Blockstream JadeをDIYしてみた

  • CTO Tech blog

Blockstream JadeはBlockstreamが提供しているハードウェアウォレット。Githubのリポジトリを見てみると、DIY用のガイドがあったので、M5Stack Basicにセットアップしてみた。

環境構築

README.mdに書かれてる内容に従って、ESP32の開発環境であるesp-idfをセットアップする(実行環境はUbuntu 24.04 LTS)↓

$ mkdir ~/esp
$ cd ~/esp
$ git clone -b v5.4 --recursive https://github.com/espressif/esp-idf.git
$ cd ~/esp/esp-idf
$ git checkout 67c1de1eebe095d554d281952fde63c16ee2dca0 
$ ./install.sh --enable-gdbgui esp32 esp32s3
$ python ~/esp/esp-idf/tools/idf_tools.py install qemu-xtensa

そして、環境変数の設定する↓

$ . $HOME/esp/esp-idf/export.sh

ファームウェアのビルドにCMakeとninjaが必要みたいなので、入ってなければいれておく↓

$ sudo apt install cmake ninja-build

また、シリアルポートを使ってファームウェアをロードする権限が必要で、その権限のグループに属しているか確認する。M5Stackをつないで↓を確認すると、

$ ls -l /dev/ttyACM0 
crw-rw---- 1 root dialout 166, 0  3月 21 17:55 /dev/ttyACM0

dialoutグループに入ってれば良さそうなので、groupsコマンドで自分がメンバーが確認する。入ってなければグループに追加(要再ログイン)↓

$ sudo usermod -aG dialout $USER

ファームウェアのビルド

続いて、Jadeのコードをチェックアウトしてファームウェアをビルドする。

$ git clone --recursive https://github.com/Blockstream/Jade.git $HOME/jade
$ cd $HOME/jade
$ git submodule update --init --recursive

リポジトリをcloneしたら、configsディレクトリがあるので、そこから手持ちのデバイスに適合する設定をコピーする。自分の場合は、M5Stack Basicだったので、sdkconfig_display_m5blackgray.defaultsを選択↓

$ cp configs/sdkconfig_display_m5blackgray.defaults sdkconfig.defaults

準備ができたのでファームウェアをビルドしてデバイスにフラッシュする↓

$ idf.py flash

完了するとセットアップができるようになる↓

受信用のアドレスを作ったりトランザクションをブロードキャストするためには連携するアプリが必要でJadeが対応してるのは↓

https://help.blockstream.com/hc/en-us/articles/9601453403801-Download-a-companion-app-for-Jade

セットアップの最後で、USB or Bluetoothでアプリとの連携を求められるので、Blockstream Greenと連携してみた(ちゃんとLinuxのデスクトップ版があるのが良い)↓

といった感じで簡単にDIYできるようになってる。

※ M5Stack Basicにはセキュアエレメントとかは搭載されてないので、あくまでホビー用途で。

と思ってたら、Jade自体はセキュアエレメントを搭載せず、PINオラクルを使ったセキュリティモデルを採用してるみたい。シードはブラインドオラクルとJadeデバイスが連携して生成したAES鍵で暗号化されて保存されてるからデバイスを入手してもシードは読めない。トレードオフとしてオラクルサーバーが必要になると↓

help.blockstream.com

ブログ本文へのリンク

ブログへのリンクはこちらから
https://techmedia-think.hatenablog.com/entry/2025/03/21/221730

Chaintopeでブロックチェーンの未来を共に創りませんか?

Chaintopeは、独自のブロックチェーン「Tapyrus」と、開発プラットフォーム「Tapyrus Platform」を活用し、デジタル社会の信頼基盤を構築しています。
私たちは、ブロックチェーン技術の可能性を最大限に引き出し、社会に新しい価値を提供することを目指しています。

募集職種:

ブロックチェーンエンジニア
アプリケーションエンジニア
インフラ・保守エンジニア
プロジェクトマネージャー
フィールドセールス

Chaintopeで働く魅力:

最先端のブロックチェーン技術に触れる機会
リモートワークやフレックスタイム制による柔軟な働き方
専門性の高いチームとの協働
ブロックチェーン技術に情熱を持つあなたのスキルを、私たちのチームで活かしませんか?
詳細は、採用情報をご覧ください。

https://www.chaintope.com/recruit/

 

話題のキーワード