最近、ジャッキー・チェンの絶賛された新作映画『チェイシング・シャドウズ』を観ました。その中で興味深いシーンがありました。数百億香港ドル相当の暗号化資産が12語のニーモニックウォレットに保管されており、エンディングでは最後の単語だけが明かされるというものでした。
読んで試してみたところ、10桁目と12桁目は標準的な記憶術辞書には載っていないことがわかりました。どうやら脚本家は、ストーリー展開に合わせてウォレットを回収して詐欺を働くのを防ぐために、意図的にこのように書いたようです。実際、このチェーン上では同様の詐欺が珍しくありません。
詐欺師は、残高のあるウォレットアドレス(通常はTronチェーン上のオーナーメカニズムを使用)を故意に漏洩し、人々を騙してガスを送金させ、資金が振り込まれるのを待たせます。一度送金された資金は、二度と回収できません。
しかし、ここで興味深いのは、映画では最後の単語だけが欠けていると主張していることです。実際には、ニーモニックはBIP 39標準に準拠しており、その単語数は2048語しかありません。つまり、最後の単語を総当たり攻撃しても、解の候補は2048通りしかありません。範囲をさらに絞り込むと、例えば映画のように最初の文字が「es」の場合、可能性はさらに少なくなり、1分以内に解くことができます。
しかし、映画以上に重要な疑問は、 「ニーモニック、秘密鍵、公開鍵の関係は一体何なのか?」ということです。ニーモニックを失うことは、なぜすべての資産を失うことを意味するのでしょうか?
1. ニーモニック: 秘密鍵: 公開鍵/アドレス = "キーチェーン": "キー": "番地"
ニーモニックは、BIP 39標準に準拠したバックアップ手法です。2048語の英単語からランダムに選択された12語、18語、または24語の単語をアルゴリズムによって組み合わせて構成されます。
このニーモニックセットがPBKDF 2アルゴリズムによって処理された後、シードが生成されます。このシードは、BIP 32/BIP 44などのパス標準に従って一連の秘密鍵を導出し、これが一連の公開鍵/アドレスに対応します。
ニーモニックのセット→一連の秘密鍵を生成→一連の公開鍵を生成→一連のアドレスに対応
言い換えると:
- ニーモニックはキーチェーンであり、多くの場合、秘密鍵と1対多の関係を持ちます。理論上は、ニーモニックのセットから数千の秘密鍵を導出できます。
- 秘密鍵 = 鍵、各秘密鍵はアドレスを使用する権利に対応します。
- 公開鍵/アドレス = 家番号。公開することができ、他の人がそれを使用してあなたに送金することができます。
したがって、ニーモニックを「キーチェーン」と考えることができます。そして、各秘密鍵は、ドアを開けることができる鍵の 1 つのようなもので、ウォレット アドレスに対する署名と制御の証明に使用されます。トランザクションを開始するときは、秘密鍵を使用して署名し、ネットワーク全体に「この転送は私によって承認されています」と伝えます。
2. 独自の記憶術フレーズを選択できますか?
「自分で12個の単語を考えればいいのでは?」と思っている方もいるかもしれません。例えば、誕生日、好きな英語の単語、アイドルの名前など。こうすることで、よりパーソナルな意味になります。
答えは「はい、しかし非常に危険です」です。
コンピュータによって生成される乱数は完全にランダムであり、人間は単語を選択するときにほぼ必ずパターンを持っているため(一般的な単語、慣用句、順序の好み)、これにより検索空間が大幅に狭まり、記憶術が推測されやすくなります。
「疑似乱数ウォレット」に関連するセキュリティインシデントは過去にも発生しています。一部のウォレットは、ニーモニック生成時に疑似乱数アルゴリズムを使用していましたが、その結果、エントロピーが著しく不足し、ハッカーによる総当たり攻撃によってコードを解読することができました。2015年には、ハッカー集団「Blockchain Bandit」が、欠陥のある乱数生成器とプログラムコードの脆弱性を悪用し、脆弱な秘密鍵を体系的に探し出し、70万件以上の脆弱なウォレットアドレスをスキャンして5万ETH以上を盗み出すことに成功しました。
もちろん、一部のオタクはサイコロ(十分に均一な目であることを確認してください)を使って乱数を振り、それをBIP 39語彙ライブラリにマッピングします。これは手動セキュリティと見なされますが、ほとんどの人にとってはそこまで複雑にする必要がなく、ミスが発生しやすいです。
3. ヴィタリック・ブテリンや他の大富豪の財布を暴力的に暴露することはできますか?
以前、こんな疑問を抱いていました。いつかウォレットアドレスを生成して、そこに何百万ETHもあるのを見て、経済的に自由になり、大金持ちから盗むことができるようになる、そんな想像をしていました。
正直に言うと、考えただけでも魅力的ですが、現実は、その可能性はほぼゼロです。
なぜでしょうか?それは、記憶術の組み合わせの数があまりにも膨大で、人間の想像を超えているからです。
- 12語: 有効な組み合わせの数は約2¹²⁸ ≈ 3.4 × 10³⁸
- 24語: 有効な組み合わせの数は約2²⁵⁶≈1.16 × 10⁷⁷
この桁数はどういう意味ですか?
地球上には無数の砂粒があることは誰もが知っていますが、科学者たちはそのおおよその値を推定しています。地球上のすべての海岸と砂漠を合わせると、砂の総数は約7.5×10¹⁸個になります。これはまた、次のようなことを意味します。
- 12 個の単語の有効な組み合わせの数は、地球上の砂粒の総数の 4.5 × 10¹⁹ 倍に相当します。
- 24 個の単語の有効な組み合わせの数は、地球上の砂粒の総数の 1.5 × 10⁵⁸ 倍です。
つまり、地球上のすべての砂粒が「新しい地球」となり、それぞれの新しい地球にはビーチと砂浜があるようなものです。そして、あなたは一度に、これらの砂粒の中から、事前にマークした砂粒をランダムに見つけ出さなければなりません。
これは人間の想像をはるかに超えたものです。
したがって、ウォレットをブルートフォース攻撃で破られる確率は「極めて低い」わけではなく、既知の物理学と計算能力の下ではゼロに等しい。 「データベースをクラック」して金持ちになりたいなら、当選確率がはるかに高い宝くじを買うのと同じだ。
映画の設定に戻りましょう。もし誰かが本当に 1 つの記憶術語だけを必要としているなら、ブルート フォース トラバーサルでそれを試すことは確かに可能です。
最後に、ウォレット/ニーモニック/秘密鍵に関するセキュリティのヒントをいくつか紹介します。
- MetaMask、Trust Wallet、SafePal など、時間と市場によってテストされ、オープンソース コード監査を備えた非管理型ウォレットの使用を優先します。可能であれば、ハードウェア ウォレットを直接使用します。
- ニーモニックや秘密鍵のスクリーンショットを撮ったり、ネットワーク ドライブに保存したり、コピーして貼り付けたり、他の人に送信したりしないでください。
- ペンと紙でコピーし(防湿性、耐火性、耐腐食性を備えたステンレス製の記憶ボードの使用を検討することもできます)、安全な場所に保管し、2〜3 か所にバックアップ コピーを作成するのが最適です。
- 公開鍵/アドレスはあなたの家の番号なので、安心して公開できますが、フィッシングリンクを識別するように注意してください。
- ウォレットを管理するにはクリーンなデバイスを使用し、出所不明のプラグインやアプリのインストールを避けることをお勧めします。
- 覚えておいてください:記憶術のフレーズを求める人は 100% 詐欺師です。
