Aktivpriser er midlertidigt forsinketNogle aktiver modtager ikke længere friske prisdata. Opdateringerne genoptages automatisk, når dataforbindelsen er genoprettet.
Bitculator

Hent Bitculator til Android

Markedsværdi:

$1,993,178,180,086

24t volumen:

$198,583,650,129

jun. 23 Likvidationer:

$0

24T Lang/Kort:

Kommer snart

Bitculator · Lær

Reentrancy Attack

Hvad betyder Reentrancy Attack i krypto termer?

# 350·Opdateret jun. 2026·3 min læsning

Et Reentrancy Attack er en sikkerhedsfejl i smarte kontrakter, hvor en angriber udnytter kontraktens sårbarhed ved gentagne gange at kalde den, før den oprindelige udførelse er afsluttet.

Hvad er Reentrancy Attack?

En Reentrancy Attack opstår, når en kontrakt overgiver kontrol til en anden kontrakt under et kald, og den eksterne kode hopper tilbage ind i den første kontrakt, før den når at opdatere sine registre. Det tidsmæssige trick gør det muligt for angriberen at gentage følsomme handlinger som udbetalinger igen og igen. Forestil dig at bede om en tilbagebetaling og så bevæge dig tilbage til skranken, før kassereren låser kassen.


Myte

“Kun gammel kode kan blive ramt af en Reentrancy Attack.” Det er ikke sandt. Enhver kontrakt, der foretager et eksternt kald før den låser sin egen tilstand, kan være sårbar, hvis logikken er dårligt skrevet.


Hvordan Reentrancy Attack virker

Kort historie. En typisk smart kontrakt har en udbetalingsfunktion, som sender midler til den, der anmoder. Hvis den sender midlerne først og først rydder saldoen senere, kan en angriber smutte ind med et callback og bede om mere, før saldoen sættes til nul.

  1. Start: Angriberen indsætter nogle midler for at se legitim ud.
  2. Kald: Angriberen udløser udbetalingsfunktionen på målkontrakten.
  3. Fallback: Målet sender midler, hvilket kører angriberens fallbackfunktion.
  4. Gentag: Den fallbackfunktion kalder udbetalingsfunktionen igen, før saldoen opdateres.
  5. Tømning: Løkken fortsætter, indtil kontrakten mangler midler eller gas. Ja, det er tricket.

Én lille fejl i rækkefølgen, stort problem.


Hvorfor Reentrancy Attack er vigtig

Det betyder noget, fordi tidsfejl flytter rigtige penge hurtigt. Derudover er det et af de klassiske angreb, som alle udviklere og nysgerrige brugere bør kunne genkende med det samme.

  • Fordel: At kende mønstret hjælper dig med at få øje på risikabel kode og holde midler sikre.
  • Perspektiv: Det trives på offentlig gennemsigtighed, da alt på en blockchain er synligt og kan kaldes.
  • Relevans: Du vil møde det i DeFi, broer, kasser og endda i udbetalinger fra DAO'er.

Tip

Følg checks then effects then interactions. Opdater saldi først, og foretag så eksterne kald. Tilføj en simpel reentrancy guard for ekstra sikkerhed.


Vigtige kendetegn ved Reentrancy Attack

Her er, hvad der får det til at fungere:

  • Rekursion: Ekstern kode kalder tilbage ind i samme kontrakt, før den er færdig.
  • Rækkefølge: Fejlen opstår, når afsendelse af midler eller eksternt kald sker før opdatering af tilstanden.
  • På tværs: Den kan hoppe mellem flere kontrakter, ikke kun en funktion.
  • Aktiver: Fungerer med ETH, tokens og endda regnskabskreditter, hvis det er kodet dårligt.

Varianter

Forskellige variationer, samme hovedpine for dårligt skrevet kode:

  • Enkelt: Genindtræden i den samme funktion gentagne gange.
  • Tværgående: Genindtræden via en anden funktion i samme kontrakt.
  • Flere: Genindtræden på tværs af to eller flere kontrakter i en løkke.
  • Kun læsning: At påvirke views eller prisorakler for at snyde efterfølgende skrivninger.

Påmindelse

At rette en Reentrancy Attack handler ikke kun om én funktion. Gennemgå hvert eksternt kald, tilføj tests for mærkelige kaldkæder, og planlæg regelmæssige revisioner.


Eksempel

I 2016 udnyttede The DAO en reentrancyløkke i udbetalingsfunktionen, før saldi blev nulstillet, hvilket tømte en massiv skattekiste på få minutter.


Sjov fakta

Fællesskabets huskeregel checks then effects then interactions stammer fra tidlige sikkerhedsguides og blev hængende, fordi den er kort, let at huske og virker.


Afrunding

Kort version du kan have i lommen: hvis udenlandsk kode kan kalde dig, før du er færdig med din egen bogføring, så antag, at den vil det, og du kan komme til at give den gratis penge. Det er en Reentrancy Attack.

Har vi glemt noget??

Dit input hjælper os med at holde tingene korrekte. Kontakt os, hvis noget er forkert eller mangler.

Kontakt