یکی از جالبترین عملکردهای توکنهای ERC-20 و ERC-777 اتریوم،توکن کمک هزینه یا «Allowance» یا «مجوز دسترسی به توکنها» است.
این یک عملکرد نسبتاً رایج در دنیای توکن ها است و در نظر گرفته شده تا امکان تعامل خودکار توکن ها را فراهم کند.
قراردادهای هوشمند با پولی که در جهت خاصی تنظیم شده است.
بدین صورت است که DApps y DEX می تواند از این منابع استفاده کند و عملیات خاصی را به طور مستقل انجام دهد.
مجوزها یا مجوزهای دسترسی،
به شخص ثالث اجازه می دهد تا حق انجام تراکنش مقدار معینی از توکن های ما را داشته باشد که با آدرس ما مرتبط است.
همه اینها بدون دادن کلید خصوصی آدرس شما امکان پذیر است.
اما چرا به جای حفظ کنترل روی آن،
اجازه دسترسی به پول خود را به یک قرارداد هوشمند بدهیم؟
خوب، در اینجا مفید بودن این نوع توابع را روشن خواهیم کرد و مهمتر از همه اینکه چگونه این عملکرد می تواند تعامل ما با قراردادهای هوشمند را تا حد زیادی تسهیل کند.
چرا توابع کمک هزینه ایجاد شد؟
در اتریوم ، یک توکن، واحدهای ارزی یک حساب هستند که در یک قرارداد هوشمند در بلاک چین ذخیره شده است.
پروژه اتریوم، از زمان آغاز به کار، به دلیل انعطاف پذیری بسیار زیاد برای این کار،
به طور گسترده ای برای ایجاد توکن های مختلف استفاده شده است.
در مواجهه با این وضعیت،
توسعه دهندگان اتریوم تصمیم گرفتند مشخصاتی برای ایجاد این توکن ها به صورت استاندارد ایجاد کنند،
ما در مورد توکن استاندارد ERC-20 صحبت می کنیم.
این استاندارد ساختار اصلی قرارداد هوشمند، شکل و عملکرد توکن ها در اتریوم را تعریف می کند.
یکی از این توابع تابع کمک هزینه است
که به دارندگان این توکن ها اجازه می دهد تا مجوزهای استفاده خاصی را به Dapps، DEX و DeFi برای توکن های موجود در یک آدرس داده شده اعطا کنند.
به این ترتیب، موجودی توکنهایی که شخص در یک آدرس دارد، با رضایت ما توسط Dapp قابل مدیریت است.
برای مثال، اگر بخواهیم با استفاده از یک Dapp، توکنها را بهطور خودکار ارسال کنیم،
تابع کمک هزینه به ما اجازه میدهد تا این اقدامات را بدون وقفه پیکربندی کنیم.
اینجاست که این امکان برای شما طراحی شده که بتوانید به آدرس های دیگر مجوز انتقال توکن های خود را بدهید.
یک آدرس می تواند یک قرارداد هوشمند یا به سادگی آدرسی باشد که توسط یک شخص یا ماشین کنترل می شود.
با این حال معمولاً به قراردادهای هوشمندی که از قوانین مکتوب، تغییرناپذیر و شفاف پیروی می کنند،
کمک هزینه داده می شود و در عین حال بتوانیم به عملکرد خوبش اعتماد کنیم و کسی نتواند از ما دزدی کند!
از سوی دیگر، تابع کمک هزینه به ما اجازه می دهد تا مقدار منصفانه و ضروری را که می خواهیم برای استفاده از یک قرارداد هوشمند در دسترس قرار دهیم، تعریف کنیم.
این بدون شک یکی دیگر از اقدامات امنیتی است
که به ما امکان می دهد نحوه انجام عملیات مختلف قراردادهای هوشمند را در حین تعامل با آنها کنترل کنیم.
و بهتر از همه، به ما این امکان را می دهد که این کار را به روشی غیر متمرکز و بدون نیاز به دخالت اشخاص ثالث قابل اعتماد در این فرآیند انجام دهیم.
توکن های ERC-20 و کمک هزینه
میتوان گفت که ورود «کمک هزینه» به دنیای ارزهای دیجیتال با ورود ERC-20 اتریوم انجام شد.
این استاندارد در ساختار خود دارای یک سری عملکردهای استاندارد است
که کار توسعه دهندگان را برای ایجاد قراردادهای هوشمند و Dappهایی تسهیل می کند که امکان تعامل غیرمتمرکز بین کاربر و شبکه اتریوم و توکن های مرتبط با آن را فراهم می کند.
برای دستیابی به این هدف، ERC-20 ها، در میان سایر قراردادهای هوشمند،
دارای عملکرد خاصی هستند که به عنوان “Allowance” یا “کمک هزینه” شناخته می شود و به طور کلی به شرح زیر تعریف می شود:
تابع کمک هزینه (آدرس مالک توکن، آدرس خرج کننده)
اساساً آنچه تابع درخواست می کند یک سری مجوزهای کاربر است.
این مجوزها به قرارداد هوشمند اجازه می دهد تا مقدار معینی از توکن خود را از آدرس ما به آدرسی که توسط قرارداد هوشمند تعریف شده است، (تخصیص دهد) منتقل کند.
این انتقال فقط محدود به مبلغی است که توسط کاربر Dapp مشخص و پذیرفته شده است.
در واقع، این یک اقدام امنیتی است که اجازه می دهد تا هزینه ای که قرارداد هوشمند ممکن است در هر تعامل و در کل آن متحمل شود، کنترل شود.
نمونه
نمونه ای از این قابلیت می تواند موارد زیر باشد:
کاربر می خواهد با قرارداد هوشمند به عنوان مثال Compound تعامل داشته باشد تا در یکی از استخرهای این پروتکل سرمایه گذاری کند.
این تعامل توسط قراردادهای هوشمند Compound کنترل می شود
و در آن مرحله Compound از کاربر درخواست دسترسی (Allowance) به مقدار معینی از توکن های تحت کنترل خود را می دهد.
با پذیرش تعامل مذکور،
Compound توکنها را گرفته،
در استخر مربوطه سرمایهگذاری میکند و از آنجا موجودی مسدود شده در استخر مذکور را به همراه سایر دادههای کاربر برمیگرداند.
همیشه فرآیند «مجوز» یک فرآیند درخواست است و به اجازه صریح کاربر نیاز دارد.
بنابراین، برای مثال، اگر یک Dapp درخواست دسترسی ناخواسته به موجودی را داشته باشد،
شما باید آن دسترسی مخرب را رد کنید!




