dAppはなぜ承認を求めるのか
ERC-20トークンには、Web3のUXの半分を形作っている特性があります。スマートコントラクトは、たとえあなたが望んでいても、あなたのアドレスからトークンを勝手に取ることができないのです。あなたのUSDCをスワップするDEXは、まず明示的な許可を必要とします。だからこそ多くの操作が2段階になります——まずapproveトランザクション、それから実際のスワップや入金です。承認は形式的なものではありません。恒常的な支出権限の付与であり、それを与えたトランザクションよりも長く生き続けます。
approve()が実際に与えるもの
承認に署名すると、トークンコントラクトはallowanceを記録します。アドレスX(dAppのコントラクト)は、allowanceが使い切られるか変更されるまで、いつでもあなたのトークンを最大N個まで使えるという記録です。重要な性質は2つ。第一に、allowanceを持つのはあなたが承認したコントラクトであって、訪れたウェブサイトではありません——UIが消えても許可は残ります。第二に、支出の瞬間にあなたの関与は一切不要です。一度付与されれば、承認されたコントラクトは、あなたの追加署名なしに、その後のどのトランザクションでもトークンを引き出せます。それこそが承認を便利にしているものであり——そのまま攻撃面にしているものでもあります。
無制限承認:便利さと、恒久的なリスク
承認のたびにガスがかかるため、多くのdAppは二度と承認せずに済むよう、事実上無制限のallowanceを要求します。便利さは本物ですが、引き換えも本物です。あるコントラクトへの無制限のallowanceは、そのトークンの全残高が永遠にそのコントラクトのセキュリティに依存することを意味します。コントラクトが何年も後に悪用されたら——あるいは最初から悪意あるものだったら——攻撃者にあなたの鍵も署名も必要ありません。あなたが与えたallowanceで十分なのです。最大級のウォレット・ドレイン事件の多くは鍵の窃取ではなく、古い承認の換金でした。
PermitとPermit2:署名による承認
現代的な改良がPermit(EIP-2612)です。オンチェーンのapproveトランザクションの代わりに、dAppが自身のアクションと一緒に提出するオフチェーンのメッセージに署名します——2回のトランザクションが1回に、承認用の別途ガスは不要、しかも許可には期限を設定できます。Permit2はこの考え方をEIP-2612を実装していないトークンにも一般化し、期限付き・金額限定の権限を扱う共有承認ハブとして機能します。これらは本物の改善ですが、何が変わったかに注意してください。かつてトランザクションが担っていた仕事を、いまや署名が担っています。誤ったPermitメッセージに署名させるフィッシングサイトは、悪意ある承認と同じ結果を得ます——だからこそ署名する内容を読むことが、これまで以上に重要なのです。
攻撃面:ドレイナーと放置されたallowance
承認の悪用には2種類あります。能動型:ドレイナーサイトが本物のdAppになりすまし、「クレーム」や「ウォレット認証」といった無害そうな操作を装って承認(またはPermit署名)を要求します。受動型:何年も前に正当なコントラクトへ与えたallowanceが、そのコントラクトや管理者キー、アップグレード経路が侵害されるまで眠り続けます。どちらも、接続して承認するフローをWeb3のセキュリティ上最も重要な瞬間として扱うべき理由です——安全なやり方はウォレットをdAppに安全に接続する方法で解説しています。
実際に効く承認の衛生習慣
3つの習慣でリスクの大半をカバーできます。dAppが許すなら、特に大きな残高では限定額を承認する——後で追加の承認をするのは安い保険です。信頼できる承認チェッカーで定期的にallowanceを確認・取り消しし、もう使わないものは除去すべき死荷重として扱う(取り消し自体もトランザクションです)。そして本気の資産は、承認に一切署名しないアドレスに、アクティブなdApp用ウォレットと分けて保管する。より多層的な習慣はウォレットセキュリティのベストプラクティスにあります。
WATSの位置づけ
承認とは署名であり、署名はウォレットの領分です。WATSは完全にノンカストディアルです——鍵を持つのはあなたで、WATSが鍵を持つことは決してありません——だからすべての承認、Permit署名、取り消しは、ブラウザ拡張機能またはモバイルアプリから、EVM、Solana、TONを横断して、あなたの鍵が署名したときにのみ実行されます。手数料面こそWATSが他に類を見ないところです。承認や取り消しのトランザクションを含むすべての操作が、チェーンのネイティブガスの代わりにひとつのトークンATSで課金されます——EVMではERC-4337ペイマスター、SolanaとTONでは同等のフィーペイヤー/リレイヤーを通じて——そのため古いallowanceの掃除が、そのネットワークのガストークン切れで止まることはありません。徴収されたATSは1億から3,000万のフロアに向かってバーンされ、ATSはLayerZeroのOFTなので、ひとつの残高がすべてのチェーンをカバーします。WATSは、ERC-4337とOFTの単一トークン手数料をこのバーンと組み合わせた最初で唯一のウォレットです——詳細はATS手数料ページへ。
よくある質問
トークンのallowanceとは何ですか?
Allowanceとは、ERC-20トークンコントラクトに記録される恒常的な許可のことです。特定のコントラクトがあなたのトークンを特定の量まで使ってよい、という取り決めです。approveトランザクションに署名したときに作られ、使ったウェブサイトとは無関係に、使い切られるか変更・取り消しされるまで存続します。支出の瞬間、承認されたコントラクトはあなたの追加署名を一切必要としません。
無制限(インフィニット)承認は安全ですか?
便利ですが、恒久的なテールリスクを伴います。そのトークンの全残高が、承認したコントラクトが未来永劫悪用されず悪意も持たないことに依存するのです。小さなアクティブ残高なら便利さが勝つことが多いでしょう。大きな保有には限定額を選び、使わなくなったallowanceは定期的に取り消してください。大規模なドレイン事件の多くは、盗まれた鍵ではなく悪用された古い承認でした。
Permitと通常の承認の違いは何ですか?
通常の承認は、dAppが行動する前にガスを消費する独立したオンチェーントランザクションです。Permit(EIP-2612)はそれをオフチェーン署名に置き換え、dAppが自身のトランザクションに同梱します——1ステップで、期限も設定可能。Permit2はこのパターンをネイティブPermit非対応のトークンにも拡張します。セキュリティモデルもそれに応じて移ります。署名が支出権限を与えられるようになった以上、署名リクエストは承認と同じ厳しさで精査してください。

