【夏休みの自由研究】Bitcoinのペーパーウォレットを作ってみる
ここ最近物理ビットコイン熱が上がってきたので、今更ながらではあるが夏休みの自由研究としてペーパーウォレットを作ってみることにしました。
予めですがペーパーウォレットなどを作る際は秘密鍵に関しての最低限の知識と、取り出し方法などを予習した上で臨んでください。
あとペーパーウォレットに大金を突っ込むようなことはやめましょう、少額でお年玉とかで配るのにはいいかもしれません。
・Githubからソースコードをダウンロードする
ビットコインのペーパーウォレットを作る場合ですが、既に先人たちが便利なツールを作ってくれているのでそちらを使用します。
少し引っ掛かる気もしますがオープンソースの物ですし少額を入れる程度ならこれでいいかなと、全て自分でやりたい!という人は自前で頑張りましょう!
というわけで今回使用したのが上のbtc-address-generatorです。
こちらはウェブ上でもペーパーウォレットを作成できますが、流石にそれはちょっと怖いのでローカル環境で使用できるよう上記サイトからソースコードをダウンロードします。
中央右側の緑のCodeボタンからDownload Zipを押します。
ダウンロードが完了したらローカル環境にするためにWifiやLANケーブルを抜いてネットに繋がらないようにします。
その後ダウンロードしたZipファイルを解凍し、そのフォルダ内にある「index.html」を開きます(普段使用しているブラウザで表示されるはず。)
開くとすぐにビットコインのアドレス生成が始まるので画面の表示に従い、白い枠内でマウスを適当に動かすことで秘密鍵生成時の乱数を与えます。
100%まで動かすと無事にビットコインアドレスと秘密鍵が表示されます(秘密鍵が表示されている画面は誰にも見せてはいけません)
今回はペーパーウォレットを作成するので左側にあるメニューからPaper Walletをクリックします。
ペーパーウォレットを作成する前に設定を調整できます。今回アドレスタイプはSegwitを選択しました(Legacyよりも送金コストが安い)
QRコードの読み込みエラー防止はデフォルトのままHighに、次のカウントは何枚印刷するかの項目なのでご自由に。
Vertical gap between wallets (in pixels)はペーパーウォレット間の隙間をどれぐらい取るかなのでこちらもお好みで。
最後にスタイルの項目でペーパーウォレットのデザインを決定します。
カスタムデザインで自分の好きなペーパーウォレットを作ることも可能です。
テンプレートは何種類かあるので気になったものを選択し「Generate paper wallets」を押すとプレビューが表示されます。
ドリアンナカモトデザインは面白いですが券面表に秘密鍵が表示されてるのでちょっと使いにくいですね…
そういう場合におすすめ?なのがBIP38 encryptオプションです。
これは秘密鍵が盗まれてしまってもあらかじめ設定したパスワードが無ければ使えないという機能です。
秘密鍵と事前に設定したパスワードの二つが揃わないとウォレットから引き出せないということですね。
使い方は簡単で、右側のBIP38 encryptオプションにチェックを入れパスワードを設定します。
当然ですがこのパスワードを忘れてしまうと二度と引き出せませんし、ペーパーウォレット側の秘密鍵をなくしても引き出しできません。
こんな感じでペーパーウォレットのデザインが完了したらPrintを押して印刷します。
LANケーブルやWifiを切っているので一度pdfで保存してプリンターにデータを送るか、USB接続で直接送信することで比較的セキュアに印刷できます。
最近のコピー機やプリンタなどは印刷履歴などキャッシュされる場合があるので可能な限り自分のプリンターで印刷し、気になる人はプリンタの初期化もしましょう。
(※この画像のアドレスには一切何も入っていませんし入れることも無いです)
こんな感じで印刷ができればペーパーウォレットの完成です!
後は各ウォレットアドレスにビットコインを送金すればOK!
当然ですが普通の印刷紙のため耐久性は弱いのでスリーブに入れるなり対策をした上で保管しましょう。
という訳で思ったよりも簡単にペーパーウォレットが作成できたのと、ウォレットアドレスの種類やBIP38のお勉強にもなりました。
2023年のお年玉にはペーパーウォレットを試してみるのも面白いかもしれませんね。
次回はこの応用でDIY物理ビットコインを作ってみたいと思います!