Bitculator

Preuzmite Bitculator za Android

Tržišna kapitalizacija:

$2.74 T

Promet 24h:

$11.61 B

okt 03 Likvidacije:

$1.60 M

Registrujte se

Bitculator · Učenje

Reentrancy Attack

Šta znači Reentrancy Attack u kripto terminologiji?

# 350·Ažurirano okt 2026·3 min čitanja

Reentrancy Attack je bezbednosni propust u pametnim ugovorima koji napadač iskorišćava tako što više puta poziva ugovor pre nego što se početno izvršavanje završi.

Šta je reentrancy napad?

Reentrancy napad nastaje kada ugovor tokom poziva prepusti kontrolu drugom ugovoru, a taj spoljni kod se vrati u prvi ugovor pre nego što on završi ažuriranje svoje evidencije. Ovaj trik s tempiranjem omogućava napadaču da iznova ponavlja osetljive radnje, poput isplata. Zamislite da tražite povraćaj novca, a zatim se ušunjate nazad do šaltera pre nego što blagajnik zaključa kasu.


Zabluda

„Samo stari kod može biti meta reentrancy napada.“ Nije tačno. Svaki ugovor koji upućuje spoljašnji poziv pre nego što zaključa sopstveno stanje može biti ranjiv ako je logika nemarno napisana.


Kako funkcioniše reentrancy napad

Evo kratke priče. Tipičan pametni ugovor ima funkciju za isplatu koja šalje sredstva pozivaocu. Ako prvo pošalje sredstva, a tek kasnije ažurira stanje salda, napadač može da ubaci povratni poziv i zatraži još pre nego što saldo bude postavljen na nulu.

  1. Početak: Napadač uplati nešto sredstava kako bi delovao legitimno.
  2. Poziv: Napadač pokreće isplatu u ciljnom ugovoru.
  3. Fallback: Ciljni ugovor šalje sredstva, čime se pokreće fallback funkcija napadača.
  4. Ponavljanje: Ta fallback funkcija ponovo poziva isplatu pre nego što se saldo ažurira.
  5. Pražnjenje: Petlja se nastavlja sve dok ugovor ne ostane bez sredstava ili gasa. Da, u tome je trik.

Jedna sitna greška u redosledu, veliki problem.


Zašto je reentrancy napad važan

Važno je da ovo razumete jer greške u tempiranju mogu brzo da odnesu pravi novac. Osim toga, ovo je jedan od klasičnih napada koje bi svaki graditelj i radoznali korisnik trebalo odmah da prepozna.

  • Prednost: Poznavanje ovog obrasca pomaže vam da uočite rizičan kod i zaštitite sredstva.
  • Perspektiva: Napad se oslanja na javnu transparentnost, jer je sve na blokčejnu vidljivo i dostupno za pozivanje.
  • Relevantnost: Možete ga sresti u DeFi-ju, mostovima, trezorima, pa čak i u isplatama po osnovu upravljanja za DAO organizacije.

Savet

Pratite redosled: provere, izmene stanja, pa interakcije. Prvo ažurirajte salda, a tek onda upućujte spoljašnje pozive. Dodajte jednostavnu zaštitu od reentrancy napada za dodatnu sigurnost.


Ključne karakteristike reentrancy napada

Evo šta ga pokreće:

  • Rekurzija: Spoljni kod ponovo poziva isti ugovor pre nego što on završi.
  • Redosled: Do greške dolazi kada se sredstva šalju ili se upućuje spoljašnji poziv pre ažuriranja stanja.
  • Unakrsno pozivanje: Napad može da se prebacuje između više ugovora, a ne samo jedne funkcije.
  • Sredstva: Može da pogodi ETH, tokene, pa čak i obračunske kredite ako je kod loše napisan.

Varijante

Različiti oblici, ista muka za nemarno napisan kod:

  • Jednostruki: Ponovljeno pozivanje iste funkcije.
  • Unakrsni: Ponovni ulazak preko druge funkcije u istom ugovoru.
  • Višestruki: Ponovni ulazak kroz dva ili više ugovora u petlji.
  • ReadOnly: Uticanje na funkcije za čitanje ili cenovne orakle kako bi se obmanule kasnije izmene stanja.

Podsetnik

Otklanjanje reentrancy napada ne svodi se na jednu funkciju. Proverite svaki spoljašnji poziv, dodajte testove za neobične lance poziva i redovno zakazujte revizije.


Primer

Napad na The DAO iz 2016. iskoristio je petlju reentrancy poziva prilikom isplate, pre nego što su salda bila ažurirana, i za nekoliko minuta ispraznio ogroman trezor.


Zanimljivost

Izraz „prvo provere, zatim izmene stanja, pa interakcije“ potiče iz ranih vodiča za bezbednost. Ustalio se zato što je kratak, lako se pamti i funkcioniše.


Zaključak

Ukratko, ovo zapamtite: ako spoljni kod može da vas pozove pre nego što završite sopstveno vođenje evidencije, računajte na to da će pokušati — i mogli biste mu dati besplatan novac. To je reentrancy napad.

Da li smo nešto propustili?

Vaš doprinos nam pomaže da podaci budu tačni. Kontaktirajte nas ako je nešto netačno ili nedostaje.

Kontakt