上級者用語を調べる
permit署名とは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 6 分
結論
permit署名は、トークンの利用許可を取引ではなく署名だけで与える仕組みです。手数料がかからず画面もログインと似ているため、危険が伝わりにくいのが問題です。permitはログインではなく、残高を動かす許可です。読まずに署名すれば、そのまま資産を持ち出されます。
要点
- 署名だけでトークンの利用許可を与えられる
- 手数料がかからず、取引履歴にも残らない
- ログインの署名とは意味がまったく違う
- 上限額と期限が署名文面に書かれている
定義
トークンの利用許可(approve)を、チェーンへ取引を送る代わりに署名で与える方式。EIP-2612などで定義され、許可先・上限額・有効期限・nonceが署名対象に含まれる。
DEXでトークンを交換するには、まずそのトークンをコントラクトが引き出せるよう許可を出す必要があります。従来はapproveという取引を送っていましたが、これには手数料がかかり、交換と合わせて2回の操作になります。permitはこの許可を署名だけで済ませます。
署名の中身には、誰に許可するか、いくらまでか、いつまで有効か、そして使い回しを防ぐnonceが含まれます。署名を受け取った側は、それをコントラクトに提出して許可を成立させます。手数料は提出した側が払うため、署名した本人の履歴には何も残りません。
ここが危険な点です。ログイン用の署名と見た目が似ており、手数料もかからないため、警戒心が働きにくくなります。しかし成立するのは残高を動かす許可です。上限が残高全額、期限が事実上無期限という文面に署名すると、あとは相手が好きなタイミングで引き出せます。
注意点
- · permitはログインではなく、残高を動かす許可。内容を読まずに署名すると資産を失う
- · 上限額が残高全額、期限が極端に長い文面は、その場で拒否する
- · 署名は取引履歴に残らないため、与えた許可はウォレットの許可一覧で別途確認する