シードフレーズあり・なしで秘密鍵を作る方法

Author logo
Patrick Dike-Ndulue
Post image

主要な洞察

多くの仮想通貨ウォレットは、秘密鍵のバックアップとしてシードフレーズ(単語のセット)を利用しますが、これが漏洩すると全資産を失うリスクがあります。Tangem Walletは、シードフレーズを使わず、ウォレットカード内のチップでマスターキーを安全に生成・保管することで、バックアップの紛失や盗難リスクを低減。代わりに追加カードによるバックアップで、より安全かつ使いやすい資産保護と復元方法を実現しています。

通常、仮想通貨ウォレットを作成するとシードフレーズが生成されます。資産を後から復元するためには、このフレーズを覚えておくか、必ず書き留めておく必要があります。しかしTangem Walletではシードフレーズがありません。どのような仕組みで、なぜシードフレーズがあまり安全でないと考えるのでしょうか。
 

まず、シードフレーズとは何かを知っておきましょう。簡単に言えば、ニーモニックフレーズ(記憶しやすい単語の並び)は、ユーザーの秘密鍵と公開鍵をエンコードするものです。このランダムな単語のセットから、毎回同じ鍵セットが生成される仕組みになっています。

仮想通貨ウォレットの「ツリー」構造

まずは仮想通貨ウォレットの仕組みを見てみましょう。大半のウォレットは階層的決定性(HD)ウォレットです。
 

仮想通貨ウォレットは、秘密鍵と公開鍵が「ツリー」状に連なり、さまざまなブロックチェーン上の資産を管理できる仕組みです。このツリーはエントロピー(乱数)によって成長します。根(ルート)がシード、幹が拡張鍵ペア(秘密鍵と公開鍵)、枝が各ブロックチェーン上の多数の鍵ペアやアドレスです。
 

各子鍵はさらに自分の鍵を生成でき、そのまた子も同様に生成できるため、階層構造(ツリー)になります。これが「階層的」と呼ばれる理由です。

また、これらは「決定性」でもあります。つまり、同じニーモニックフレーズからは必ず同じツリー構造の鍵が生成されるため、事前に結果が決まっています。
 

シードフレーズを使うHDウォレットの秘密鍵と公開鍵

ニーモニックフレーズ(コード)は乱数から生成された単語のセットで、多くの場合、秘密鍵そのものではなくこのコードがバックアップとして使われます。一般的にはシードフレーズとも呼ばれ、鍵のバックアップコピーとして機能します。

仕組み

仮想通貨ウォレットを作成する際、どのようにニーモニックフレーズが作られるのでしょうか? 

1. まず、乱数生成器がエントロピー(ランダムな数値)を作ります。

エントロピーとは、過去にも未来にも誰にも生成されない非常に大きなランダム数値のことです。 

2. 生成されたエントロピーは、独自の辞書から単語列に変換されます。これがニーモニックフレーズです。

3. ニーモニックフレーズはシードに変換されます。この2つは混同しないでください。シードはニーモニックフレーズをハッシュ関数で変換したものです。

ハッシュ関数とは、どんなサイズのデータも一定サイズのデータ列に圧縮する数学的アルゴリズムです。入力データを「メッセージ」、出力データを「ハッシュ値」と呼びます。ハッシュ関数の特徴は「一方向性」で、ハッシュ値から元のデータを復元することはできません。また、入力データが同じならハッシュ値も必ず同じになります。

4. シードからマスターキー(拡張マスターキー)が計算されます。これがシードフレーズから最初に得られる鍵です。この変換もハッシュ関数で行われます。

5. マスターキーから拡張秘密鍵(Xprv)が生成されます。

6. 拡張秘密鍵から拡張公開鍵(Xpub)が生成されます。

こうして、さまざまなブロックチェーン用の大量の子鍵チェーンを生成できるマスター鍵ペアが完成します。これでウォレットを使い、コインやトークンの保管・送受信・交換などが可能になります。

