EVMアドレスのセキュリティ:Ethereum、Base、Polygon等
目次
Ethereum Virtual Machineは支配的なスマートコントラクトプラットフォームとなり、そのアドレス形式はEthereum自体をはるかに超えて広がっています。Polygon、Arbitrum、Optimism、Base、BNB Chain、Avalancheはすべて同じアドレスシステムを共有しています。この普遍性は強力ですが、すべてのユーザーが理解すべきセキュリティ上の微妙な違いをもたらします。
このガイドでは、EVMアドレスの内部動作、単一の秘密鍵がすべてのEVMチェーンの資産を制御する理由、チェックサムがタイプミスからどのように保護するか、そして資金損失につながる最も一般的なミスを解説します。
EVMアドレスは普遍的¶
すべてのEVM互換ブロックチェーンは同じアドレス形式を使用します:0xプレフィックス付きの40文字の16進数文字列です。0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18というアドレスは、Ethereum、Polygon、Arbitrum、Optimism、Base、BNB Chain、Avalanche、そして現存するまたは将来登場するすべてのEVMチェーンで有効です。
この普遍性は偶然ではありません。EVMアドレスの導出方法から直接的に生じる結果です。プロセスはどこでも同じように機能します:
- ランダムな256ビットの秘密鍵を生成する。
- secp256k1楕円曲線を使用して公開鍵を計算する。
- 公開鍵のKeccak-256ハッシュを取得する(0x04プレフィックスバイトを除外)。
- ハッシュの最後の20バイト(40個の16進文字)を保持する。
0xを先頭に付ける。
すべてのEVMチェーンがこの正確な導出に従うため、同じ秘密鍵は常にすべてのチェーンで同じアドレスを生成します。アドレス自体にチェーン固有の要素はありません。アドレスは純粋に秘密鍵とsecp256k1曲線の関数です。
これはBitcoinアドレスの動作とは根本的に異なります。Bitcoinにはバージョンバイトとチェーン固有のデータをエンコードする複数のアドレス形式(Bech32、Base58Checkなど)があります。Bitcoinメインネットアドレスはテストネットアドレスと視覚的にも構造的にも明確に区別されます。EVMチェーンにはこのような区別がなく、便利であると同時にリスクの原因にもなっています。
1つの秘密鍵、複数のチェーン¶
MetaMask、ハードウェアウォレット、またはSafeSeedのEthereum Seed Phrase GeneratorでEthereumウォレットを作成すると、シードフレーズはすべてのEVMチェーンで同時に同じアドレスへのアクセスを提供します。これは機能ですが、重要なセキュリティ上の意味を持ちます。
利点: すべてのEVMチェーンの資産を制御するために、1つのシードフレーズまたは秘密鍵を保護するだけで済みます。Polygon、Arbitrum、Baseのための別々のウォレットは必要ありません。シードフレーズと秘密鍵の違いを理解すると、この関係が明確になります。
リスク: 秘密鍵が漏洩すると、攻撃者はすべてのEVMチェーンの資金に一度にアクセスできます。単一のシードフレーズ漏洩は、EthereumのETH、PolygonのMATIC、ArbitrumのARB、そしてそのアドレスが価値を保持する他のすべてのEVMチェーンのトークンを失うことを意味します。漏洩の影響範囲はチェーン固有の鍵を使用する場合よりはるかに大きくなります。
この共有鍵モデルは、導出パスが重要であることも意味します。BIP44で定義された標準的なEthereum導出パスはm/44'/60'/0'/0/0です。ほとんどのウォレットはすべてのEVMチェーンにこの同じパスを使用するため、ネットワーク間でアドレスが一貫しています。一部のウォレットはチェーン固有の導出パスを提供しますが(例えばSLIP44コインタイプを使用したPolygon用のm/44'/137'/0'/0/0)、実際にはあまり一般的ではありません。非標準の導出パスを使用した場合は、必ず記録してください。HDウォレットと導出パスの詳細分析で技術的な詳細を説明しています。
鍵生成への実際的な示唆: Ethereumウォレットを生成するとき、EVMエコシステム全体のウォレットを生成していることになります。それに応じたセキュリティ対策を施してください。暗号学的に安全なソースから適切なエントロピーを使用し、大きな価値を保有する場合はオフラインで生成し、コールドストレージのベストプラクティスに従ってください。
EIP-55混合ケースチェックサム¶
EVMアドレスセキュリティのより微妙な側面の1つがチェックサムメカニズムです。Ethereumアドレスは16進数で、0-9とa-fの文字を使用します。16進数は大文字小文字を区別しないため、0xab12cdと0xAB12CDは同じアドレスを表します。これにより、タイプミスを検出する組み込みの方法がないという問題が生じます。
Vitalik Buterinが作成したEIP-55は、アドレスの大文字化にチェックサムをエンコードすることでこの問題を解決しました。仕組みは次のとおりです:
- 小文字のアドレス(
0xプレフィックスなし)を取得する。 - この小文字アドレスのKeccak-256ハッシュを計算する。
- アドレスの各文字について:ハッシュの対応するニブルが8以上の場合、大文字にする。そうでなければ小文字のままにする。
結果は0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAedのようなアドレスで、大文字化パターンがチェックサムとして機能します。いずれかの文字を変更すると、大文字化パターンが一致しなくなり、適切に実装されたウォレットはそのアドレスを無効としてフラグを立てます。
セキュリティ上重要な理由:
- クリップボードハイジャックマルウェアがコピーされたアドレスを攻撃者のアドレスに置換できます。置換アドレスのチェックサムが間違っていれば、良いウォレットは警告します。
- 手動転記エラー(手入力でアドレスを入力)は、資金がブラックホールに送信される前にキャッチされます。
- アドレスポイズニング攻撃(攻撃者が類似アドレスから少額取引を送信する)は、チェックサムが衝突アドレスを見つけにくくするため、部分的に軽減されます。
SafeSeedのEthereum Address ValidatorでEVMアドレスのEIP-55チェックサムが正しいか検証できます。大きな取引を送信する前に必ずアドレスを確認してください。チェーン間のアドレス形式の違いについては、暗号資産アドレス形式ガイドをご覧ください。
重要な注意事項: EIP-55チェックサムはブロックチェーン自体ではなくウォレットによって適用されます。Ethereumプロトコルは大文字小文字に関係なく、あらゆる20バイトアドレスへの取引を受け入れます。ウォレットソフトウェアがEIP-55検証を実装していない場合、この保護は失われます。常にチェックサム検証を行うメンテナンスの行き届いたウォレットソフトウェアを使用してください。
よくあるクロスL2ミス¶
レイヤー2ネットワークとEVMサイドチェーンの普及は、新しいカテゴリのユーザーエラーを生み出しました。これらを理解することで、コストの大きいミスを防げます。
間違ったネットワークでトークンを送信¶
最も一般的なミス:ArbitrumでUSDCを送ろうとして誤ってEthereumメインネットで送信したり(はるかに高いガス代を支払う)、さらに悪いことに受信者がアクセスできないネットワークのアドレスに送信したりすることです。アドレスがチェーン間で同一であるため、ウォレットがこのエラーを常に検出できるとは限りません。
予防策: 取引に署名する前に、必ずウォレットのネットワーク選択を確認してください。EVMネットワークを相互に区別する技術的識別子であるチェーンIDを再確認してください。
対象チェーンに存在しないコントラクトアドレスへの送信¶
Ethereumの0xABC...にデプロイされたスマートコントラクトがPolygonには存在しないかもしれません。コントラクトがデプロイされていないチェーンのコントラクトアドレスに直接トークンを送信すると、誰も制御しない外部所有アドレス(EOA)にトークンが送られます。永久に失われます。
予防策: コントラクトに送信する場合、使用している特定のチェーンにコントラクトがデプロイされていることを確認してください。Etherscan、Polygonscan、Arbiscanなどのブロックエクスプローラーがそれぞれのチェーンをカバーしています。
ブリッジ関連の損失¶
EVMチェーン間の資産移動にはブリッジが必要であり、ブリッジは暗号資産史上最大のエクスプロイトの原因となってきました。共有アドレス形式はブリッジングをシームレスに感じさせますが、基盤となるメカニズムは決して単純ではありません。
予防策: 強固なセキュリティ実績を持つ確立されたブリッジを使用してください。メール、DM、または見慣れないウェブサイトで見つかったリンクを通じてブリッジングしないでください。公式ドキュメントを通じてブリッジコントラクトアドレスを確認してください。
アドレスポイズニング攻撃¶
攻撃者はブロックチェーン上のあなたの取引を監視し、あなたのアドレスに視覚的に似た(最初と最後の数文字が一致する)アドレスから少額を送信します。後で取引履歴からアドレスをコピーするとき、誤って攻撃者の類似アドレスをコピーしてしまう可能性があります。
予防策: 取引履歴からアドレスをコピーしないでください。常にアドレス帳を使用するか、ウォレットから新しいコピーを生成してください。送信前にSafeSeedのEthereum Address Validatorなどのツールでアドレスを検証してください。最初と最後の4文字のみが一致するアドレスには特に注意してください。シードフレーズを狙う一般的な暗号資産詐欺を理解すると、より広い攻撃パターンを認識するのに役立ちます。
EIP-55警告の無視¶
一部のユーザー、特にコマンドラインツールや生のトランザクションを通じてDeFiプロトコルとやり取りするユーザーは、チェックサム検証をバイパスします。これは重要な安全ネットを除去します。
予防策: 常にチェックサム付きアドレスを使用してください。ツールが小文字アドレスを提供する場合、使用する前にチェックサム形式に変換してください。
EVMアドレスの安全な生成¶
単一のEVMアドレスが複数のチェーンにわたる潜在的に多額の資産を制御することを考慮すると、生成プロセスは真剣に取り組む必要があります。
暗号学的に安全な乱数を使用¶
すべてのEVMアドレスのセキュリティは、秘密鍵を生成するために使用される乱数の品質から始まります。SafeSeedのEthereum Private Key GeneratorはWeb Crypto APIを使用してオペレーティングシステムの暗号乱数生成器からランダム性を取得し、サーバーに何も送信せずブラウザ内で完全に動作します。暗号資産におけるエントロピーの意味と鍵生成になぜ重要かをご覧ください。
高価値ウォレットはオフラインで生成¶
複数のEVMチェーンにわたって大きな価値を保持するウォレットを作成する場合、オフラインで生成してください。SafeSeedをダウンロードし、インターネットから切断し、シードフレーズを生成し、物理的に記録し、再接続前にブラウザを閉じてください。オフラインでEthereumウォレットを生成するステップバイステップガイドが全プロセスを案内します。
アドレスを正しく導出¶
BIP39のシードフレーズから生成する場合、Ethereumの正しい導出パスを使用していることを確認してください:m/44'/60'/0'/0/0。間違ったパスを使用すると有効なアドレスが生成されますが、シードフレーズから復元する際に通常のウォレットソフトウェアが見つけられないアドレスになります。資金は失われていないものの正しいパスを発見するまで欠落しているように見える、特にストレスの多い状況です。
入金前に検証¶
新しく生成されたアドレスに暗号資産を送信する前に、SafeSeedのEthereum Address Validatorで確認してください。EIP-55チェックサムが正しいことを確認してください。大きな金額を送金する前に、まず少額のテスト取引を送信して受信を確認することを検討してください。
セットアップを文書化¶
使用したウォレットソフトウェア、導出パス、ネットワークを記録してください。同じシードフレーズから複数のEVMチェーンに資産を保有している場合、どのチェーンにどの資産があるかを文書化してください。この情報は相続人のため、または何年も後にアクセスを復元する必要がある場合に重要です。
EVMチェーン間の共有アドレスモデルはエコシステムの最大の利便性の1つです。同時に、集中的な障害点でもあります。仕組みを理解し、チェックサム検証を尊重し、一般的なクロスチェーンミスを避け、鍵を安全に生成することで、不必要なリスクにさらされることなくマルチチェーンEVMの世界を最大限に活用できます。