Zelcore
Z
Zelcore TeamMulti-Asset Crypto Wallet & Web3 Ecosystem

マルチチェーンのカストディ問題 — 1つのシードで多数の台帳

12分で読めます
多数の台帳に対し、1つのシードを使うマルチチェーンのカストディ問題

紙に書いた12語または24語をバックアップし、暗号資産は安全だと安心しているかもしれません。しかし、その紙が守るのは1つのアカウントだけではありません。ウォレットが対応するすべてのブロックチェーン上の、すべてのアカウントを守ります。Zelcoreの場合、同時に80以上のチェーンが対象です。なぜそうなるのか、そしてカストディの判断にどのような意味を持つのかを正確に理解することが、セルフカストディのセキュリティを考えるうえですべての基礎になります。

シードフレーズが鍵の世界を符号化する仕組み

シードフレーズはランダムな単語のように見えますが、実際には生のエントロピーを正確に符号化したものです。形式を標準化したBitcoin Improvement ProposalであるBIP-39は、ちょうど2,048語からなる英語の単語リストを定めています。各単語は11ビットの情報を符号化するため、飾りの単語はありません。フレーズ内のすべての単語が特定のデータを担います。12語のフレーズは128ビット、24語のフレーズは256ビットのエントロピーを符号化します。

ニーモニックフレーズそのものは暗号学的なシードではありません。鍵を導出する前に、ウォレットはニーモニックをPBKDF2-HMAC-SHA512に通します。これは計算コストの高い鍵導出関数で、反復回数は2,048回です。その出力は512ビットのバイナリ値、つまり実際のシードです。このストレッチングにより、攻撃者が一部の単語を推測できたとしても、総当たり攻撃は現実的ではありません。

重要な点として、任意のパスフレーズ(「25番目の単語」と呼ばれることもあります)を追加すると、PBKDF2関数にそのパスフレーズが組み込まれ、まったく異なる512ビットのシードが生成されます。同じ12語でも、パスフレーズが違えば完全に別のウォレットが開きます。両者に関係は一切ありません。パスフレーズを忘れると、その資金は永久に失われます。

導出ツリー:1つのシードから無数のアカウントへ

512ビットのシードは、BIP-32で定義された階層的決定性(HD)ウォレットツリーのルートです。ウォレットはシードのバイト列をHMAC-SHA512に入力します(キーには文字列「Bitcoin seed」をそのまま使用します)。512ビットの出力は2つの等しい部分に分割され、256ビットのマスター秘密鍵と256ビットのマスターチェーンコードになります。ウォレット内のすべての子鍵、孫鍵、アドレスは、この2つの値からHMAC-SHA512を繰り返し実行して導出されます。

BIP-44はツリーのたどり方を標準化し、次の形式の導出パスを定めています:m/purpose'/coin_type'/account'/change/index。各セグメントには固有の役割があります。

アポストロフィは強化導出を表します。これは、侵害された子鍵から兄弟鍵や親鍵を導出できないよう、数学的に防ぐ一方向の処理です。そのため、Ethereumアカウントの鍵が漏れても、同じマスターから導出されているBitcoinアカウントの鍵が漏れることはありません。

Zelcoreでは、1つのシードフレーズがBTC、ETH、SOL、ADAをはじめとする多数の資産を同時に管理します。それぞれが独自のcoin_typeサブツリーに属し、同じ512ビットのルートから決定論的に導出されます。

この攻撃の仕組み:すべてのチェーンに共通する単一障害点

鍵の導出は決定論的で標準化されているため、シードフレーズを持つ人は誰でも、対応するすべてのチェーンの秘密鍵を再生成できます。これは設計上の欠陥ではなく、設計そのものです。セキュリティモデルは、シードフレーズを他人に見られないことを前提としています。

その実際の影響は深刻です。シードフレーズが漏れると、Bitcoinだけでなく、Ethereum、Solana、Cardanoや、ほかのすべての資産も同時に攻撃者へ知られる可能性があります。Bitcoinのリカバリーフレーズを誰かに撮影された時点で、Solanaの保有資産も危険にさらされます。攻撃者はSOLを保有していることさえ知らないかもしれません。

シードフレーズを失うと、逆の問題が起こります。チェーンごとの代替手段も、アカウント復旧も、カスタマーサポートへのエスカレーション手段もありません。シードを生成したエントロピーは数学的に元に戻せません。紙を失うことは、すべてのチェーンを一度に失うことです。

そのため、ハードウェアウォレットはセキュアエレメント内でシードフレーズを生成し、接続先のコンピューターに決して公開しません。シードはオフラインで生成され、そのままデバイス内に保たれます。

シードでは保持されないチェーン固有のメタデータ

シードフレーズから復元すると、秘密鍵と標準的な導出パスは再生成されますが、すべての情報が保持されるわけではありません。次の種類のデータは、シードから再構築できない場所にあります。

