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

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枚紛失しても、2枚目があれば復元できます。ただし2枚目も失うとバックアップがなくなり危険な状態です。その場合は新しいTangem Walletセットを購入し、資産を移してください。
 

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

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

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

もし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.