NFTやメタバースといったWeb3.0テクノロジーは世界に新たな可能性を見出す一方で、暗号資産管理に伴うセキュリティリスクが大きな課題となっています。
そこで注目されているのがHDウォレットです。HDウォレットは複数の秘密鍵を用いてユーザープライバシーの保護を追求します。
本記事ではHDウォレットの概要や仕組み、具体的なHDウォレットプロジェクトを解説します。
この記事の構成
HDウォレットとは?
HD(Hierarchical Deterministic:階層的決定性)ウォレットは1つのシード※1から無限に秘密鍵、公開鍵/ウォレットアドレスを生成できる暗号資産管理ツールです。プライバシー保護と鍵管理の効率化を目指します。
従来のランダムウォレットでは各アドレスに対して一つの秘密鍵を生成します。ウォレットを増やすたびに新たに秘密鍵管理が必要になります。HDウォレットではサブウォレットなどを増やしても管理する必要があるのは大元のマスターシードのみです。
※1 シードはウォレットの秘密鍵を生成するための元となるランダムなデータのことを指します。
HDウォレットの特徴
- 階層性
- 管理が容易
- 追跡が困難
階層性
公開鍵には階層性があり、HDウォレットユーザーは複数のサブウォレットを編成できます。個人の支出用や貯蓄用、ビジネス用といった目的ごとにサブウォレットを一つのマスターシードから作成することができます。
管理が容易
管理するのは1つのマスターシードのみです。複数の秘密鍵を保管・管理する手間を省くことができます。マスターシードさえあればウォレットの復元※2やバックアップが可能です。暗号資産を管理する上で安全性と利便性が向上します。
※2 復元時はニーモニックフレーズといった英単語のリストを使用します。
追跡が困難
HDウォレットから生成された各アドレスは外部から見ると互いに関連性がないように見えます。この特徴はユーザーの取引履歴を追跡することを困難にさせ、プライバシー保護の観点で有効とされています。
HDウォレットの仕組み
- マスターシードの生成
- 秘密鍵の生成
- 公開鍵の生成
- アドレスの生成
一つのマスターシードから公開鍵/アドレスを生成するプロセスを解説します。
マスターシードの生成
最初にランダムなデータからマスターシードが生成されます。このシードは通常、12〜24の英単語(ニーモニックフレーズ)で表現されます。
秘密鍵の生成
マスターシードを元に秘密鍵が生成されます。この秘密鍵は公開鍵やアドレス生成に使用されます。
公開鍵の生成
公開鍵の生成には楕円曲線暗号(Elliptic Curve Cryptography、ECC)が使用されます。この計算は一方向性があります。計算上、公開鍵から秘密鍵を逆算することは非常に困難です。
アドレスの生成
公開鍵からさらにハッシュ関数計算※3を行うことで、ブロックチェーン上のアドレスが生成されます。
※3 ハッシュ関数計算はデータを一定の長さのユニークな値に変換する方法です。例えば、”Nice”という単語をハッシュ関数で計算すると”2cf24dba5fb0a30e26…”のようなランダムな文字列が出力されます。
HDウォレット使用時の注意点
- シードの管理
- ウォレットの関連問題
- ウォレットの購入
HDウォレットには多くの利点があります。一方で注意すべきコストやリスクも存在します。
シードの管理
HDウォレットの最大の利点であるマスターシードのユーザビリティは同時にリスクにもなります。
マスターシードが盗まれたり失われた場合、ウォレットにアクセスできなくなるだけでなく、そのウォレットから派生した全てのアドレスの資産も失われる可能性があります。
ウォレットの関連問題
HDウォレットでは一つの秘密鍵から派生した全ての公開鍵/アドレスが関連付けられています。一部のウォレット情報が漏洩した場合、他の階層ウォレットとの関連性が明らかにされる可能性があります。
ウォレットの購入
主要なHDウォレットはインターネットに接続されていないハードウォレットとして販売されています※4。ハードウォレットを入手する際は購入コストが発生します。
※4 ホットウォレットとして使用できるElectrum、Myceliumなどの無料HDウォレットもあります。
秘密鍵生成の種類とリカバリー
- ランダム生成
- 単一シード生成(Deterministic生成)
- 階層的決定性(HD)生成
ランダム生成
コンピュータのエントロピー(ランダム性)を利用した最も一般的な秘密鍵生成方法です。ランダムな数値を用いて秘密鍵を生成します。各秘密鍵は独立して生成され、他の秘密鍵との関連性はありません。
ランダム生成の秘密鍵は一度失われると復元することはできません。そのため、秘密鍵は紙に書き留めて安全な場所に保管するなど工夫が必要です。
単一シード生成(Deterministic生成)
一つの特定のシード(たとえばパスワードフレーズ)から秘密鍵を生成します。一つのシードから生成できる秘密鍵は一つです。同じシードを使用すれば同じ秘密鍵をリカバリーすることが可能です。
階層的決定性(HD)生成
本記事で解説するHDウォレットのプロトコルです。マスターシードがあれば全ての秘密鍵を復元することができます。
HDウォレットの紹介
HD技術を用いた具体的なウォレットとしては以下のものがあります。
Ledger(レジャー)
参照画像URL:https://www.ledger.com/ja
公式サイト | https://www.ledger.com/ja |
開発会社 | Ledger |
製品の主な特徴 | 認証済みセキュアチップ(CC EAL5+)採用 |
値段 | ¥12,499~ |
Ledgerはフランス企業が開発したハードウェアウォレットです。物理デバイスに秘密鍵を保存することで、オンラインの脅威を回避します。使いやすいインターフェースにも定評があり、誰でも簡単かつ安全に暗号資産を管理できます。
Trezor(トレザー)
参照画像URL:https://trezor.io/
公式サイト | https://trezor.io/ |
開発会社 | SatoshiLabs |
製品の主な特徴 | TREZORブラウザ採用 |
値段 | ¥14,800~ |
Trezorはチェコの企業SatoshiLabsが開発したハードウェアウォレットです。Trezorは世界初の商用ハードウェアウォレットとして広く認識されています。
KeepKey(キープキー)
参照画像URL:https://www.keepkey.com/
公式サイト | https://www.keepkey.com/ |
開発会社 | ShapeShift |
製品の主な特徴 | ウォレット内で直接取引 |
値段 | $49~ |
KeepKeyは米国企業ShapeShiftが開発したハードウェアウォレットです。ShapeShiftプラットフォームとの統合により、ウォレット内で直接暗号資産取引が可能になっています。LadgerやTrezorと比べると日本での知名度はそれほど高くはありません。
暗号資産のセキュアな保管先
暗号資産の保管先に対して様々な角度から理解を深めていきましょう。
ホットウォレット/コールドウォレットの分類、CEXにおける中央管理者による取り組み、スマートコントラクトやマルチシグネチャーを利用したウォレットイノベーションなどを包括的に解説します。
ホットウォレットとコールドウォレット
インターネットに接続されているウォレットをホットウォレットといいます。インターネットに接続されていないウォレットはコールドウォレットといいます。それぞれメリット、デメリットを理解し、目的に応じて使い分けましょう。
ホットウォレット
ホットウォレットはインターネットに接続された状態で暗号資産を保管するウォレットです。便利性が高く、リアルタイムでの送金や受け取りが可能です。
オンラインであるため使用する上でセキュリティリスクも伴います。代表的なホットウォレットはMetaMask、Phantom Walletです。悪意のあるスマートコントラクトを承認することで、ウォレット内の資産が失われる可能性があります。
コールドウォレット
コールドウォレットはインターネットから切断された状態で暗号資産を保管するウォレットです。ハッキングのリスクを大幅に減らすことができ、資産の長期保管に適しています。
資金移動に手間がかかるため、DApps※5での使用やトレードなどには適していません。代表的なコールドウォレットはLedgerやTrezorなどのハードウェアウォレットです。CEX※6も顧客の保有資産をコールドウォレットで分散管理するなどセキュリティ対策の一環として採用しています。
※5 DApps(Decentralized Applications)は分散型アプリです。ホットウォレットを接続して使用します。
※6 CEX(Centralized Exchanges)中央集権取引所のことです。日本ではbitFlyerやbitbankなどが有名です。
CEXの取り組み
- コールドウォレットの活用
- マルチシグネチャー技術の導入
- 二要素認証(2FA)設定
- 暗号化技術の使用
- 不正検出システム採用
CEXも有力な暗号資産の保管場所です。暗号資産取引所は顧客の資産を保護するために数々のセキュリティ対策を講じています。
コールドウォレットの活用
CEXは顧客の資産の大部分をインターネットから切断されたコールドウォレットに保管します。暗号資産をオフラインに移すことで、ハッキングのリスクを大幅に減らすことができます。
マルチシグネチャー技術の導入
マルチシグネチャー技術を採用するCEXも増えています。マルチシグネチャー技術を使用した場合、取引を承認するために複数の署名が必要となります。一つの秘密鍵が漏洩した場合でも資産は安全に保たれます。
二要素認証(2FA)設定
2FA※7はユーザーが自身の身元を証明するために二つの異なる方法を必要とします。メールやSMS、Google Authenticatorを多重使用してログインや取引を承認します。日本のCEXでも2FAを推奨するところが増えてきました。
※7 2FA(2-Factor Authentication)
暗号化技術の使用
個人情報や取引データを保護するために、トランスポート層セキュリティ※8やハッシュ関数などの暗号化技術を使用します。
※8 トランスポート層セキュリティはウェブサイトとユーザーの間の通信を暗号化するためのプロトコルです。
不正検出システム採用
多くのCEXは不審なログインアクションや異常な取引パターンを検出するためのシステムを導入しています。例えば、通常とは異なる地域からのログインが検出された場合、アラートメールをアカウントユーザーに送信します。
次世代ウォレットへの期待
暗号資産の保管リスクを低減するためにウォレット自体のイノベーションも進んでいます。セキュリティ強化を目指すスマートコントラクトウォレットとマルチシグネチャーウォレットを解説します。
スマートコントラクトウォレット
スマートコントラクトウォレットはスマートコントラクトの機能を利用してウォレットの操作を自動化することができます。複雑な操作をプログラムによって自動化したり、特定の条件下でのみトランザクションを許可するなど、高度な暗号資産管理が可能になります。
マルチシグネチャーウォレット
マルチシグネチャーウォレットは特定のトランザクションを承認するために複数の秘密鍵による署名が必要となるウォレットです。一つの秘密鍵が漏洩した場合でも、ウォレットの資産は安全に保たれます。
複数の人間が共有するウォレットを管理する際にも有効です。代表的なマルチシグネチャーウォレットとしてBitGoやElectrumがあります。
まとめ
HDウォレットによって様々な用途のウォレットを一つのマスターシードで管理できるようになります。用途別ウォレットにもそれぞれ秘密鍵が生成されるので、リスクをより分散させることが可能です。
本記事ではHDウォレットの概要や仕組み、具体的なHDウォレットプロジェクトを解説しました。暗号資産管理のセキュリティを追求する上で、お役に立てる情報となれば幸いです。