今回はコールドウォレットの作り方を解説します。
コールドウォレットとは?
送金に必要な秘密鍵をインターネットから分離し、必要な時にだけ使用する保管方法です。
TrezorやLedgerなどのデバイスを使用するのが一般的ですが、今回ご紹介する方法は2台のコンピュータを使用(エアギャップ)して、更にセキュアに管理したい方向けのものとなります。
ハードウェアウォレットより優れている点
- サプライチェーンリスクの排除
汎用ハードウェアを使用する事で、製造や流通過程で不正なファームウェアやチップをバックドアと仕込まれるリスクを排除できます。 - メーカー依存からの解放
何らかの事情でメーカーが特定のデバイスのサポートを終了するという事が無いので、Decredの開発が止まらない限り永続的に同じ環境を再構築する事ができます。 - セキュリティの自由度
ハードウェアやOSの選定からストレージの暗号化、セキュリティポリシーまで、ユーザの思うがままにカスタマイズが可能です。
実践編
公式ドキュメントを参考に構築していきます。
記事にする関係上、ハッシュ検証を省略しておりますが、改ざんや整合性チェックのため実行を推奨します。
システム要件
コンピュータA(フルノード)
- Windows、Mac、Linux
- 最低2GB以上のRAM
- 50GB~のストレージ(2026年5月現在)
※ブロックチェーンサイズは今後も増加するため、余裕がある方が好ましいです。
コンピュータB(コールドウォレット)
- Windows、Mac、Linux
- 最低2GB以上のRAM
- 30GB程度のストレージ(OS+ウォレットが入れば十分です)
コンピュータA(フルノード)
まずは、以下解説記事を参考にフルノード環境を構築します。

次にコンピュータBからコンピュータAに接続できるよう、『dcrd.conf』を設定する必要を行います。
ip addrでコンピュータAのIPアドレスを調べます。
ip addr

Viエディタなどを使って、先ほど調べたIPアドレスを適当な行に追記します。
dcrd.confは/var/lib/decredにあります。
sudo vi /var/lib/decred/dcrc.conf

証明書とコンフィグファイルをコピーする為のディレクトリを作成し、コピーします。
今回はディレクトリ名を『coldwallet』としました。
mkdir coldwallet
sudo cp /var/lib/decred/rcp.cert ~/coldwallet
sudo cp /var/lib/decred/dcrd.cert ~/coldwallet

上記で作成したディレクトリに、コンピュータBに合わせて最新のバイナリ一式をダウンロードしておきます(Rasberry Piの場合はファイル名にarm64が含まれるもの)
※解説簡略化のため省略していますが、ハッシュ検証による改ざん確認が推奨されます。
wget -P ~/coldwallet https://github.com/decred/decred-binaries/releases/download/v2.1.5/decred-linux-arm64-v2.1.5.tar.gz

ディレクトリをtar.gz形式でアーカイブします。
tar -zcvf coldwallet.tat.gz ~/coldwallet

作成されたファイルをUSB等に移動して、コンピュータAでの操作は完了です(FAT32形式だと権限が保持されず上手くコピー出来ないので、ext4形式でフォーマットしておきましょう)
※これ以降、USB等をコンピュータB以外のデバイスに接続するのは控えましょう。
sudo cp ~/coldwallet.tar.gz /mnt/

コンピュータB(コールドウォレット)
続いて、コールドウォレットの本体の設定を行います。
Rasberry PiにUbuntu Serverをインストール済である想定で進めます。
Raspberry Pi Imagerを使ってSDカードにOSのインストールが完了すると、以下のようなファイル構成になっているので『config.txt』を開きます。

[all]と書かれた行があるので、以下のように追記します。
これにより、Wi-FiとBluetooth無効化されます。

コンピュータA以外と接続できないよう、ファイアウォールを設定していきます。
sudo ufw default deny outgoing
sudo ufw default deny incoming
sudo ufw allow out to 192.168.100.112 prot 9109
sudo ufw enable

LANケーブルを接続できる状態になったので、wgetで疎通が取れているかテストします。
『400 Bad Request』と表示されれば正常です。
wget 192.168.100.112:9109

Decredのバイナリ及びコンフィグ展開用のディレクトリを作成します。
mkdir ~/decred
mkdir ~/decredconfigs

コンピュータAで用意したUSBを接続し、適当なディレクトリに移動します。
lsコマンドでバイナリ一式とdcrd.conf、rpc.certが展開されている事を確認します。

decred-linux-amd64-v2.1.5.tar.gzを展開し、中身を~/decredへコピーし、dcrd.conf及びrpc.certはdecredconfigsへコピーします。
※この時点ではdcrwalletを実行しないでください。
cp ~/coldwallet/decred-linux-arm64-v2.1.5/* ~/decred/
cp ~/coldwallet/coldwallet/dcrd.conf rpc.cert ~/decredconfigs

.dcrwallet及び.dcrctlディレクトリを作成します。
mkdir ~/.dcrwallet/
mkdir ~/.dcrctl/

それぞれconfigファイルを作成します。
ユーザ名及びパスワードはコンピュータAから移動してきた『dcrd.conf』の物を参考に設定します。
sudo vim ~/.dcrwallet/dcrwallet.conf

sudo vim ~/.dcrctl/dcrctl.conf
※ウォレット作成後、送金等の操作する際はrpc.certを/.dcrwallet/rpc.cert(ウォレットBの証明書)に指定する必要があります。

以下コマンドを実行して、最新ブロックが表示されれば正常にセットアップされています。
~/decred/dcrctl getbestblock

~/decred/dcrwallet –createでウォレットを作成します。
CUIウォレットについての詳細は後日、別記事にて記載します。

