SeedSigner を使ってみよう【後編】
前編ではSeedSigner でシードを生成したりインポートしたりしました。後編ではそのシードをバックアップしてSeedQRを作りたいと思います。
SeedQRとは
SeedQRとはニーモニックを特殊なQRコードの形に変換したものです。SeedSignerは電源を落とすと内部のシードがクリアされてしまうのが特徴ですが、新たに電源を入れて使う際はこのSeedQRをカメラで読み取ることで、素早く簡単にニーモニックを内部にロード出来ます。
SeedQRのフォーマットの種類
SeedQRはニーモニックのワード数で構成するドットの数が変わります。また「スタンダード」と「コンパクト」の2種類があり、どちらか好きな方で作れます。
- スタンダード
24ワード=29x29ドット
12ワード=25x25ドット - コンパクト
24ワード=25x25ドット
12ワード=21x21ドット
スタンダードは一般的なQRコードの規格に準じていて(スマホなどで読み取ると数字の文字列が表示されると思います)、ドットの数が多めです。コンパクトはドット数が少ないですが、QRコードの規格に準じていないため、スマホのカメラで読み取ろうと思ってもカメラはQRコードと認識できません。逆に言えばニーモニックを盗むために瞬時に読み取られるリスクがないとも言えます(撮影されて別のSeedSignerで読み取られてしまえばそれまでですが…)。また、SeedQRのバックアップは用紙のマス目にドットを手書きで記入していく方式が一般的なため、ドットが少ないコンパクトの方が記入するドットの数が少なく済みます。
シードをSeedQRでバックアップする
生成したシードをSeedQRの形でバックアップをしてみましょう。Homeから『Seeds』をクリックしてシードのリストを表示し、任意のシードを選択します(今回は前編でカメラを使用して作成したシードを選択)。
シードを選択したら『Backup Seed』→『Export as SeedQR』に進みます。
SeedQRのフォーマットを選びます。今回はコンパクトにします。注意書きが現れ、了解ボタンを押すとSeedQRが表示されます。『Begin 21x21』を押して書き写していきましょう。
QRコードが部分的に拡大表示されるのでゾーンごとにジョイスティックでスライドさせながらドットを書き写していきましょう。初めは鉛筆で書き、後からペンで塗り潰した方が、間違えた時に修正しやすいです。
(ニーモニックはテスト用です実際に使用していません)
最後に一度書き写したQRコードをカメラでスキャンして正しく読み取れるかチェックします。問題なければこれで完成です。
SeedQRを読み込む
一度SeedSignerの電源を落とすかリスタートをして、シードをクリアします。再度Home画面に戻ったら『Scan』のアイコンを選択。カメラが起動するので、バックアップしてあったSeedQRを読み取ります。fingerprintが表示されたらバックアップメモのfingerprintと比べてみて同じかどうか確認します。
『Done』を押すと無事SeedSignerにシードがロードされます。もしパスフレーズを追加したい場合は『Done』を押す前にパスフレーズを追加しましょう。
SeedQRカードについて
SeedQRの用紙テンプレートは公式のGithubからダウンロード出来ます。またエンクロージャーなどを販売しているサイトでも売っているので、そちらで購入してもいいでしょう。
自分は自作したものをPDFにしてコンビニのネットプリントを利用して出力しています。ハガキサイズに設定して作ってあるので、ハガキ用紙にプリントにすれば適度な厚みを持ったカードとして出力できます。
SeedQRの保管について
SeedQRの保管はとても大切です。ニーモニック自体を無くさなければ、SeedQR自体は失っても問題ないですが、人目に触れたり盗まれたりするのはやはり問題があります。
通常のハードウェアウォレットであれば、シードはデバイス内部に閉じ込められるので、バックアップシードは遠方の貸金庫に預けるなどしてリスクを回避しますが、SeedSignerの場合、SeedQRとセットで運用するのが前提になってるため、SeedQRを比較的身近な場所に置いておく必要があります(これを理由にSeedSignerを否定する人もいる)。保管の仕方は人それぞれだと思いますが、リスクを下げるためにも、パスフレーズと組み合わせて運用※するか、マルチシグで運用するのが望ましいかと思います。
※パスフレーズを組み合わせる場合、SeedQRはパスフレーズ無しのシードで作成して、SeedSignerに読み込む際にパスフレーズを追加するのが良いと思います。
というわけで後編はここまで。
……と言ってもここまでは準備段階でしかなく、本来はSeedSignerを使って実際にビットコインを送金する方法まで書かなきゃいけないと思うのですが、パソコンとSeedSignerを行ったり来たりしてテキストやキャプチャーで説明するのが煩雑になりそうだなとか、実際にビットコインを使って送金するとしたら、xpubとか送受信のアドレスとかトランザクションIDとかどこまで隠さなきゃならないのかなとか、Sparrow Walletの説明もしたほうがいいのかなとか、いろいろ考えてたら激しく鬱になりはじめました。
送金プロセスの全体の流れを書いてみると…
- SeedSignerからXpubをエクスポートして、パソコン側にウォレットを作る
- ウォレットで送金トランザクションを作成する
- PSBTをQRコードでSeedSignerに送る
- SeedSignerのカメラでQRコードを読み取り署名する
- 署名済みPSBTをQRコードでパソコン側のウォレットに戻す
- ブロードキャストして送金完了
といった感じでしょうか。
やっぱり動画で見るのが一番わかりやすいんじゃないかと思い、YouTube動画のリンクを貼りつつ、自分の役目はここまでと言う事でこの辺で退散いたします。
ここまで読んでいただき、本当にどうもありがとうございました。
>『Begin 21x21』を押して書き写していきましょう。
の下図にSeedQRが掲載されていたのでQRコードスキャナで読み取ってみました。文字化けします。読み取ったバイナリを文字コードに置き換えしようとしたが、元々データはエントロピーであって文字でないから文字化けするのでしょう。
文字に置き換えしないQRコードスキャナを使って見ました。16進数ダンプで128ビット分のデータが取得できました。12ワードだと128ビット分のエントロピーとなるので、SeedSignerはエントロピーをそのままQRコードにするようです。