Approval exploit
Een approval exploit is diefstal waarbij token approvals worden misbruikt, de toestemmingen die gebruikers aan smart contracts geven om namens hen tokens te verplaatsen. Wanneer je een gedecentraliseerde exchange of een andere DeFi-app gebruikt, keur je meestal goed dat het contract een token uit je wallet mag uitgeven; als die toestemming te ruim is of het goedgekeurde contract kwaadaardig wordt of wordt gehackt, kunnen de tokens worden weggenomen zonder dat jij nog iets hoeft te doen.
Twee varianten overheersen. In de eerste vraagt een scamsite je om wat een routinegoedkeuring lijkt te ondertekenen, maar die het contract van de aanvaller als spender noemt, vaak voor een onbeperkt bedrag; de aanvaller sluist je tokens vervolgens weg wanneer hij maar wil, soms weken later. In de tweede wordt een legitiem protocol dat je lang geleden hebt goedgekeurd getroffen door een gecompromitteerd contract, en gebruikt de aanvaller ieders openstaande goedkeuringen om geld weg te halen uit wallets die ermee interactie hadden. Gebruikers die bijvoorbeeld onbeperkte goedkeuringen aan een bridgecontract hadden gegeven, hebben tokens verloren toen dat contract later werd geëxploiteerd, ook al hadden ze nooit een scamsite bezocht.
De praktische verdediging bestaat uit het beperken van goedkeuringen tot het benodigde bedrag, het regelmatig nalopen en intrekken van oude goedkeuringen met daarvoor gebouwde tools, en het gebruiken van aparte wallets voor experimenteren en voor sparen. Een veelvoorkomende misvatting is dat het overzetten van je herstelzin (seed phrase) naar een nieuw apparaat een slechte goedkeuring verhelpt; goedkeuringen staan on-chain gekoppeld aan je adres, dus alleen een on-chain intrekkingstransactie (revoke) of het verplaatsen van je geld naar een nieuw adres neemt het risico weg.