実用上の推奨事項として、シードフレーズだけでなく、使用したウォレットソフトウェアと導出パスも記録しておきましょう。シードフレーズだけでは、数か月後や数年後の復元に必要な情報が十分でない場合があります。

アドレスの再利用とチェーンをまたぐ識別

BIP-44のcoin_typeによって、同じシードから導出されたBitcoinアドレスとEthereumアドレスは数学的に無関係です。ルートは共有しますが、公開鍵は共有しません。一方、Ethereum、BNB Chain、Polygon、Avalanche C-Chain、BaseなどのEVM互換チェーンは、すべてcoin_type = 60を共有します。そのため、同じ0x...アドレスがすべてのEVMチェーンに現れます。

これは意図された仕様ですが、チェーンをまたいで同一性を結び付けることになります。Ethereumアドレスを知っている人は誰でも、同じアドレスを使って、すべてのEVMチェーン上の取引履歴を調べられます。プライバシーを重視する場合は、資産をまとめる前にこの点を理解しておく必要があります。

BitcoinのUTXOモデルでは、従来、取引ごとに新しいアドレスを生成することが推奨されており、HDウォレットではこれが自動化されています。Ethereumのアカウントモデルではアドレスを切り替えることが少なく、多くのユーザーはアカウントごとに1つのアドレスを使い続けています。Bitcoinアドレスを多くの取引で再利用すると、入力を共通の所有者に結び付けやすくなり、プライバシーが損なわれます。

高額資産を保管する場合は、シードを分けることを検討してください。たとえば、リスクの高い取引と長期保有で別々のシードフレーズを使う方法や、大きなポジションにはインターネット接続された機器に一度も接続したことのないエアギャップ端末を使う方法があります。

自分を守る方法:単一障害点への対策

シードフレーズは、最も強力な復元手段であると同時に、最も危険な単一障害点でもあります。保護するための具体的な手順は次のとおりです。

  1. 紙ではなく金属に記録する。 ステンレス鋼やチタン製のバックアッププレートなら、火災や洪水にも耐えられます。紙はそうではありません。
  2. デジタル化しない。 スクリーンショット、クラウド上のメモ、パスワードマネージャー、入力したコピーはすべて避けてください。シードフレーズがネットワークに接続されたデバイスに一度でも触れると、攻撃対象領域が大幅に広がります。
  3. 多額の資金を預ける前に復元を確認する。 シードフレーズだけを使って新しいデバイスに復元し、正しく機能することと、想定したアドレスが生成されることを確認してください。
  4. Shamirの秘密分散(SLIP-39)を検討する。 SLIP-39は、シードをN個のシェアに分割し、そのうちM個で再構成できる規格です。これにより、1か所に秘密全体を保管することなく、シェアを地理的に分散できます。たとえば、1つは自宅の金庫に、1つは信頼できる人に預け、もう1つは銀行の貸金庫に保管できます。
  5. パスフレーズのトレードオフを理解する。 強力なパスフレーズ(25番目の単語)を設定すると、もっともらしい否認が可能になります。パスフレーズなしのウォレットには少額のダミー資金を置き、実際の資産にはパスフレーズを使わないとアクセスできないようにします。一方で、リスクも同じです。パスフレーズを忘れると、シードそのものを失った場合と同じく、永久に復元できなくなります。

複数のチェーンに資産を保有しているZelcoreの暗号資産ウォレットユーザーにとって、最後の点は特に重要です。復元テストでは、最もよく使うチェーンだけでなく、日常的に利用するすべてのチェーンを確認してください。

要点


関連記事

「秘密鍵を持たなければ、コインも持っていない」—取引所が実際に保有しているもの

「秘密鍵を持たなければ、コインも持っていない」—取引所が実際に保有しているもの

取引所に表示されるIOU(債務の承認)残高と、ブロックチェーン上の実際の所有権の違いを解説します。FTXやMt. Goxの破綻を例に、「カストディアル」とは実際に何を意味するのかを示します。

9分で読めます
シードフレーズ:すべてのアカウントを守るマスターキー

シードフレーズを解説:仕組み、安全な保管方法、復元できないもの

シードフレーズ完全ガイド:BIP-39による符号化の仕組み、BIP-32/44で各チェーンのすべての鍵を導出する方法、安全な保管方法、復元できるものとできないもの、復元時に初めて明らかになる失敗例を解説します。

19分で読めます
25番目の単語:パスフレーズで加わる第2の層

25番目の単語:パスフレーズで加わる第2の層

BIP-39のパスフレーズが完全に独立した隠しウォレットを作る仕組み、シードフレーズの物理的な盗難に対する最も強力な防御となる理由、深刻な失敗のパターン、そしてそのリスクを負う価値があるケースを解説します。

12分で読めます

ニュースレターに登録

月に一度、Zelcoreの最新情報をお届けします。スパムは送りません。

ニュースレターに登録