ウォレット承認リスクとは、権限を与えたコントラクトやオペレーターがトークンを移動できる危険です。承認は当初のスワップ、ミント、ゲーム操作が終わった後も有効な場合があり、侵害された、または悪意あるspenderが後からその継続的権限を使う可能性があります。
似て見える4つの操作を区別する#
「ウォレット接続」は広い意味で使われがちですが、段階ごとに権限が変わります。
| 操作 | 一般的な効果 |
|---|---|
| 接続 | 公開アドレスとネットワーク情報を共有する |
| メッセージ署名 | 内容に応じて管理権限を証明、または構造化データを承認する |
| Approve/Permit | 上限までのトークン権限をspenderへ与える |
| Transfer/Swap | 資産移動またはコントラクト処理を実行する |
接続は直接トークンを動かさなくても、プライバシー上の露出を生みます。署名は無害な認証にも、強力なオフチェーン承認にもなります。オンチェーン承認は再利用可能なアローワンスを記録します。ボタン名ではなくペイロードを読んでください。
ERC-20アローワンスは取引後も残る#
多くのトークンコントラクトでは、ルーターやプロトコルが利用者に代わってトークンを移す前に承認が必要です。画面によっては利便性のため最大アローワンスを要求します。Ethereum.orgは、無制限アクセスにより承認済みコントラクトがそのトークン残高すべてを使用できる可能性があると警告しています。
アローワンスは、1つのネットワーク上のトークン、所有者、spenderの組み合わせに紐づきます。トークンを一度別の場所へ動かしても消えません。後から残高が戻れば、spenderの権限も残っている可能性があります。
NFT権限と署名権限は挙動が異なる#
NFTコントラクトはApprovalForAllを付与し、オペレーターがコレクション内のすべてのアイテムを移せるようにする場合があります。オフチェーンのPermitは署名により支出を承認し、使用されるまで通常の承認取引として表示されないことがあります。
Typed Data画面は、ウォレットが項目を正確に説明し、利用者が確認して初めて、読めない16進数より安全になります。フロントエンドやプロジェクトアカウントが侵害されていれば、見慣れたドメインでも安全な要求とは限りません。
操作前に被害範囲を限定する#
長期保有資産を入れない操作専用ウォレットを使います。独立したプロジェクト情報源からコントラクトアドレスを確認し、可能なら特定額だけを承認し、予期しないオペレーター権限や所有権権限を拒否してください。
1回限りの操作後は、アローワンスを確認して取り消します。サイトの接続解除はウォレット画面内のローカルな関係を消すだけで、ブロックチェーンの状態は変えません。
取引シミュレーションは有用ですが、現在の状態と対応するデコードに基づく予測です。コントラクト、ドメイン、権限の確認を補助するもので、置き換えるものではありません。
継続的な保守として権限を監査する#
次の場合に承認を確認してください。
- プロトコルがエクスプロイトやフロントエンド侵害を公表した。
- アプリケーションの利用をやめた。
- 操作用ウォレットに多数の権限が蓄積した。
- コントラクトがアップグレードされた、または所有者が変わった。
- 説明できない取引や署名要求が現れた。
価値の高い残高に関係する無制限アローワンスと不明なspenderを優先します。確認済みエクスプローラーや実績あるチェッカーから取り消し、取引がオンチェーンで確定したことを確認してください。
よくある質問#
ウォレット接続だけでトークンへのアクセスを与えますか?
通常は与えません。公開アドレスを見せ、サイトが署名を要求できる状態になります。トークン権限には、該当する承認、Permit、取引が必要です。
取り消した承認を再び使われますか?
取り消しが確定すると、そのアローワンスは支出を承認しなくなります。ただし、新しい承認や別の権限が存在する可能性はあります。
少額の承認なら常に安全ですか?
そのアローワンスで使える金額は制限できますが、コントラクトが正当だとは証明しません。承認額は失われる可能性があります。
複数ネットワークに承認が存在しますか?
はい。同じアドレスでもネットワークごとに別のアローワンスがあるため、各チェーンを個別に確認してください。
情報源#
- Ethereum.org: Security and Scam Prevention
- Ethereum.org: Revoke Smart Contract Access
- Uniswap: What Is an Approval Transaction?
- OWASP Smart Contract Security: UX Security Foundations
リスクに関する注意: 権限形式はトークン規格、ウォレット、チェーンによって異なります。署名前に、要求される正確な権限を確認してください。
編集方針
本記事は教育目的で、信頼できる情報源に基づいています。セキュリティ対策、取引所のルール、法的要件は変わるため、重要な操作の前に公式情報を確認してください。