噂のKrux(クルックス?)で遊んでみたお話
たぶん日本ではまだ噂になっていないかもですが、Kruxで遊んでみたお話です。
日本で比較的知られているDIY系ハードウェアウォレットいえば、ルノルミンさんの記事で書かれているSeedSignerですね(BitcoinTokyo2024にいらっしゃったぽかったので実物見せてもらえばよかった😂)
一方、Kruxはまだまだ小さなプロジェクトで、Seedsignerと同じようにオープンソースのファームウェアであり、対応しているいくつかの市販のデバイスに自分でインストールして使えるハードウェアウォレット(署名装置)になります。少し調べてみると韓国勢にもDIY系ハードウェアウォレットなどにアツいコミュニティがあるっぽく、、、日本でも密かにKruxを流行らせたい願望☺️
Seedsignerと違うポイント☆
- 市販のデバイス(M5StickV、Maix Amigo、Maix Dock、Maix Bit、Yahboom k210 module、Maix Cube、WonderMV)にインストールするため、自分で組み立てる必要がない
- デバイスによってはSeedsignerと比べると少し安い
M5StickV(US$ 50-55)Maix Amigo(US$ 50-85)Maix Dock(US$ 27-35)Maix Bit(US$ 32-42)Yahboom k210 module(US$ 45-61)Maix Cube(US$ 34-49)WonderMV(US$ 58-86) - サーマル プリンター、CNC加工機(将来的に?)への出力機能
ローカルに接続されたサーマル プリンターを介して、ニーモニックのバックアップ (単語、数字、Tiny Seed テンプレート※Stackbit 1248 は除く) および任意のQRコード (SeedQR、署名済みPSBT、アドレス、XPUB、Wallet 出力記述子など) を印刷する機能がある(CNC加工機へ出力して木材や金属板からQRを切り出すことができるようになるみたいです) - ニーモニックの暗号化
一般的に、ウォレットの秘密鍵を保護するために追加できるセキュリティ方法は、ニーモニック + BIP-39 パスフレーズですが、Kruxの場合は、AESのCBCモード、ECBモードを使用して暗号化されるようです。※AES(Advanced Encryption Standard)は、2000年に米国政府の標準として策定された暗号化方式で、通信データや保存データを強力に保護する信頼性の高い方式。詳細はこちら - コミュニティの意見が反映されやすい?
プロジェクト自体がまだ小さく、コミュニティの意見が反映されやすいそうです。Seedsignerはオープンソースですが結構集権化されてるという意見もあり。※聞いた話で自分にはよくわかりませんでした、、こちらがKruxのテレグラム
Seedsignerや他のハードウェアウォレットついてあまり詳しくないので、もし他にもあったり間違っていたら教えて下さい。
こちらのハードウェアウォレット比較サイトも参考になります↓↓
今回私はブラジルのビタキセ部の同志にYahboom k210をお勧めされたのでアリエクにて6,000円くらいで購入しました。Yahboom k210はタッチスクリーンなので操作が簡単👍️
続いてファームウェアをデバイスに書き込むための準備です。
こちらを見ながら進めました。
私のパソコンはWindowsなので
krux-installer_v0.0.20-alpha-3.Setup.exe
krux-installer_v0.0.20-alpha-3.Setup.exe.sha256.txt
krux-installer_v0.0.20-alpha-3.Setup.exe.sig
をインストールしました。次に大事なコードの検証作業です↓↓
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
※追記(重要)
ダニエルさんより指摘がありましたので、DIY系HWWにおいて、とても重要なGPGについて記載します。自分はそもそもGPGとはなんぞやって感じでしたが、調べてみて理解できました!めちゃ大事www
※①整合性の検証と、②信頼性の検証があります。
手順はこちらに記載の通り(windowsの場合)です。
1. Verify the integrity(整合性の検証)
「ファイルがダウンロード中に壊れていないか、改ざんされていないかを確認する手順」です。
具体的には、ファイルの ハッシュ値 を使って検証します。ファイルに対してハッシュ関数を適用すると、ファイルの内容に基づいて一意の文字列(ハッシュ値)が生成されます。もしファイルの内容が少しでも変更されていたり、破損していた場合、このハッシュ値が変わってしまうため、ファイルの正しさを検証することができます。
手順:
- Step 1:
krux-installer_v0.0.20-alpha-3.Setup.exe
のSHA-256ハッシュ値を計算し、それをkrux-installer_v0.0.20-alpha-3.Setup.exe.sha256.txt
に記載されているハッシュ値と比較します。
コマンドの説明:
Get-FileHash
: ファイルのハッシュ値(SHA-256)を計算します。Get-Content
:krux-installer_v0.0.20-alpha-3.Setup.exe.sha256.txt
から保存されているハッシュ値を取得します。- 比較が成功すれば、ファイルが破損していない、改ざんされていないことが確認され、結果として
True
が表示されます。
整合性検証のポイント:
- ダウンロード中にファイルが破損していないかを確認するためのプロセスです。
- 信頼性の確認(誰が作成したか)ではなく、ファイルの完全性の確認が目的です。
2. Verify the authenticity(信頼性の検証)
「このファイルが本当に信頼できる開発者によって作成されたものかどうかを確認する手順」です。
具体的には、開発者が提供した デジタル署名 を使って検証します。デジタル署名は、ファイルが確実に特定の人物(この場合、"qlrddev qlrddev@gmail.com")によって作成されたことを保証するものです。公開鍵暗号方式に基づいて行われるため、公開鍵を使って署名を検証することで、そのファイルが改ざんされておらず、特定の開発者からのものであることを確認できます。
手順:
- Step 1: GPGを使って、開発者の公開鍵をキーサーバーから取得します。
- Step 2: 取得した公開鍵を使って、ファイルに付けられた署名 (
krux-installer_v0.0.20-alpha-3.Setup.exe.sig
) を検証し、ファイルが本当にその開発者から送られたものであることを確認します。
コマンドの説明:
gpg --recv-keys
: キーサーバーから開発者の公開鍵を取得します。gpg --verify
: 取得した公開鍵を使って、署名ファイルを使ってファイルの信頼性を検証します。- 「Good signature from」と表示されれば、署名が正しいことを示しています。
信頼性検証のポイント:
- ファイルの作成者が誰であるかを確認するためのプロセスです。
- この検証により、そのファイルが本当に信頼できる開発者から提供されたものかどうかが確認できます。
Verify the integrity と Verify the authenticity の違い
-
**Verify the integrity(整合性の検証)**は、ファイルがダウンロード中や転送中に改ざんされたり壊れていないかどうかを確認します。ハッシュ値を使って行います。
-
**Verify the authenticity(信頼性の検証)**は、ファイルが本当に信頼できる開発者によって作成されたものであるかを確認します。デジタル署名を使って行います。
要するに、整合性の検証はファイルが壊れていないかを確認するためで、信頼性の検証はそのファイルの作成者が誰であるかを確認するための手順です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
無事検証したら、インストールを進めます。デスクトップにKruxのアイコンが作成されますので、クリックして起動します。次に、用意したデバイスにファームウェアを書き込みます。手順はこちらから。
自分のデバイスとアプリケーションのバージョンを選択してファームウェアを書き込みます。
※フラッシュ(書き込み)を開始する前に、PCにデバイスを接続して電源をオンにしておきます。
書き込みが完了すると、Krux ロゴが表示されるはず。これで準備完了です。技術に関しては全く疎い私ですが、ここまでスムーズに設定することができました。
長くなったので一旦終わりにして、次回は実際にKruxをいじって遊んでみます。
サーマルプリンター、レシートみたいなやつだとすると気づいたら印刷が消えてたりしないか心配です…笑