メッセージは、そのトレーダーが何年もフォローしているアカウントから届きました。 airdrop と称する案内、24 時間の期限、claim ページへの直リンク。サイトは見た目も整っていて、求められたのは 署名だけ。パスワードも seed も approval も不要で、ただ「Sign」を押すだけでした。 二秒後、すべての NFT と六桁の token 残高は見知らぬアドレスに移っていました。署名そのものが、許可だったのです。
Wallet drainer は Web3 で主流となっている詐欺です。旧来の credential 窃取は使わず、DApp がもともと依存している仕組みをそのまま利用します。十分に複雑な取引が MetaMask や Rabby で署名されれば、すべての token、NFT、DeFi ポジションが攻撃者の smart contract に移ります。システムは設計どおりに動いているだけです。
あなたが実際に署名しているもの
Web3 のサイトから署名を求められるとき、単なる送金を承認していることはまれです。 多くの場合、承認しているのは approval、つまり smart contract にあなたの代わりに動く権限を与える署名です。典型的な ERC-20 の approval は、要は「contract X は私の wallet から最大 Y の token Z を動かしてよい」と言っています。多くの drainer は無限の approval、つまり「私の token Z をすべて動かしてよい」を要求します。
NFT の場合は setApprovalForAllがあり、これ一回の署名で contract にコレクションの NFT すべてを動かす権限を渡してしまいます。Seaport や Permit2 を使えば、複雑な注文を一度署名するだけで複数 token を同時に開放できます。さらに EIP-712 メッセージでは、人間が読んでも何が起きるかほとんど伝わらないような 濃い承認まで署名できてしまうのです。
署名の瞬間、wallet が表示するのはたいてい曖昧な「This will interact with a contract」だけです。実際に何が起きるか、つまりどの token が動くのか、どのコレクションが影響を受けるのか、この先 30 日間でどれだけ引き出されうるのかは、そもそも表示されないか、 誰も読まない hex で示されるかのどちらかです。
サービスとしての wallet drainer

Drainer はゼロから自作されているわけではありません。貸し出されているキットがあります。Angel Drainer、Inferno、Pink、Rainbow といった顔ぶれです。購入者は smart contract のコード、設定可能なフロントエンド、状況通知用の Telegram bot、そして盗んだ資産の分配を受け取ります。内訳はキット運営側に 20 パーセント、購入者に 80 パーセントというのが一般的です。
キットはほぼあらゆる L1・L2 ネットワークに対応しています。Ethereum、Solana、Base、Polygon、BNB、Arbitrum などです。偽サイトは接続してきた wallet を自動で判定し、その chain に合った drain 関数を差し出します。被害者は自分が今どの chain にいるのかすら知っている必要がありません。
Scam Sniffer と Chainalysis によれば、2024 年には drainer キットによる損失が 5 億ドルを超え、数十万人単位の個別被害者に広がりました。主要な wallet 側の改善が進んだにもかかわらず、この傾向は 2025 年も上昇を続けました。
2024 年に記録された drainer 由来の損失
一年の個別被害者数
署名後に取り戻せない割合
blind signing が根本原因である理由
多くの wallet は、複雑なトランザクションに対してハッシュと「Signing this message could let the app do things on your behalf」 という汎用的な文言だけを表示します。これが blind signing です。smart contract の呼び出しを wallet 側で人間可読に parse するのはコストが高く、多くの DApp の動作はそもそもうまく訳しようがないために存在している仕組みです。
Drainer はこれを体系的に悪用します。攻撃は承認処理を濃密そうに見える メッセージ(多くの場合 Permit2 や Seaport)に包み込みます。UI 上は何も語らないのに、技術的には token の予算をまるごと移してしまうのです。Ledger や Trezor のようなハードウェアウォレットはこの問題に気づいており、主要な contract インターフェースに対しては構造化された parse 結果を出すようになりましたが、当然ながら知っているものに限られます。
教訓は単純です。blind signing を「許容できるもの」として扱わないこと。wallet が何が起きるかを説明できないなら、そこで引き返します。サイトが信頼できそうに 見えても同じです。
警戒すべき署名のパターン

setApprovalForAllは、深く検証していないサイトで出てきた時点でほぼ強い警告サインです。 唯一の正当なケースは marketplace への最初の出品で、それさえ最近の実装なら Permit2 に移っているのが普通です。
ERC-20 の無制限 approval は普段の DeFi では珍しくありませんが、見慣れないサイトでは明確に拒絶すべきです。数量が 2^256 や不自然なほど丸い数字なら、目の前にあるのは drainer の署名です。
Permit2 署名 は、spender に対して token を一時間から数か月にわたり、on-chain の取引を残さず動かす権限を与えます。未知のサイトが Permit2 を要求してくる時点で、あなたは事前承認済みの盗難命令に署名している ことになります。
Seaport のオファーで、項目が複数あり、しかも見覚えのない受取アドレスが含まれるものは 特に危険です。個別の NFT をわずかな token の金額で交換するのに、画面上は普通の売り注文のように見えるからです。
mint のたびに新しいブラウザを
もっとも効果のある運用上の変化は、メインの wallet がログインされたブラウザから Web3 の操作を行わないようにすることです。mint ページ、airdrop の claim、新しい DeFi DApp は隔離ブラウザの中で開きます。そこで、その操作に必要な分しか入っていない wallet だけを接続します。drainer がその wallet を襲っても、そこにある小さな残高を持っていくだけで、メインの ポジションには触れません。
コミュニティはこれを「burner wallet」と呼び、頻繁に mint する人の間では昔から定番のやり方です。忘れられがちなのは、 ブラウザのほうも burner であるべき、という点です。MetaMask のような拡張機能はセッションストレージや承認をそのまま抱え込みますが、 隔離ブラウザはセッションを空のまま終え、あとから署名を 使い回されてもびくともしません。
どんな端末でも、デスクトップ並みの快適さを。
Browser.lol を無料で試して、スマホやタブレットでも PC 並みの快適さを体感してみませんか?
デスクトップブラウザを試すダウンロード不要・どんな端末でも動作



