トークンの承認(一般的なオンチェーン動作はapproveと呼ぶ)とは、あるスマートコントラクトにウォレット内の特定トークンを使う権限を与える設定です。理解するにはまず仕組みを覚えましょう。DeFiでは、スマートコントラクトはあなたの許可なくウォレットのトークンを動かせません。だから分散型取引所でUSDTを別の通貨に交換する、トークンをプロトコルに預ける前に、まずapprove取引に署名し、その契約がそのトークンをどれだけ使えるか明確に承認せねばなりません。これはDeFiの対話で避けられないステップですが、まさに資産を動かす権限を渡すため、承認を理解し管理することは、ウォレットセキュリティで最も重要なのに最も見落とされる部分です。
トークンの承認の本当のリスクは、限度額という詳細に潜みます。approveに署名するとき、実はこの契約にそのトークンをどれだけ使わせるかを設定しています。理論上は今回必要なちょうどの量だけ承認できますが、取引のたびに再承認する手間を省くため、大多数のDeFiインターフェースは既定で無制限の限度額を要求します。これは、一度署名すると、その契約が後でいつでも、あなたの追加の同意なしに、ウォレット内のそのトークン全部を動かせることを意味します。契約が悪意あるか、後でハッカーがバグを見つければ、ずっと前に署名した承認を使い、ウォレットから対応トークンを一度に抜き取れます。これが多くのウォレット枯渇事件の本当の原因で、秘密鍵の漏洩ではありません。
承認は必要なのにリスクもある、ではどう管理するのでしょうか。いくつかの重要な実践。第一に、できれば限度額にする:一部のウォレットやインターフェースは、approve時に限度額を無制限ではなく今回必要なちょうどの量に手動で変えられ、契約が問題を起こしても損失はその承認額に上限がつきます。第二に、定期的に承認を確認し取り消す:専用の承認確認/取消ツールで、アドレスがどの契約にどれだけ承認したか確認し、もう使わない、出所不明の承認を取り消せます(取消自体にガスがかかります)。第三に、対話前によく見る:approveのたびに、正規で信頼でき、できれば監査済みの契約と対話しているか確認し、不明なサイトで承認を不用意に署名しないこと。承認管理を日常のセキュリティ習慣にすれば、大部分のリスクを防げます。
実務では、承認に対し特に警戒すべき状況がいくつかあります。第一に、新しいか不慣れなプロトコル:あるDeFiプロトコルと初めて対話しapproveを要求されたら、まず正規か、監査済みか、コミュニティの評判はどうか確認し、高利回りを追うためだけに不慣れな契約に無制限承認を不用意に与えないこと。第二に、怪しいエアドロップやフィッシングサイト:多くの詐欺はまさにウォレットを接続しapproveまたは署名して受け取れと誘い、その承認は実はハッカーにあなたのトークンを使う権限を渡します。こうした要求は一律詐欺とみなしましょう。第三に、定期的な大掃除:時々、承認確認ツールで古い、使わない、額が大きすぎる承認を、特にかつて対話したが今は使わないプロトコルのものを片付けましょう。承認管理を定期的なパスワード更新のような習慣にすることは、資産を守る上級ユーザーの基本です。
承認の威力とリスクを、現実的でよくある場面で理解しましょう。分散型取引所で、ウォレットのUSDCを別の通貨に交換したいとします。初回の操作で、インターフェースは2ステップを出します。まずapprove(承認)、次にswap(交換)。
approveをクリックすると、ウォレットが署名要求を出します。ここに核心が潜みます。多くのインターフェースは既定で無制限の限度額を要求します。気づかず署名すると、この取引所の契約にこう告げるようなものです。今後私のウォレットの全USDCを、もう聞かずに使ってよい。今は100ドルだけ交換したくても、承認したのは上限なしです。
普段は問題ありません。その契約が正規で安全である限り。しかしリスクは、この契約が後でバグを見つけられハッカーに破られると、署名したその無制限承認を使い、ウォレットの全USDCを一度に移せることです。秘密鍵は全く不要です。
正しい方法は、approve時に額を編集できるなら今回必要な量だけ承認する、または後で承認取消ツールでこの不要な無制限承認を取り消すことです。この小さな動作こそ、セキュリティのベテランと、ある日わけもなく枯渇させられる人を分ける鍵です。
トークンの承認の核心的なトレードオフは、利便性と安全性の間です。無制限の限度額の利点は手間が省けること。一度承認すれば、その後そのプロトコルで繰り返し取引しても再署名も承認のガスも不要で、スムーズです。しかし代償は、永久で上限のない使用権をその契約に残すことで、安全を完全に「この契約が決して問題を起こさない」に賭けることになります。契約のハッキングは絶えず起きます。逆に毎回限度額だけ承認するのが最も安全ですが、繰り返しの署名と追加のガスの手間を耐える必要があります。実務的なバランスは、信頼度が高くよく使う大規模プロトコルには利便性のため緩めの承認を許容しつつ定期的に確認し取り消す、不慣れ、小規模、一回限りの対話には限度額にするか使用後すぐ取り消すことです。