Definiție
Allowance este un primitiv de securitate care definește o limită cantitativă asupra a ceea ce are voie o altă adresă, de obicei un smart contract, să facă cu tokenurile unui utilizator. Reprezintă un plafon de cheltuire sau de administrare preautorizat, stocat de regulă în contabilitatea internă a contractului de token. Prin setarea unui allowance, deținătorul de tokenuri deleagă o putere controlată unei alte entități, fără a transfera însă proprietatea asupra tokenurilor.
În multe standarde de token, allowance este strâns legat de mecanismele de aprobare (approval) care înregistrează cât are voie un anumit „spender” să mute. Acest construct funcționează ca o limită de acces foarte granulară, restricționând mișcările de tokenuri la suma maximă autorizată în mod explicit. În consecință, allowance este esențial pentru modul în care aplicațiile descentralizate impun Access Control asupra soldurilor utilizatorilor.
Context și utilizare
Allowance este folosit în mod obișnuit atunci când un utilizator interacționează cu aplicații on-chain care au nevoie de permisiune temporară sau continuă pentru a muta tokenuri în numele său. Valoarea allowance-ului acționează ca un mecanism de protecție, astfel încât, chiar dacă un „spender” este compromis, acesta nu poate depăși limita prestabilită fără o nouă autorizare. Deoarece este o înregistrare persistentă on-chain, allowance-ul rămâne în vigoare până când este modificat sau resetat.
Setările de allowance configurate greșit sau prea larg pot crește expunerea la riscuri precum tiparele de atac Approval Exploit, în care contracte malițioase sau cu bug-uri abuzează de permisiunile acordate. Din acest motiv, allowance este privit ca un element de bază al designului de Access Control în ecosistemele de tokenuri, influențând cât de sigur sunt delegate și limitate permisiunile la nivel de protocol.