全4244文字

 ビットコイン(Bitcoin)をはじめとするブロックチェーン技術は現在も発展を続けており、ブロックチェーンや暗号資産(仮想通貨)を活用したビジネスやサービスが相次いで登場している。2019年6月には米フェイスブック(Facebook)が「リブラ(Libra)」通貨を発表し、ブロックチェーンに対する世の中の注目度もさらに高まっている。

 暗号資産が今後、より一層世の中に普及していくとすれば、暗号資産の管理方法として取引所に預けるだけではなく、コンシューマー自身が管理するケースも増えていくのではないだろうか。

 第3回の本稿では、ブロックチェーン技術における鍵管理について、コンシューマー自身で鍵管理を行うケースにフォーカスし、求められるセキュリティー対策や運用設計について解説する。

ブロックチェーンにおける鍵の役割

 最初に、ブロックチェーンネットワークにおける暗号資産の送金の流れを簡単に説明しておこう。

トランザクション(Tx)の伝搬
トランザクション(Tx)の伝搬
[画像のクリックで拡大表示]

 まず暗号資産の送金元が、送金先や送金額などを指示するトランザクションデータを作成する。次に、自身の秘密鍵で送金用トランザクションに対して署名し、署名済みトランザクションとしてP2Pネットワークに伝搬させる。

 伝搬したトランザクションを受け取ったP2Pノードは、送金元の公開鍵による署名検証など、受け取ったトランザクションが特定の条件を満たしているかを検証し、検証に成功した場合のみ隣接ノードにトランザクションを伝搬させる。最終的にトランザクションは複数の検証者によって検証された後ブロックに取り込まれ、ブロックはネットワークを伝搬して各ノードの分散台帳に記録される。

 このように、暗号資産の送金には公開鍵暗号方式(秘密鍵・公開鍵)によるデジタル署名が利用されている。所有資産の移動に必要な秘密鍵は、文字通り資産の所有者本人だけが知る秘密の情報である。

 もしこの情報が本人以外に漏洩した場合、その秘密鍵にひも付く全資産が窃取される可能性がある。秘密鍵を紛失した場合は、その資産は実質塩漬け状態となる。ブロックチェーンにおける鍵管理において、秘密鍵の管理が最重要ポイントであることは言うまでもない。

ウォレットとニモニックコード

 秘密鍵を保管するものを「ウォレット」と呼ぶ。ハードウエア型やクライアントアプリケーション型など、様々な種類のウォレットが存在している。

 一般的に公開されているウォレットの多くは、ウォレット自身に秘密鍵を生成する機能がある。秘密鍵の生成方式にはいくつかあるが、HDウォレット(階層的決定性ウォレット)と呼ばれる方式が主流である。

 HDウォレットは秘密鍵の生成元となるシードを、人間が理解しやすい複数の単語で構成したニモニックコード(リカバリーシード)で表現する。このためニモニックコードさえあれば同じ秘密鍵を復元可能である。以下に、ニモニックコードから秘密鍵を生成する際のイメージを簡略化して記載する。

ニモニックコードから秘密鍵を生成
ニモニックコードから秘密鍵を生成
[画像のクリックで拡大表示]

 また明確な線引きは難しいが、秘密鍵をオンライン環境下で管理するものをホットウォレット、オフライン環境下で管理するものをコールドウォレットと呼ぶ。

コンシューマー自身で行う鍵管理

 暗号資産の鍵管理において重要な一要素として、秘密鍵を管理するウォレットの堅牢(けんろう)性が挙げられる。

 攻撃者がウォレットに不正にアクセスできた場合、秘密鍵を窃取され、不正送金される可能性がある。特にホットウォレットの場合、インターネット経由で攻撃を受ける可能性が高い。このため、多額の暗号資産を保有する場合はコールドウォレットを利用したほうがよいであろう。

 コールドウォレットとしてよく利用されているものに、専用のデバイス内に秘密鍵を保管するハードウエアウォレットがある。送金の際はウォレットデバイスをパソコンなどに接続し、トランザクションの署名をデバイス内で行う。秘密鍵をデバイス外に出さないため、秘密鍵が直接抜き取られる可能性は極めて低い。