アドレスポイズニング(Address Poisoning)は、アドレス汚染攻撃とも呼ばれ、人々の操作習慣を利用したオンチェーン攻撃です。攻撃者はあなたが普段使用するアドレスと非常によく似た偽のアドレスを生成し、さまざまな方法で取引履歴に紛れ込ませ、送金時に間違ってコピーするのを待ちます。この攻撃は2022年から大規模に出現し、現在も資産損失の重要な原因となっています。
アドレスポイズニング攻撃の仕組み
アドレスポイズニングの核心は「本物と見分けがつかない偽物」による欺瞞です。攻撃は段階的に行われます:
ステップ1:ターゲットの選定
攻撃者は自動化スクリプトでオンチェーントランザクションを監視し、頻繁に大口送金を行うアクティブなアドレスをターゲットとして特定します。
ステップ2:類似アドレスの生成
アドレス衝突ツールを使って、ターゲットアドレスと先頭と末尾の数文字が一致するアドレスを大量に生成します。例えば:
- 本物のアドレス:0x71C7abcd1234efgh5678F3
- 攻撃者のアドレス:0x71C7XXXXXXXXXXXX5678F3
ほとんどのウォレットはアドレスの最初の6文字と最後の4文字しか表示しないため、画面上では2つのアドレスが全く同じに見えます。
ステップ3:取引履歴の汚染
攻撃者は以下の方法であなたの取引記録に偽アドレスを埋め込みます:
- ゼロ値送金:偽アドレスから0トークンのトランザクションを送信
- 少額送金:極めて少額のトークン(0.001 USDTなど)を送信
- 偽装Transferイベント:特定のトークンコントラクトの機能を悪用し、「あなたが偽アドレスに送金した」という記録を偽造
ステップ4:収穫を待つ
これらの偽トランザクションがあなたの履歴に表示されたら、攻撃者は次の送金時にあなたが履歴からアドレスをコピーするのを待つだけです。偽アドレスを誤ってコピーして送金を確定すると、資金は失われます。
なぜアドレスポイズニングは効果的なのか?
理由1:操作習慣
人々は毎回完全なアドレスを新たに取得するのではなく、取引履歴から「使用済みの」アドレスをコピーしがちです。攻撃者はこの便利な習慣を的確に利用します。
理由2:アドレスの省略表示
インターフェースの見やすさのため、ウォレットやブロックチェーンエクスプローラーは通常、アドレスの先頭と末尾のみを表示します。攻撃者はこれらの表示部分を一致させるだけで済みます。
理由3:目視確認の困難さ
たとえアドレスを比較しようとしても、42文字の16進数文字列を人間の目で正確に確認するのは極めて難しく、特に中間部分が隠されている場合はなおさらです。
理由4:極めて低い攻撃コスト
類似アドレスの大量生成とゼロ値トランザクションの送信コストは非常に低く、BSCやPolygonなどのガス代が安いチェーンでは特にそうです。攻撃者は数千のアドレスを同時にポイズニングできます。

実際の被害事例
2024年5月、あるユーザーがアドレスポイズニング攻撃により6,800万ドル相当のWBTCを失いました。取引履歴から見覚えのあるアドレスをコピーして大口送金を行いましたが、実際には攻撃者の類似アドレスでした。これは現在もアドレスポイズニングによる最大の単一損失の一つです。
さらに多くの中小規模の被害事例がありますが、金額が「十分に大きくない」ため、多くの被害者は公表していません。

アドレスポイズニングを防ぐ方法
方法1:アドレス帳を使用する
よく使う送金先アドレスをウォレットや取引所のアドレス帳に事前に登録しましょう。送金時は常にアドレス帳から選択し、取引履歴からコピーしないでください。
方法2:アドレスを完全に照合する
コピー&ペーストが必要な場合は、完全なアドレスを展開して1文字ずつ比較しましょう。少なくとも最初の12文字と最後の12文字を確認してください。
方法3:テスト送金を行う
大口送金の前に、送金先アドレスにごく少額を送信しましょう。相手が受領を確認してから、大きな金額を送金します。
方法4:ENSなどのドメインサービスを利用する
Ethereum Name Service(ENS)を使えば、長いアドレス文字列の代わりに「alice.eth」のような読みやすい名前で送金できます。ドメイン名での送金はアドレスポイズニングを効果的に防ぎます。
方法5:ウォレットを最新に保つ
一部のウォレットは、疑わしいゼロ値送金を識別してフラグを立てるアルゴリズムを実装しています。ウォレットアプリを常に最新バージョンに保ちましょう。
セキュリティに関する注意事項
アドレスポイズニングが悪用するのは技術的な脆弱性ではなく、人間の不注意です。防止の鍵は良い習慣を身につけることです:
- 取引履歴から直接アドレスをコピーしない:アドレス帳を使用するか、完全なアドレスを手動で取得してください
- 大口送金前は必ずテスト送金を行う:あらゆるアドレスエラーに対する最後の防衛線です
- アドレスを完全に確認する:先頭と末尾の数文字だけを見ないでください
- 不明な入金を無視する:不明な送信元からのゼロ値や少額の入金はポイズニングの可能性があります
- アドレスラベリング対応ツールを使う:よく使うアドレスにラベルを付けると素早い識別に役立ちます
- 高い注意力を保つ:送金は高リスクな操作です。操作中は集中力を維持してください
取引所経由で送金する場合は、プラットフォームのホワイトリスト機能を活用してセキュリティを強化できます。Binance公式サイトで出金ホワイトリストを有効にするか、Binance公式アプリをダウンロードし、iPhoneユーザーはiOSインストールガイドを参考にして、安全で便利な操作を行えます。
アドレスポイズニングで直接資産が盗まれますか?
いいえ。アドレスポイズニング自体はあなたの資金を移動させることができません。取引履歴にトラップを仕掛けるだけです。損失が発生するのは、あなたが能動的に偽アドレスをコピーしてトランザクションを実行した場合のみです。疑わしい取引記録を無視すれば、影響は全くありません。
取引履歴のトランザクションがポイズニングかどうかをどう判断しますか?
自分が開始していない送金記録(通常金額が0)を見つけた場合、または不明な送信元からの極少額の入金を受け取り、かつ関連するアドレスがよく使うアドレスと先頭と末尾が似ている場合、それはほぼ間違いなくポイズニング攻撃です。
どのブロックチェーンでアドレスポイズニングが最も多いですか?
Ethereum、BSC、TRONが最も一般的です。BSCとTRONはガス代が極めて低いため、攻撃者は最小限のコストで大規模なポイズニングを実行できます。Ethereumは攻撃コストが高いものの、資産価値が大きいため、高額アカウントは引き続き標的となっています。
ウォレットアプリでポイズニングトランザクションをフィルタリングできますか?
一部のウォレット(MetaMaskの最新版など)はゼロ値送金フィルタリング機能を追加し、疑わしいポイズニングトランザクションを非表示にできます。ただし、この機能は100%信頼できるものではなく、ユーザー自身の警戒も必要です。ウォレットで利用可能なすべてのセキュリティフィルタリングオプションを有効にしましょう。