توکن Allowance چیست؟ چه کاربردی دارد؟ دسترسی برداشت دادن به قراردادهای هوشمند چه خطراتی دارد؟ برای جلوگیری از خطرهای احتمالی چه راهکاری وجود دارد؟ در این مقاله، به صورت عملی و در قالب ویدیو، نحوه محدود کردن دسترسی به رمزارزهایتان در برنامههای غیرمتمرکز اتریوم را آموزش خواهیم داد. با میهن بلاکچین همراه باشید.
Token Allowance چیست و چطور آن را محدود کنیم؟
یکی از کاربردهای بلاکچین انجام امور مالی غیرمتمرکز است. اپلیکیشنهای مهمی که برای انجام این امور راهاندازی شدهاند، در حوزههای ترید، استیک و وامدهی فعالیت میکنند. برای مثال میشود به اپلیکیشنهای Uniswap، Aave، DyDX، Kyber، Compound اشاره کرد.
برای کار کردن با این اپلیکیشنها، شما باید دسترسی خرج کردن یا برداشت از داراییهای خودتان را در اختیار آنها قرار دهید که اصطلاحا به آن توکن Allowance گفته میشود.
در این ویدیو، به بررسی این مفهوم و نحوه محدود کردن دسترسی اپلیکیشنهای غیرمتمرکز به داراییهای کیف پول خود پرداختیم.
چرا باید دسترسی برداشت از حسابتان را در اختیار اپلیکیشنها قرار دهید؟
بلاکچین اتریوم و بلاکچینهای مشابه آن، بستری فراهم کردند تا اپلیکیشنهای مختلف بتوانند بر روی آن ها خدمات خود را ارائه کنند. کوین ETH در بلاکچین اتریوم کاربردهای مختلفی دارد و به عنوان کوین محلی یا Native اتریوم شناخته میشود. توکنهای دیگری که با استانداردهای مختلف بر روی بلاکچین اتریوم راه اندازی شدهاند، هر کدام قرارداد هوشمند هستند. پس ETH با بقیه توکنهایی که بر بستر بلاکچین اتریوم قرار دارند، ماهیت متفاوتی دارد. با توجه به اینکه اپلیکیشنهای راهاندازیشده خود قرارداد هوشمند هستند و توکنها نیز قرارداد هوشمند هستند، محدودیتهایی برای ارائه خدمات به وجود میآید. برای بهره بردن از خدمات ارائهشده توسط اپلیکیشنها، شما باید به قرارداد هوشمند اپلیکیشنهای مختلف دسترسی بدهید تا از دارایی شما که خود در قالب قرارداد هوشمند است، برداشت کند. در غیر این صورت شما نمیتوانید از خدمات آنها استفاده کنید.
در واقع باید به این موضوع اشاره کرد که در قرارداد هوشمند توکن و اپلیکیشنها، توابعی کدنویسی شده است و برای برقراری ارتباط و تعامل بین این توابع، دادن این دسترسی نیاز است. با دادن این دسترسی قرارداد هوشمند اپلیکیشن میتواند داراییهای شما را خرج کند! یکی از دلایل مهم دادن دسترسی برداشت این است که قرارداد هوشمند اپلیکیشن بتواند وضعیت کاربر را در تعاملات با اپلیکیشن بهروز نگه دارد و خدمات را بهدرستی ارائه کند. اپلیکیشنها در اولین تعامل کاربر، از آنها درخواست دسترسی برداشت میکنند و در صورتی که کاربر آن را تایید کند، خدمات خود را ارائه میکنند.
مثلا شما بهدنبال واریز کردن استیبل کوین USDC به پلتفرم کامپوند هستید، در ابتدا کامپوند از شما اجازه دسترسی برداشت از دارایی شما را میخواهد و بعد شما میتوانید مقداری که مورد نظرتان است را در پلتفرم کامپوند واریز نمایید. تقریبا همه اپلیکیشنهای غیرمتمرکز زمانی که میخواهند اجازه دسترسی از کاربر بگیرند، به صورت پیشفرض سطح دسترسی را نامحدود اعلام میکنند و کاربر میتواند این سطح دسترسی را محدود کند و مثلا اعلام کند که تا ۱۰۰۰ USDC اجازه برداشت میدهم.
در صورتی که شما بخواهید بیشتر از ۱۰۰۰ USDC با اپلیکیشن تعامل داشته باشید، باز هم باید سطح دسترسی را در قالب یک تراکنش دیگر افزایش دهید و این کار هزینه کارمزد تراکنش را به کاربر تحمیل میکند.
پس اپلیکیشنها برای ارائه تجربه کاربری بهتر، این پیشفرض را در نظر گرفتهاند. ولی باید بهیاد داشته باشیم که قراردادهای هوشمند بینقص نیستند و هر زمانی ممکن است با مشکلاتی مواجه شوند و در صورتی که شما اجازه برداشت نامحدود به پلتفرمها دهید، ریسک قابلتوجهی را برای دارایی خودتان ایجاد کردهاید.
نمونههایی از پلتفرمهای هک شده بهواسطه دادن اجازه برداشت نامحدود
در سال ۲۰۲۰ اپلیکیشن Bancor با این مشکل مواجه شد و یک هکر کلاه سفید توانست موجودی کاربران را برداشت کند. البته موجودیها به کاربران بازگردانده شد و صرفا هدف هکر نشان دادن این موضوع بود.
در سال ۲۰۲۱ نیز اپلیکیشن Furucombo هک شد و جالب اینجاست که حتی کاربرانی که هیچ واریزی به اپلیکیشن Furucombo نداشتند هم داراییهای خود را از دست دادند.
حتی پروژههایی راهاندازی شدند که هدف آنها سوءاستفاده از همین موضوع بود مثل UniCat و Degen Money.
آیا کیف پول سخت افزاری، راهکار مناسبی برای جلوگیری از این موضوع است؟
خیر. با داشتن کیف پول سخت افزاری شما در واقع از کلید خصوصی خودتان با سطح امنیت بالاتری نگهداری میکنید. ولی باید این موضوع را بهیاد داشته باشید که وقتی سطح دسترسی نامحدود به اپلیکیشنها میدهید، بدون داشتن کلید خصوصی اجازه برداشت داراییهای شما را خواهند داشت.
درست است که کیفپولهای سخت افزاری امنیت بالاتری دارند و شما را در مقابل مشکلات و حفرههای امنیتی بسیاری در امان نگه میدارند، ولی در مورد توکن Allowance قضیه متفاوت است و در صورتی که دسترسی نامحدود به اپلیکیشنها داده باشید، دارایی شما در خطر است.
برنامهنویسها و کاربران چه کارهایی میتوانند انجام دهند؟
برنامهنویسها میتوانند برای توسعه برنامههای خود پروپوزالهای مشابه EIP2612 را دنبال کنند که در آن اجازه دسترسی برداشت صرفا از طریق پیام امضا شده امکانپذیر است و نیازی به ثبت تراکنش در شبکه و تحمیل هزینههای کارمزد به کاربر نیست. با این کار، کاربر در هر تعامل با اپلیکیشن میتواند پیام امضا شده را تایید کند و از خدمات اپلیکیشن بهره ببرد. (البته این پروپوزال هنوز پیادهسازی نشده است ولی برنامه نویسها میتوانند آن را دنبال کنند تا از ویژگی آن در برنامه خود بهره ببرند)
بهترین کاری که کاربران میتوانند انجام دهند این است که تخمینی از میزان دارایی که میخواهند در آینده نزدیک به اپلیکیشنها واریز کنند را در نظر بگیرند و به جای دادن سطح برداشت نامحدود، سطح برداشت محدود به آنها بدهند.
چطور سطح دسترسیهای برداشت نامحدود را به محدود تبدیل کنیم؟
یکی از روشها این است که شما تاریخچه تراکنشهای کیف پولتان را در اکسپلورر بلاکچین بررسی کنید و تراکنشهای مرتبط را پیدا کنید و با قرارداد هوشمند آن اپلیکیشن از طریق اتر اسکن مجدد تراکنش اجازه سطح دسترسی داشته باشید و سطح دسترسی را مقداری که مورد نظرتان است، در قالب یک تراکنش ثبت کنید.
روش سادهتر این است که شما به سایت Revoke.cash مراجعه کرده و آدرس کیف پول خودتان را در آن وارد کنید. این سایت تراکنشهای مرتبط با اجازه سطح برداشت که آدرس شما داشته است را پیدا میکند و به راحتی شما میتوانید سطح دسترسیهایی که قبلا داشتهاید را تغییر دهید یا آنها را پس بگیرید و سطح دسترسی برداشت را به صفر برسانید.
نحوه کار کردن با این سایت و همچنین روش سنتی که گفته شد، در ویدئو آموزش داده شده است.
سوالات متداول (FAQ)
برای کار کردن با اپلیکیشنهای غیرمتمرکز شما باید دسترسی خرج کردن یا برداشت داراییهای خود را در اختیار آنها قرار دهید که اصطلاحا به آن توکن Allowance گفته میشود.
یک راه برای توقف دسترسی (Allowance) برنامهها به داراییهای شما استفاده از سایت Revoke.cash است. روش دیگر تعریف اجازه دسترسی از طریق مرورگر بلاکچینی است که در این ویدیو توضیح داده شده است.
جمعبندی
توکن Allowance یکی از نیازهای کاربر برای ارتباط و تعامل داشتن با اپلیکیشنهای غیرمتمرکز است. اجازه برداشت نامحدود دادن به اپلیکیشنهای غیرمتمرکز ریسک قابلتوجهی را به دارایی شما تحمیل میکند. شما با دیدن این آموزش به راحتی میتوانید این ریسک را به حداقل ممکن برسانید.
نظر شما درباره استفاده از این روش چیست؟ آیا تا به حال دسترسیهایی که به Dappها دادهاید، باعث ضرر و زیان شما شده است؟