Bitculator

Obțineți Bitculator pe Android

Capitalizare de piață:

$2.74 T

Volum 24h:

$15.06 B

oct. 03 Lichidări:

$1.37 M

Înregistrează-te

Bitculator · Învață

Reentrancy Attack

Ce înseamnă Reentrancy Attack în limbajul cripto?

# 350·Actualizat oct. 2026·3 min de citit

Un atac de reentrancy este o vulnerabilitate de securitate în contractele inteligente, pe care un atacator o exploatează apelând repetat contractul înainte ca execuția inițială să se încheie.

Ce este un atac de tip reentrancy?

Un atac de tip reentrancy are loc atunci când un contract transferă controlul către un alt contract în timpul unui apel, iar codul extern revine în primul contract înainte ca acesta să-și termine actualizarea înregistrărilor. Acest truc de sincronizare îi permite atacatorului să repete acțiuni sensibile, precum retragerile, iar și iar. Imaginează-ți că soliciți o rambursare, apoi te strecori din nou la tejghea înainte ca casierul să încuie casa de marcat.


Mit

„Doar codul vechi poate fi vulnerabil la un atac de tip reentrancy.” Fals. Orice contract care face un apel extern înainte de a-și bloca propria stare poate fi vulnerabil dacă logica este neglijentă.


Cum funcționează un atac de tip reentrancy

Pe scurt, iată cum stau lucrurile. Un contract inteligent obișnuit are o funcție de retragere care trimite fonduri apelantului. Dacă trimite fondurile mai întâi și actualizează soldul ulterior, atacatorul poate strecura un apel de revenire și poate solicita mai multe fonduri înainte ca soldul să fie setat la zero.

  1. Început: Atacatorul depune niște fonduri pentru a părea legitim.
  2. Apel: Atacatorul declanșează funcția de retragere a contractului vizat.
  3. Funcție fallback: Contractul vizat trimite fonduri, ceea ce execută funcția fallback a atacatorului.
  4. Repetare: Funcția fallback apelează din nou funcția de retragere înainte ca soldul să fie actualizat.
  5. Golire: Bucla continuă până când contractul rămâne fără fonduri sau fără gas. Da, acesta este trucul.

O mică greșeală de ordine, o problemă majoră.


De ce contează atacurile de tip reentrancy

Ar trebui să-ți pese, fiindcă erorile de sincronizare pot transfera bani reali, rapid. În plus, acesta este unul dintre exploit-urile clasice pe care orice dezvoltator și utilizator curios ar trebui să le recunoască imediat.

  • Beneficiu: Dacă înțelegi tiparul, poți identifica codul riscant și poți proteja fondurile.
  • Perspectivă: Atacul profită de transparența publică, deoarece totul pe un blockchain este vizibil și poate fi apelat.
  • Relevanță: Îl vei întâlni în DeFi, în bridge-uri, în trezorerii și chiar la plățile de guvernanță pentru DAO-uri.

Sfat

Respectă ordinea verificări, apoi efecte, apoi interacțiuni. Actualizează mai întâi soldurile și abia apoi efectuează apeluri externe. Pentru siguranță suplimentară, adaugă o protecție simplă împotriva reentrancy.


Caracteristici-cheie ale atacurilor de tip reentrancy

Iată ce îl face posibil:

  • Recursivitate: Codul extern apelează din nou același contract înainte ca acesta să-și termine execuția.
  • Ordinea operațiilor: Eroarea apare când trimiterea fondurilor sau apelarea unui contract extern are loc înainte de actualizarea stării.
  • Între contracte: Atacul poate trece prin mai multe contracte, nu doar printr-o singură funcție.
  • Active: Poate viza ETH, tokenuri și chiar credite contabile, dacă sunt gestionate necorespunzător în cod.

Variante

Forme diferite, aceeași bătaie de cap pentru codul neglijent:

  • Singulară: Reapelarea repetată a aceleiași funcții.
  • Între funcții: Reapelarea printr-o altă funcție din cadrul aceluiași contract.
  • Multiplă: Reapelarea printr-o buclă care implică două sau mai multe contracte.
  • ReadOnly: Influențarea funcțiilor de citire sau a oracolelor de preț pentru a induce în eroare operațiile de scriere ulterioare.

Reține

Remedierea unui atac de tip reentrancy nu înseamnă doar să repari o singură funcție. Verifică fiecare apel extern, adaugă teste pentru lanțuri de apeluri neobișnuite și programează audituri regulate.


Exemplu

Exploit-ul The DAO din 2016 a folosit o buclă de reentrancy în funcția de retragere, înainte ca soldurile să fie șterse, golind o trezorerie uriașă în câteva minute.


Curiozitate

Sintagma comunității „verificări, apoi efecte, apoi interacțiuni” provine din ghidurile timpurii de securitate și a prins fiindcă este scurtă, ușor de reținut și funcționează.


Pe scurt

Pe scurt, ca să ții minte: dacă un cod extern te poate apela înainte să-ți termini propria evidență contabilă, pornește de la ideea că o va face și că ai putea să-i dai bani gratis. Acesta este un atac de tip reentrancy.

Am uitat ceva?

Contribuția dumneavoastră ne ajută să menținem datele corecte. Contactați-ne dacă ceva este greșit sau lipsește.

Contact