更新日:2026-02-04
範囲:ウォレット操作の基礎(価格予想・投資助言は扱いません
この記事で解決できること
「SignとApproveって何が違うの?」「“署名だけ”なら安全?」「承認の上限はどこを見ればいい?」という疑問を、初心者でも事故らないレベルまで整理します。
結論だけ先に言うと、Sign=同意の証明、Approve=トークンを動かす権限(上限)を渡す操作です。被害の多くはApprove(承認)まわりで起きます。
3行まとめ
Sign(署名)は「あなたがその内容に同意した」という暗号学的な証明で、送金ではなく“ログイン”や“同意”にも使われます。
Approve(承認)は「特定のコントラクトが、あなたの特定トークンを、指定上限まで動かせる」権限(allowance / spending cap)を与える操作です。
安全のコツは、①承認上限は必要最小限、②使い終わった承認は取り消す(revoke)、③読めない署名要求は拒否、の3つです。
まず用語を一発で整理
Connect(接続)
サイトにあなたのアドレス情報を見せる状態にすることです。Connectだけで資産移動は起きませんが、偽サイトに接続する時点で危険な導線に入ることがあります。
Sign(署名)
「この内容に同意する」という証明をあなたの鍵で行います。署名自体はガス代ゼロのことも多いですが、“無料=安全”ではありません。署名で権限を付与する方式(permit等)もあるためです(後述)。
Approve(承認)
MetaMaskなどのウォレットでは、承認は「dAppがあなたのトークンを動かす許可」として説明されています。承認は多くのDeFi操作(スワップ、預入、ステーキング等)の前段で出てきます。
承認には上限があり、MetaMaskではそれをspending cap(利用上限)として扱い、手動で調整できる機能があります。
よくある操作で何が起きている?(3つの例)
例1:DEXでトークンを交換(Swap)
多くの場合、最初にApprove(上限設定)→次にSwap(実行)の2段階になります。
このとき危ないのは「上限が無制限」になっているのに気づかずApproveしてしまうことです。もし相手のコントラクトが悪意ある(または後で侵害される)と、上限の範囲でトークンを動かされ得ます。
例2:ステーキング/預入(Deposit)
「Depositを押したのに、なぜ承認が出るの?」となりがちですが、Depositは“あなたのウォレット外(コントラクト)へトークンを動かす”操作なので、事前に許可が必要になることが多いです。
ここでも、上限の大きさがリスクを決めます。
例3:ログイン(Sign-in with Ethereum)
ログインにSignを使うサービスがあります。これは送金ではなく「このアドレスの持ち主です」という証明として便利ですが、署名内容が意味不明な場合は危険です。
とくに「Verify」「Upgrade」「Recovery(復旧)」などの名目で署名を求めるのは詐欺の典型なので、即中断が安全です。
重要:署名だけでも“承認”になることがある(Permit)
ERC-2612(Permit)は、従来のapproveトランザクションの代わりに、署名(signed message)でallowanceを変更できる仕組みを導入します。つまり、見た目はSignでも、結果としてApproveと同じ「権限付与」になり得ます。
またPermitは、読みやすさのためにEIP-712(型付き構造化データ署名)を使うことが想定されています。
事故を防ぐ:承認(Approve)の“見るべき4点”
- 相手(spendする側):どのコントラクト/どのサービスに許可するのか。知らない相手なら拒否。
- 対象トークン:何のトークンに許可を出しているのか。
- 上限(spending cap / allowance):無制限にしない。基本は必要最小限。
- 目的:いま本当にその操作が必要か(急かされていないか)。
MetaMaskの安全機能:Spending Cap(上限)を最小にする
MetaMaskは、ERC-20の承認でspending cap(利用上限)を手動で編集できることを案内しています。
初心者は原則として「今回使う分だけ」に近い上限にしておくと、最悪のときの被害が限定されます。
使い終わった承認は取り消す(Revoke)
承認は“残り続ける”ことがあります。使い終わったdAppの承認を放置すると、後からそのdAppが侵害された場合に被害が出る可能性があります。
MetaMaskはPortfolio内でallowance(承認)を確認し、取り消しトランザクションを送れる機能を案内しています(対応チェーンはページ記載の範囲)。
「これは安全?」迷ったときの判断ルール
読めない署名要求は拒否
Sign画面が「意味不明な文字列」「何に同意するか不明」なら、今は押さないのが正解です。特に“復旧”や“確認”名目は危険です。
承認は“回数”より“上限”が重要
Approveは1回でも、上限が無制限ならリスクは大きいです。逆に上限が小さければ、万一の被害が限定されます。
迷ったら「少額テスト→上限最小→終わったらrevoke」
この3点をルール化すると、初心者の事故率が一気に下がります。
FAQ
Q. 「署名だけ」って言われたら安全?
A. いいえ。署名でもpermitのように権限付与になるケースがあります。署名内容が読めない・目的が不明なら拒否が安全です。
Q. 承認を取り消すと、何か困る?
A. 次回そのdAppを使うときに、再度Approveが必要になることがあります。安全性と利便性のトレードオフなので、使わない承認は取り消すのが基本です。
Q. 承認の上限はどこで調整できる?
A. MetaMaskは、承認時にspending cap(上限)を手動編集できる機能を案内しています。UIは更新されることがあるため、公式ヘルプの手順に沿ってください。
コメント