501_232.png

ウォレットに何かあった場合、すべての鍵階層を復元し全てのコインやトークンに再度アクセスするには、ニーモニックフレーズが必要です。そのため、必ず紙に書き留めて安全な場所に保管しましょう。

シードフレーズの弱点とは?

ニーモニックフレーズがあれば、ウォレットを紛失・盗難・故障した場合でもすぐに仮想通貨を復元できます。一方で、このフレーズが悪意ある第三者の手に渡れば、すべての資産を盗まれる恐れもあります。
 

少し考えてみてください。仮想通貨ウォレットの開発者たちは、ハード・ソフト両面で最高レベルのセキュリティを目指し、複雑な数学的アルゴリズムや暗号化技術を駆使して資産を守っています。
 

しかし、あなたの仮想通貨の鍵は、紙切れに書かれているだけです。たった数十個の単語が無防備な紙に残され、それが全資産の「マスターキー」になります。写真を撮る・書き写す・記憶するだけで簡単に漏洩するリスクがあり、しかも本人が気付かないことも。さらに、紙は紛失や破損のリスクも高いです。
 

フレーズを暗号化したり、複数の場所に分散保管したり、銀行の貸金庫に預けたりする方法もありますが、実際にそこまで徹底している人はごく少数です。
 

以上から合理的に言えるのは、「無防備なシードフレーズ」は現行の仮想通貨ウォレットにおける重大な弱点であり、深刻なセキュリティホールだということです。
 

シードフレーズなしのTangem Walletの秘密鍵・公開鍵の仕組み

Tangem Walletも他のウォレット同様、階層的決定性ウォレットですが、最大の違いは「全資産のマスターキーを紙に書かれた無防備なニーモニックフレーズとして残さない」点です。
 

他のウォレットと同じアルゴリズムでマスターキーや拡張鍵(公開鍵・秘密鍵)、各種アドレスを生成しますが、ニーモニックフレーズは作成しません。シードはエントロピーから直接生成されます。
 

カードチップが鍵を生成し、そのままチップ内に保管されます。カードを盗まれても、Tangemの社員であっても、所有者本人であっても、誰も中身にアクセスできません。ニーモニックフレーズによるバックアップは不要で、Tangem Walletセット内の他のカード(1枚または2枚)がバックアップ役を果たします。スマートフォンでカード同士を同期してバックアップを作成する際、鍵は暗号化された通信で安全に転送されます。
 

バックアップが完了すると、2枚または3枚の同一ウォレットカードが手元に残ります。各カードは同じ鍵とパスワードで保護されています。全てを同じ場所に保管せず、複数の安全な場所に分けて保管するのがおすすめです。1枚紛失しても、もう1枚で復元できます。2枚とも失うとバックアップがなくなるので危険です。その場合は新しいTangem Walletセットを購入し、資産を移しましょう。
 

シードフレーズなしでウォレットを使う方法は?と疑問に思うかもしれません。手順はとてもシンプルです: 

  • 仮想通貨を購入したい場合、モバイルアプリで取引内容を設定し、スマートフォンでカードをスキャンし、パスワードを入力します。
     
  • スマートフォンがNFC経由でチップにデータを送信します。
     
  • チップがパスワードを確認し、秘密鍵で取引に署名し、デジタル署名をアプリに返します。
     
  • アプリが署名済みトランザクションをブロックチェーンへ送信します。

Tangemがサービス終了したら?

もしサーバーが停止したり、アプリがGoogle PlayやApp Storeから消えた場合はどうなるでしょうか。答えは簡単です:何も問題ありません。Tangem Walletはそのまま使い続けられます。詳細は以下の記事をご覧ください:Tangem WalletがTangemなしで動作する仕組み」。

Author logo
著者 Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
レビュー担当者 Rukkayah Jigam

Writer & editor covering digital assets and product updates.