Slachtoffer verliest $24,23 miljoen in Crypto Phishing Scam: De toename begrijpen

Inhoudsopgave

Geschatte leestijd: 4 minuten

Slachtoffer verliest $24,23 miljoen in Crypto Phishing Scam: De toename begrijpen

 De functie increaseAllowance is een onderdeel van sommige ERC-20 tokencontracten, een functie die wordt gebruikt om de hoeveelheid tokens te verhogen die een bepaald adres (de spender) mag opnemen van je account. Maar deze functie wordt gebruikt door phishers om geld af te troggelen van 'nalatige' gebruikers; zelfs doorgewinterde veteranen van het spel worden betrapt. Vandaag bekijken we dit soort phishingzwendel en zien we een geval waarin een handelaar op deze manier meer dan 20 miljoen dollar verliest.

Grootste crypto phishing scam ooit

In een van de mogelijk grootste crypto phishing incidenten tot nu toe, verloor het slachtoffer ongeveer $24,23 miljoen in stETH en rETH. Deze ongelukkige gebeurtenis vond plaats toen het slachtoffer onbedoeld tokengoedkeuring verleende aan de oplichter door een "increaseAllowance"-transactie te ondertekenen. 

De oplichters zetten het gestolen geld snel om in ETH en DAI en maakten het vervolgens over naar verschillende adressen.

Het slachtoffer, geïdentificeerd door het adres 0x13...179e, is een doorgewinterde speler in de crypto ruimte, met aanzienlijke on-chain ervaring. Deze persoon is een substantiële liquiditeitsverschaffer (LP), die meer dan $1,6 miljoen aan WBTC/USDT-liquiditeit aanbiedt op Uniswap V3. De protocollen die ze hebben gebruikt omvatten een reeks platforms, waaronder Aave, 1inch, Curve, OMG, EOS en meer. 

De vroegste transactie geassocieerd met dit adres (0xf8...1110) dateert van juni 2017 en was afkomstig van Bitfinex.

Hoe werkt IncreaseAllowance?

De functie neemt twee parameters: het adres van de spender en het bedrag waarmee de toelage moet worden verhoogd. Als je increaseAllowance(spender, amount) aanroept, geef je de spender toestemming om een extra bedrag aan tokens van je account op te nemen.

Deze functie kan vaak worden aangeroepen, zelfs als er geen initiële goedkeuring is ingesteld, wat betekent dat het effectief kan worden gebruikt als een goedkeuringsfunctie.

Dit onderstreept de noodzaak om voorzichtig te zijn met het goedkeuren van transacties met het label "Allowance verhogen", vooral als je geen details krijgt over het bedrag in kwestie.

Wat is het probleem met de oorspronkelijke goedkeuringsfunctie?

De oorspronkelijke ERC-20 specificatie bevatte een goedkeuringsfunctie om de vergoeding voor een spender in te stellen. Deze functie heeft echter duidelijk tot veel problemen geleid.

Stel je een scenario voor waarbij je de goedkeuringsfunctie gebruikt om een spender (laten we hem Bob noemen) toe te staan 100 tokens van je account op te nemen. Later besluit je dat je Bob's toelage wilt verlagen naar 50 tokens. Dus u roept goedkeuren(Bob, 50) op. Als Bob echter de transactiepool (mempool) controleert, kan hij uw nieuwe transactie zien en snel de oorspronkelijke 100 tokens overmaken voordat uw nieuwe transactie wordt bevestigd.

Dit zou ertoe leiden dat Bob 100 van jouw tokens bezit en nog steeds toestemming heeft om er 50 extra op te nemen, omdat de nieuwe toelage de oude pas overschrijft nadat de transactie is bevestigd.

Hoe lost DecreaseAllowance dit probleem op?

Om de risico's van de approve-functie te beperken, bevatten sommige tokencontracten een decreaseAllowance-functie. Als je decreaseAllowance(Bob, 50) aanroept, verlaag je de toelage van Bob met 50 tokens. Als Bob 100 tokens probeert over te maken nadat hij de transactie in de mempool heeft gezien, zal de transactie waarschijnlijk mislukken omdat de verlaging van de toelage al is verwerkt, waardoor Bob nul toelage overhoudt.

Als Bob de mempool niet in de gaten houdt, zal de functie decreaseAllowance zijn zakgeld zoals verwacht verlagen, waardoor hij nog maar 50 tokens zakgeld overhoudt.

Beste praktijken voor tokenmachtigingen

Het ontgrendelen van tokens is altijd een noodzakelijke stap bij het aangaan van nieuwe contracten. Het is echter net zo belangrijk om alle tokenmachtigingen die je hebt bij eerdere contracten in te trekken als best practice.

De Smart Contract Vergoeding Checker is een tool die is ontworpen om u te helpen bij het beheren en controleren van uw tokengoedkeuringen. Hiermee kunt u alle adressen vinden en intrekken die de mogelijkheid hebben om uw tokens uit te geven. Door deze tool regelmatig te gebruiken, kunt u het risico op misbruik van tokengoedkeuringen beperken.

Crypto_Library_logo_512x512_svg

Disclaimer: Handelen in en beleggen in cryptocurrencies (ook wel digitale of virtuele valuta, altcoins genoemd) brengt een aanzienlijk risico op verlies met zich mee en is niet voor iedere belegger geschikt. U bent als enige verantwoordelijk voor het risico en de financiële middelen die u gebruikt om crypto te verhandelen. De inhoud van deze website is voornamelijk bedoeld voor informatieve doeleinden en vormt geen financieel advies.