Система попередження про підозрілі approv-ви
Token approval—одна з найнебезпечніших операцій у Web3. Користувач дає смарт-контракту право витрачати його токени без його участі. Approval scam—головний спосіб крадіжки активів через фішинг та malicious dApp. Revoke.cash зафіксував $2.8B+ втрат через approval-based атаки.
Анатомія approval атаки
ERC-20 approve: token.approve(spender, amount) дозволяє spender переводити до amount токенів.
ERC-721/ERC-1155 setApprovalForAll: дає право на всі NFT з колекції. Найнебезпечніша форма—одна tx передає права на всю колекцію.
Permit (EIP-2612): gasless підпис approval без on-chain tx. Користувач підписує—зловмисник сам відправляє permit() tx. Користувач не бачить approval у гаманці до крадіжки.
Архітектура системи
Два рівні:
Pre-transaction screening: Аналіз pending tx до підписання. Інтеграція через simulation API.
Post-approval monitoring: Відслідковування дозволених токенів, alert при аномальному використанні.
Pre-Transaction Analysis
Simulation через Tenderly або Alchemy
До підписання симулюємо виконання та аналізуємо state changes.
База даних відомих spender адрес
Whitelist відомих dApp контрактів. Blacklist відомих scammer адрес.
Post-Approval Monitoring
Approval Indexer
Слухаємо Approval та ApprovalForAll события.
Alert при використанні Approval
Коли дозволений approval використовується—не завжди погано (легітимний dApp). Alert при аномальному використанні.
Permit2 Специфіка
Uniswap Permit2—новий стандарт де користувач робить один approve(permit2, unlimited) для Permit2 контракту, потім всі протоколи працюють через signature-based permissions.
Інтеграція у кошельок або dApp
Warning система інтегрується через MetaMask Snaps (pre-sign screening), browser extension (intercept dApp txs), або SDK у dApp.
| Channel | Use Case | Latency |
|---|---|---|
| Wallet provider hook | MetaMask Snaps pre-sign | < 1 sec |
| Browser extension | All dApp txs screening | < 2 sec |
| dApp UI SDK | Protocol-level integration | < 1 sec |
| Email/Telegram | Post-approval monitoring | Real-time |
MetaMask Snaps найперспективніший шлях—Snap отримує onTransaction hook, може показати користувачу попередження перед підписанням.







