Bitculator

Získajte Bitculator pre Android

Trhová kapitalizácia:

$2.59 T

Objem 24h:

$14.94 B

10 23 Likvidácie:

$2.61 M

Zaregistrovať sa

Bitculator · Učiť sa

Reentrancy Attack

Čo znamená Reentrancy Attack v kryptomenovej terminológii?

# 350·Aktualizované okt 2026·3 min čítania

útok reentrancy je bezpečnostná chyba v smart kontraktoch, pri ktorej útočník zneužíva zraniteľnosť kontraktu opakovaným volaním ešte pred dokončením počiatočného vykonávania.

Čo je útok reentrancy?

Útok reentrancy je, keď zmluva počas volania pošle kontrolu inej zmluve a ten externý kód sa vráti späť do prvej zmluvy pred dokončením aktualizácie jej záznamov. Táto časová finta umožní útočníkovi opakovane vykonávať citlivé akcie, ako sú výbery, znovu a znovu. Predstavte si žiadosť o vrátenie peňazí a následné vrátenie na pokladnicu skôr, než pokladničný systém uzavrie transakciu.


Mýtus

„Len starý kód môže byť zasiahnutý útokom reentrancy.“ Nie je to pravda. Akákoľvek zmluva, ktorá robí externý volanie pred zamknutím vlastného stavu, môže byť zraniteľná, ak je logika nepresná.


Ako útok reentrancy funguje

Rýchla story. Typický smart contract má funkciu withdraw, ktorá posiela prostriedky volajúcemu. Ak pošle prostriedky najprv a stav záväzku vymaže neskôr, útočník sa môže pretlačiť späť callbackom a žiadať viac, kým sa zostatok nezmení na nulu.

  1. Start: Útočník vloží niektoré prostriedky, aby vyzeral dôveryhodne.
  2. Call: Útočník vyvolá withdraw na cieľovej zmluve.
  3. Fallback: Cieľová zmluva pošle prostriedky, čo spustí útočníkovu fallback funkciu.
  4. Repeat: Táto fallback volá withdraw znovu, ešte predtým, ako sa zostatok aktualizuje.
  5. Drain: Smyčka pokračuje, až kým zmluva nebude mať prostriedky alebo ktorýkoľvek plyn.

Jediná malá chyba v poriadku spôsobí veľký problém.


Prečo je útok reentrancy dôležitý

Budete sa starať, pretože časovanie chýb poháňa skutočné peniaze rýchlo. Navyše, ide o jeden z tých klasických zneužití, ktoré by mal každý vývojár a zvedavý používateľ rozpoznať na prvý pohľad.

  • Prínos: Poznanie vzoru vám pomôže rozpoznať rizikový kód a udržať prostriedky v bezpečí.
  • Perspektíva: Žije z verejnej transparentnosti, pretože všetko na blockchaine je viditeľné a volateľné.
  • Relevantnosť: Stretnete ho v DeFi, mostoch, pokladniach, dokonca aj v výplatách za správu pre DAO.

Tip

Nasledujte checks then effects then interactions. Najprv aktualizujte stavy, potom robte externé volania. Pridajte jednoduchú ochranu proti reentrancy pre extra bezpečnosť.


Kľúčové charakteristiky útoku reentrancy

Tu je, čo ho poháňa:

  • Rekurzia: Externý kód volá späť do rovnakej zmluvy ešte pred tým, ako tá skončí.
  • Poradie: Chyba sa objaví, keď odosielanie prostriedkov alebo volanie smeruje skôr, ako sa stav aktualizuje.
  • Cross: Môže preskočiť cez viacero zmlúv, nie len cez jednu funkciu.
  • Prostriedky: Funguje s ETH, tokenmi a dokonca aj účtovnými kreditmi, ak je zlé napísané.

Variácie

Rôzne varianty, ten istý problém pre neporiadny kód:

  • Jednoriadkový: Reentracia do rovnakej funkcie opakovane.
  • Cross: Reentrácia cez inú funkciu v rámci tej istej zmluvy.
  • Multi: Reentrácia cez dve alebo viacej zmlúv v cykle.
  • ReadOnly: Ovlivňovanie pohľadov alebo cenových oracle-ov na neskoršie zápisy.

Pripomienka

Oprava útoku reentrancy nie je len o jednej funkcii. Prehliadnite každé externé volanie, pridajte testy na podivné reťazce volaní a naplánujte pravidelné audity.


Príklad

Využitie The DAO v roku 2016 použilo reentrancy slučku pri withdraw pred tým, ako boli zostatky vyčistené, čo rýchlo vyprázdnilo obrovskú pokladnicu.


Zaujímavý fakt

Komunitná catchphrase checks then effects then interactions vznikla z raných bezpečnostných príručiek a drží sa, pretože je krátka, zapamätateľná a funguje.


Záver

Krátka verzia, ktorú si môžete nurkovať do vrecka: ak externé kódy môžu volať vás skôr, ako dokončíte svoje vlastné účtovanie, predpokladajte, že budú volať a môžete mu odozdať zadarmo peniaze. To je útok reentrancy.

Na niečo sme zabudli?

Vaša spätná väzba nám pomáha udržiavať informácie správne. Ak je niečo nesprávne alebo chýba, kontaktujte nás.

Kontakt