تعریف
Allowance یک سازوکار پایه امنیتی است که یک حد کمی برای کارهایی که یک آدرس دیگر (معمولاً یک smart contract) مجاز است با توکنهای کاربر انجام دهد، تعیین میکند. این مفهوم نشاندهنده یک سقف از پیش مجازشده برای خرج کردن یا مدیریت است که معمولاً در حسابداری داخلی قرارداد توکن ذخیره میشود. با تنظیم یک Allowance، دارنده توکن قدرت کنترلشدهای را به یک موجودیت دیگر واگذار میکند، بدون اینکه مالکیت خود توکنها را منتقل کند.
در بسیاری از استانداردهای توکن، Allowance بهطور نزدیک با سازوکارهای Approval گره خورده است که ثبت میکنند یک خرجکننده مشخص تا چه مقدار مجاز است توکن جابهجا کند. این ساختار مانند یک مرز دسترسی بسیار دقیق عمل میکند و جابهجایی توکنها را به حداکثر مقداری که بهطور صریح مجاز شده، محدود میسازد. در نتیجه، Allowance در نحوه اعمال Access Control بر موجودی کاربران توسط برنامههای غیرمتمرکز نقش محوری دارد.
بستر و موارد استفاده
Allowance معمولاً زمانی استفاده میشود که کاربر با برنامههای روی زنجیره تعامل میکند و آن برنامهها برای جابهجایی توکنها از طرف کاربر، به مجوز موقت یا دائمی نیاز دارند. مقدار Allowance مانند یک ریل ایمنی عمل میکند؛ بهطوریکه حتی اگر خرجکننده دچار نفوذ یا compromise شود، بدون دریافت مجوز جدید نمیتواند از حد از پیش تعیینشده فراتر برود. چون Allowance یک رکورد دائمی روی زنجیره است، تا زمانی که تغییر نکند یا بازنشانی نشود، معتبر باقی میماند.
تنظیمات نادرست یا بیش از حد گسترده Allowance میتواند ریسکهایی مانند الگوهای حمله Approval Exploit را افزایش دهد؛ جایی که قراردادهای مخرب یا دارای باگ از مجوزهای اعطا شده سوءاستفاده میکنند. به همین دلیل، Allowance بهعنوان یک جزء اصلی در طراحی Access Control در اکوسیستمهای توکنی در نظر گرفته میشود و بر اینکه مجوزها در سطح پروتکل تا چه حد ایمن واگذار و محدود شوند، تأثیر مستقیم دارد.