Aktivapriser er midlertidig forsinketNoen aktiva mottar ikke lenger ferske prisdata. Oppdateringene gjenopptas automatisk når datatilkoblingen er gjenopprettet.
Bitculator

Få Bitculator på Android

Markedsverdi:

$2,049,235,008,678

Volum 24t:

$178,392,769,583

juni 04 Likvidasjoner:

$0

24T Lang/Kort:

Kommer snart

Reentrancy Attack

Hva betyr Reentrancy Attack i krypto-uttrykk?

En Reentrancy Attack er en sikkerhetsfeil i smarte kontrakter der en angriper utnytter kontraktens sårbarhet ved å kalle den gjentatte ganger før den første utførelsen er fullført.

ID: 350
Hero Image

Hva er Reentrancy Attack?

En Reentrancy Attack er når en kontrakt overfører kontroll til en annen kontrakt under et kall, og den eksterne koden hopper tilbake inn i den første kontrakten før den er ferdig med å oppdatere sine registre. Den tidsmessige triksen lar angriperen gjenta sensitive handlinger som uttak om og om igjen. Tenk deg at du ber om refusjon, og så sniker deg tilbake til disken før kassereren låser kassen.


Myte

«Bare gammel kode kan bli rammet av en Reentrancy Attack.» Ikke riktig. Enhver kontrakt som gjør et eksternt kall før den låser sin egen tilstand kan være sårbar hvis logikken er slurvete.


Hvordan Reentrancy Attack fungerer

Kort historie. En typisk smart kontrakt har en uttaksfunksjon som sender midler til den som kaller. Hvis den sender midlene først og nullstiller saldoen etterpå, kan en angriper snike inn et tilbakekall og be om mer før saldoen settes til null.

  1. Start: Angriperen setter inn midler for å se troverdig ut.
  2. Kall: Angriperen utløser uttak på målkontrakten.
  3. Fallback: Målet sender midler, som kjører angriperens fallback-funksjon.
  4. Gjenta: Den funksjonen kaller uttak igjen før saldoen er oppdatert.
  5. Tømme: Løkken fortsetter til kontrakten går tom for midler eller gas. Ja, det er trikset.

En liten feil i rekkefølgen gir store problemer.


Hvorfor Reentrancy Attack er viktig

Dette angår deg fordi tidsfeil kan flytte ekte penger raskt. I tillegg er dette en klassisk utnyttelse som enhver utvikler og nysgjerrig bruker bør kjenne igjen ved første øyekast.

  • Fordel: Å kjenne mønsteret hjelper deg å oppdage risikabel kode og holde midler trygge.
  • Perspektiv: Den trives på offentlig gjennomsiktighet siden alt på en blokkjede er synlig og kan kalles.
  • Relevans: Du vil se det i DeFi, broer, kasser, og til og med i styringsutbetalinger for DAOs.

Tips

Følg først sjekkene, så effektene, så interaksjonene. Oppdater saldi først, og gjør eksterne kall etterpå. Legg til en enkel reentrancy guard for ekstra sikkerhet.


Nøkkeltrekk ved Reentrancy Attack

Slik fungerer det:

  • Rekursjon: Ekstern kode kaller tilbake inn i samme kontrakt før den er ferdig.
  • Rekkefølge: Feilen oppstår når sending av midler eller eksternt kall skjer før tilstand oppdateres.
  • Kryss: Den kan hoppe mellom flere kontrakter, ikke bare én funksjon.
  • Eiendeler: Virker med ETH, tokens, og til og med regnskapskreditter hvis koden er dårlig.

Varianter

Ulike varianter, samme problem for slurvete kode:

  • Enkel: Gjeninntreden i samme funksjon gjentatte ganger.
  • Kryss: Gjeninntreden via en annen funksjon i samme kontrakt.
  • Multi: Gjeninntreden over to eller flere kontrakter i en løkke.
  • ReadOnly: Påvirke view-funksjoner eller prisorakler for å lure senere skriv.

Påminnelse

Å fikse en Reentrancy Attack handler ikke bare om én funksjon. Gå gjennom hvert eksterne kall, legg til tester for uvanlige kallkjeder, og planlegg regelmessige revisjoner.


Eksempel

Angrepet mot The DAO i 2016 utnyttet gjeninntreden ved uttak før saldoer ble nullstilt, og tappet en enorm kasse i løpet av minutter.


Visste du

Fellesskapets huskeregel «sjekkene, så effektene, så interaksjonene» kom fra tidlige sikkerhetsguider og ble værende fordi den er kort, lett å huske, og fordi den fungerer.


Oppsummering

Kort versjon du kan ha i bakhodet: hvis ekstern kode kan kalle deg før du er ferdig med din egen bokføring, anta at den vil det, og du kan gi bort penger gratis. Det er en Reentrancy Attack.

Utforsk Andre Krypto Begreper

Fant du dette begrepet klart definert?

Har vi glemt noe??

Dine innspill hjelper oss med å holde ting korrekt. Kontakt oss hvis noe er feil eller mangler.

Kontakt