Tillgångspriser är tillfälligt fördröjdaVissa tillgångar tar inte längre emot färska prisdata. Uppdateringarna återupptas automatiskt när dataanslutningen har återställts.
Bitculator

Bitculator på Android

Marknadsvärde:

$1,995,421,489,076

Volym 24h:

$196,800,200,171

juni 23 Likvidationer:

$0

24H Lång/Kort:

Kommer snart

Bitculator · Lära

Reentrancy Attack

Vad betyder Reentrancy Attack i krypto-termer?

# 350·Uppdaterad juni 2026·3 min läsning

En Reentrancy Attack är en säkerhetsbrist i smarta kontrakt där en angripare utnyttjar kontraktets sårbarhet genom att upprepade gånger kalla på det innan den första exekveringen är klar.

Vad är Reentrancy Attack?

En Reentrancy Attack är när ett kontrakt överlämnar kontroll till ett annat kontrakt under ett anrop och den externa koden hoppar tillbaka in i det första kontraktet innan det hinner uppdatera sina register. Den tidsmässiga trixen låter angriparen upprepa känsliga åtgärder som uttag gång på gång. Föreställ dig att du ber om en återbetalning och sedan smyger tillbaka till disken innan kassören låser kassan.


Myt

”Endast gammal kod kan drabbas av en Reentrancy Attack.” Inte sant. Alla kontrakt som gör ett externt anrop innan de låser sitt eget tillstånd kan vara sårbara om logiken är slarvig.


Hur Reentrancy Attack fungerar

Kort berättelse. Ett typiskt smart kontrakt har en withdrawfunktion som skickar medel till den som anropar. Om det skickar medlen först och rensar saldot senare kan en angripare smyga in en callback och begära mer innan saldot sätts till noll.

  1. Start: Angriparen sätter in medel för att verka legitim.
  2. Anrop: Angriparen triggar withdraw på målet.
  3. Fallback: Målet skickar medel, vilket kör angriparens fallbackfunktion.
  4. Upprepa: Den fallbackfunktionen anropar withdraw igen innan saldot uppdaterats.
  5. Tömning: Loopen fortsätter tills kontraktet är utan medel eller gas. Ja, det är tricket.

Ett litet ordningsfel, stort problem.


Varför Reentrancy Attack spelar roll

Det berör dig eftersom timingfel flyttar riktiga pengar snabbt. Dessutom är detta en av de klassiska exploateringar som varje utvecklare och nyfiken användare bör känna igen direkt.

  • Fördel: Att känna igen mönstret hjälper dig att upptäcka riskfylld kod och hålla medel säkra.
  • Perspektiv: Den trivs på offentlig insyn eftersom allt på en blockkedja är synligt och kan anropas.
  • Relevans: Du kommer se det i DeFi, broar, kassor, till och med styrningsutbetalningar för DAO:er.

Tips

Gör kontroller först, uppdatera tillstånd sedan interaktioner. Uppdatera saldon först, gör sedan externa anrop. Lägg till ett enkelt reentrancy skydd för ökad säkerhet.


Huvuddrag hos Reentrancy Attack

Det här är vad som driver den:

  • Rekursion: Extern kod anropar tillbaka samma kontrakt innan det är klart.
  • Ordning: Buggen uppstår när medel skickas eller externa anrop sker innan tillstånd uppdateras.
  • Spridning: Det kan hoppa mellan flera kontrakt, inte bara en funktion.
  • Tillgångar: Fungerar med ETH, tokens och till och med bokföringskrediter om koden är dålig.

Varianter

Olika varianter samma huvudvärk för slarvig kod:

  • Enkel: Återinträde i samma funktion upprepade gånger.
  • Kors: Återinträde via en annan funktion i samma kontrakt.
  • Multi: Återinträde över två eller flera kontrakt i en loop.
  • Endast läsa: Påverka vyer eller prisorakel för att lura senare skrivningar.

Påminnelse

Att åtgärda en Reentrancy Attack handlar inte bara om en funktion. Granska varje externt anrop, lägg till tester för märkliga anropskedjor och planera regelbundna granskningar.


Exempel

Exploiten mot The DAO 2016 utnyttjade en reentrancyloop vid uttag innan saldon rensades och tömde en massiv kassa på några minuter.


Kul fakta

Communityns slagord checks then effects then interactions kommer från tidiga säkerhetsguider och fastnade eftersom det är kort, lätt att minnas och fungerar.


Sammanfattning

Kort version att ha i fickan: om extern kod kan anropa dig innan du avslutat din egen bokföring, anta att den gör det och du kan ge bort gratis pengar. Det är en Reentrancy Attack.

Har vi glömt något??

Din input hjälper oss att hålla saker korrekta. Kontakta oss om något är felaktigt eller saknas.

Kontakt