- 1 NFTの解説一覧
- 2 Approveの必要性
- 3 Approveの仕組みから見るリスク
- 4 Approve時の注意点
- 4.1 Approveの種類
- 4.2 確認方法
- 5 適切なApprove管理とは?
- 6 無限Approveしても良い例
- 7 Approve管理方法
- 8 まとめ
イーサリアムやEVM経済圏におけるDeFiやNFTのセキュリティ対策として”コントラクトアドレスの適切なApprove管理”というものがあります。このApprove管理は古参DeFiユーザーに取って常に意識するセキュリティ管理方法ですがあまり認知されておらず、クロスチェーンDEXアグリゲーターの”Transit Swap”のハッキングによって再度意識すべき点であると言えるでしょう。
本稿ではDeFiやNFTにおけるコントラクトの適切なApprove管理の考え方について投資家向けにわかりやすく解説を行います。Transit Swapのハッキングの攻撃概要については
NFTの解説一覧
墨汁マガジンVol.597「NFTはバブルか?NFTの歴史から見る投資すべきかの判断の考え方とそのNFT投資のリスク」
墨汁マガジンVol.607 「NFTバブルとICOバブルの違い NFTバブルが崩壊した際の今後のシナリオ」
墨汁マガジンVol.657「NFTはどこに保存されている?イーサリアムのコントラクトから見るNFTの保管場所と価値の源泉」
墨汁マガジンVol.659「イーサリアムのアプローチから見るNFTの未来」墨汁マガジンVol.705「NFTアートの画像ダウンロード問題 NFTの本質的価値を理解するとわかる需要の根源とは?」
墨汁マガジンVol.764「DeFiやNFTにおける適切なApprove管理とは?Approveの仕組みから見るリスク」
Approveの必要性
まず前提知識として
「Approveはコントラクト実行において必ず必要であるが、セキュリティの落とし穴ともなる」
ということを理解しておく必要があるでしょう。
例えばCurve FinanceのようなDeFiのDEXにおいてUSDCをDAIにスワップする場合、3Poolのようなスワップで利用する流動性プールのコントラクトアドレスにApproveで許可を出す必要があります。
このApproveが必要な理由として、
「EOAアカウント(個人アドレス)のUSDCをCurve Financeの3Poolが引出しをし、代わりにDAIを受取るというスワップをするという残高変更を許可する」
ためです。
EOAアカウントの残高変更(送金)する際に許可なく行える場合、悪意のあるコントラクトが勝手にUSDCを引出しすることができるということになってしまう
Check
Approveの仕組みから見るリスク
ではまずApproveの仕組みについて見てみましょう。
Approveに