طبق معمول برای سواپ داراییهای خود، درخواست پلتفرم را برای دسترسی به توکنهای کیف پولم تایید کردم؛ اما ایندفعه یک نکته ذهنم را درگیر کرد: چطور میتوانم تاییدیه قرارداد هوشمند را لغو کنم؟ چه راهکاری برای Revoke کردن یا قطع دسترسی قرارداد هوشمند به کیف پول وجود دارد؟ همانطور که میدانید هنگام تعامل با دکسها (DEX) یا دپها (DApp) برای اینکه قرارداد هوشمند بتواند از طرف ما عملیاتی مثل استیک یا سواپ توکن را انجام دهد، باید اجازه دسترسی به توکن (Token Allowance) را تایید کنیم؛ اما مسئله این است که ممکن است امنیت داراییهایمان به خطر بیفتد. بنابراین باید دسترسی برنامههای غیرمتمرکز به دارایی را محدود یا لغو کنیم. با میهن بلاکچین همراه باشید تا ببینیم مفهوم Revoke چیست و چطور میتوانیم دسترسیهای اعطاشده به کیف پول را لغو کنیم.
نکات کلیدی 🟣ریوک کردن (Revoke) به عملی گفته میشود که دسترسی کیف پولمان را به قراردادهای هوشمند لغو میکند. 🟣برای حفظ امنیت داراییهای کیف پول بهتر است بهطور پیوسته دسترسی قراردادهای هوشمند را بررسی و درصورت نیاز آنها را قطع یا محدود کنیم. 🟣برای بررسی وضعیت دسترسی قراردادهای هوشمند میتوانیم از ابزار Token Approval Checker در بلاک اکسپلورر هر شبکه استفاده کنیم. 🟣سایتهای Revoke کردن با گرفتن آدرس و اتصال ولت، لیستی از قراردادهایی را به دارایی کیف پول دسترسی دارند را نشان میدهند. 🟣سایتهای Revoke ،Unrekt ،Approved Zone و EverRevoke رایجترین پلتفرمهای ریوک کردن قراردادهای هوشمند هستند. |
لغو دسترسی قرارداد هوشمند چیست؟
در فضای کریپتو و بهویژه برای سرمایهگذاری در پروتکلهای دیفای و انجام اموری مانند تامین نقدینگی، وامدهی، ییلد فارمینگ و استیکینگ مجبور هستیم به قراردادهای خاصی دسترسی برداشت توکن را از کیف پولمان بدهیم. فرض کنید قرار است تراکنشی را در صرافی غیرمتمرکز یونی سواپ (Uniswap) در کیف پول متامسک انجام دهید. یونی سواپ «درخواست تایید برای تراکنش» را صادر میکند. با امضای این پیام، یونی سواپ میتواند بدون محدودیت به توکنهای مربوط به تراکنشی که در حال انجام آن هستید، دسترسی داشته باشد.
برای انجام سواپ، ناگزیر به صدور اجازه دسترسی هستیم؛ اما میتوانیم بعد از تکمیل تراکنش، تاییدیه قرارداد هوشمند را لغو کنیم. بهعلاوه ممکن است گاهی به اشتباه برای قراردادی (مثلا یک قرارداد مخرب با قصد آیسفیشینگ) اجازه دسترسی صادر کنیم. در چنین مواردی باید تاییدیه قرارداد را لغو کنیم که اصطلاحا به آن ریوک کردن (Revoke) قرارداد هوشمند گفته میشود.
روشها و ابزارهای ریوک کردن
بهطور معمول میتوانیم با استفاده از بلاک اکسپلورر هر شبکه، ببینیم چه قراردادهایی به آدرس ولت ما در آن شبکه دسترسی دارند و در صورت نیاز سطح دسترسیها را تغییر دهیم.
روش دیگر برای Revoke کردن اسمارت کانترکتها، سایتهایی هستند که بعد از دریافت آدرس و اتصال به ولت، تمام قراردادهایی را که به توکنهای موجود در کیف پول دسترسی دارند، نشان میدهند.
توجه داشته باشید که قطع ارتباط میان کیف پول و برنامه غیرمتمرکز با لغو دسترسی قرارداد هوشمند متفاوت است. اگر اتصال ولت را قطع کنید، صرفا این وبسایت دیگر نمیتواند آدرس ولت شما را ببیند و دسترسی که قبلا صادر کردید به قوت خودش باقی میماند.
Revoke کردن قراردادهای هوشمند در بلاک اکسپلوررها
همانطور که اشاره شد ریوک کردن در بلاک اکسپلورر هر شبکه امکانپذیر است و برای شبکههای مختلف مراحل مشابهی دارد. در این مطلب ما اتریوم را برای مثال انتخاب کردیم. برای لغو دسترسی قراردادهای هوشمندی که در زنجیره اتریوم هستند، میتوانیم از ابزار Token Approval Checker سایت اتراسکن استفاده کنیم. وارد این سایت شوید و در کادر ابتدای صفحه، آدرس کیف پول یا نام دامنه را وارد کنید. حالا روی گزینه Connect to Web3 کلیک کرده و در پنجره اتصال کیف پول، یکی از گزینههای متامسک، کوین بیس ولت و والت کانکت را انتخاب کنید.
بعد از اتصال، اطلاعات کیف پول شما شبیه به تصویر زیر نشانداده میشود.
اطلاعات این صفحه به شرح زیر هستند:
۱. گزینه اتصال کیف پول
۲. مبلغ دلاری موجودی و تعداد NFTهایی که در دسترس قراردادهای هوشمند هستند
۳. فیلتر بر استاندارد توکنهای موجود در ولت
۴. تعداد توکنهایی که قراردادهای هوشمند به آنها دسترسی دارند
۵. نمایش همه تاییدیهها
۶. فیلتر کردن نتیجه جستجو
۷. هش تراکنشهای دارای تاییدیه
۸. آخرین تاریخ بهروزشده تاییدیهها
۹. نام توکنهایی که قراردادهای هوشمند به آنها دسترسی دارند
۱۰. قرارداد هوشمند دارای مجوز دسترسی
۱۱. مقدار دسترسی صادرشده
۱۲. لغو دسترسی
با توجه به این اطلاعات میتوانید تصمیم بگیرید که دسترسی کدام قرارداد باید بهطور کامل قطع یا محدودتر شود. با کلیک روی گزینه Revoke به صفحه زیر هدایت میشوید:
در این پنجره اطلاعاتی شامل هش تراکنش، نماد توکن، آدرس قرارداد و مقدار دسترسی که در ابتدا صادر شده است، نشان داده میشود. گزینه Current Allowance مقدار توکنهایی را که در حالحاضر قرارداد به آنها دسترسی دارد، نشان میدهد. بهطور مثال ممکن است هنگام صدور مجوز، دسترسی به ۱۰۰,۰۰۰ توکن را صادر کرده باشید که ۹۵,۰۰۰ واحد آنها خرج و ۵,۰۰۰ واحد دیگر باقی مانده است. از آنجایی که سطح دسترسی قرارداد روی «نامحدود» (Unlimited) تنظیم شده است، قرارداد میتواند به باقیمانده توکنها دسترسی داشته باشد. بنابراین لازم است در آخرین کادر، سطح دسترسی را صفر یا بهاندازه دلخواه تعیین و در نهایت روی گزینه Revoke کلیک کنید.
نحوه عملکرد ابزارهای Token Approval Checker در بلاک اکسپلوررها شبیه به یکدیگر است. در ادامه آدرس برخی از این ابزارها برای شبکههای مختلف را مشاهده میکنید:
- بایننس اسمارت چین (BSC): https://bscscan.com/tokenapprovalchecker
- پالیگان (Polygon): https://polygonscan.com/tokenapprovalchecker
- آربیتروم (Arbitrum): https://arbiscan.io/tokenapprovalchecker
- آپتیمیزم (Optimism): https://optimistic.etherscan.io/tokenapprovalchecker
- آوالانچ (Avalanche): https://snowtrace.io/tokenapprovalchecker
- فانتوم (Fantom): https://ftmscan.com/tokenapprovalchecker.
- نوسیس چین (Gnosis Chain): https://gnosisscan.io/tokenapprovalchecker
- کلایتون (Klaytn): https://docs.klaytnscope.com/account/approval-and-revoke
ریوک کردن از طریق پلتفرمهای مختلف
علاوهبر بلاک اکسپلوررها، پلتفرمهایی هم برای لغو دسترسی قراردادهای هوشمند وجود دارند. ممکن است این پلتفرمها فقط از یک یا چندین شبکه پشتیبانی کنند. یک نکته مهم این است که Revoke کردن قرارداد هوشمند، یک تراکنش آنچین است و مشمول پرداخت گس فی (Gas Fee) میشود. در هر مرورگر بلاک یا وبسایتی که قرارداد هوشمند را ریوک کنید، پیامی در کیف پول شما مبنی بر کسر کارمزد ارسال میشود که با توجه به شبکه توکن متفاوت خواهد بود.
۶ سایت Revoke کردن قرارداد هوشمند
با توجه به اهمیت بررسی دسترسی قراردادهای هوشمند به کیف پول و در اختیار گرفتن کنترل دارایی، در ادامه ۶ سایت Revoke کردن قرارداد هوشمند را معرفی میکنیم. توجه کنید که معمولا مراحل Revoke کردن در اکثر سایتها نسبتا ساده و شبیه به هم است.
۱. ریوک کش (Revoke Cash)
ریوک دات کش (Revoke.Cash) یکی از پلتفرمهای رایج برای لغو دسترسی قراردادهای هوشمند است که از بیش از ۶۰ شبکه پشتیبانی میکند. برای شروع وارد سایت ریوک دات کش شوید. در گوشه سمت راست روی گزینه Connect Wallet کلیک و در پنجرهای که باز میشود یکی از گزینههای والت کانکت، کوین بیس ولت یا لجر (Ledger) را انتخاب کنید.
بعد از اتصال کیف پولتان، وارد صفحهای شبیه به تصویر زیر میشوید. در بالای صفحه شبکهای که مورد بررسی قرار گرفته است، نمایش داده میشود. در صورت نیاز میتوانید از همین قسمت، شبکه را تغییر دهید.
همانطور که میبینید، اطلاعاتی شامل نام دارایی، نوع آن (توکن یا NFT)، سطح دسترسی (No Allowance یا Unlimited)، آدرس قرارداد دارای دسترسی و تاریخ صدور مجوز نشان داده شده است. در صورتی که میخواهید سطح دسترسی را تغییر دهید، از علامت ادیت که در کنار سطح دسترسی وجود دارد، میتوانید این تغییر را اعمال کنید. اگر تمایل دارید دسترسی قرارداد به طور کامل قطع شود، باید روی گزینه Revoke در ستون آخر کلیک کنید.
بعد از این مرحله در کیف پولی که به سایت متصل است، پیام صادر میشود. در صورت اطمینان برای لغو دسترسی، عبارت Confirm را در کیف پول تایید کنید.
نکته: توجه داشته باشید که برای قطع دسترسی قراردادهای هوشمند به داراییهای موجود در کیفپول سختافزاری لجر هم باید مراحل مشابهی را طی کنید. تنها تفاوت این است که ابتدا باید لجر را به کیف پول نرمافزاری مثل متامسک متصل کنید.
۲. آنرکت (Unrekt)
پلتفرم آنرکت (Enrekt) با چندین زنجیره شامل اتریوم، بایننس اسمارت چین، آربیتروم (ARB)، آوالانچ (AVAX)، فانتوم (FTM)، پالیگان (MATIC)، کاوا (KAVA)، بیس (BASE)، هکو (HECO)، کرونوس (CRONOS)، مونبیم (MOONBEAM)، استار (ASTAR)، دوجچین (DOGECHAIN) و کانتو (CANNTO) سازگار است. بعد از ورود به سایت و کلیک روی Connect Wallet میتوانید متامسک، بایننس چین ولت یا اتصال از طریق ولت کانکت را انتخاب کنید.
در فهرست نمایشداده شده، برای لغو دسترسی قرارداد موردنظر میتوانید روی Revoke کلیک کنید. بعد از تکمیل تراکنش مربوط به کسر کارمزد و تایید، دسترسی قرارداد لغو میشود.
۳. اپروود زون (Approved zone)
سایت اپروود زون (Approved zone) فقط از میننت اتریوم پشتیبانی میکند. به محض ورود به سایت، از شما درخواست میشود که ولت متامسک خود را متصل کنید. اگر از افزونه مرورگر متامسک استفاده میکنید، این ولت بهطور خودکار باز میشود. همچنین میتوانید در کادر مربوطه آدرس ولت خود را وارد کنید.
در این سایت، اطلاعاتی شامل قرارداد، نام توکن و سطح دسترسی نمایش داده میشود. برای لغو دسترسی قرارداد باید روی گزینه Decline کلیک کنید. در نهایت پیامی برای کسر کارمزد و تایید ریوک کردن نمایش داده میشود.
۴. کوینتول (CoinTool)
گزینه بعدی برای Revoke کردن قراردادهای هوشمند، سایت CoinTool است. این سایت از چندین شبکه ازجمله سلو (Celo)، مونریور (MoonRiver)، اسکرول (Scroll) و هارمونی (Harmony) پشتیبانی میکند. بعد از انتخاب شبکه، آدرس ولت خود را وارد و در گوشه سمت راست صفحه روی Connect Walle کلیک کنید.
در فهرستی که نمایش داده میشود، با کلیک روی گزینه Revoke سطح دسترسی قراردادهای مورد نظر را تغییر دهید یا کاملا قطع کنید. بهخاطر داشته باشید مانند همه نمونههای قبلی، تراکنش شامل پرداخت کارمزد میشود.
۵. بیفی فایننس (Beefy finance)
برای بررسی سطح دسترسی اسمارت کانترکتهای زنجیره هوشمند بایننس (BSC) میتوانید از ابزار BSC Allowance Checker که متعلق به بیفی فایننس (Beefy Finance) است، استفاده کنید. میتوانید مستقیما وارد سایت مربوطه شوید و بر حسب نیاز و تعداد قراردادهایی که قرار است دسترسی آنها را قطع شوند، یکی از دو گزینه Revoke 10 یا Revoke All را انتخاب کنید. سپس یک کد QR به شما نمایش داده میشود.
حالا باید در تراست ولت از قسمت Setting روی Connect Wallet کلیک و این کد را اسکن کنید تا کیف پول به ابزار متصل شود.
روش دیگر این است که مستقیما در تراست ولت وارد بخش دپها شوید و در نوار سرچ، آدرس Allowance.Beefy.Finance را جستجو کنید.
به محض ورود به سایت، صفحهای شبیه به تصویر زیر را مشاهده میکنید که فهرستی از توکنها، قراردادهای هوشمند و سطح دسترسی آنها روی شبکه BSC تراست ولت شما را نشان میدهد.
با کلیک روی هر آدرس اطلاعات کاملتری را در مورد دسترسی قرارداد هوشمند خواهید دید.
بعد از بررسی این اطلاعات و اطمینان از لغو دسترسی قرارداد هوشمند به آدرس BSC، میتوانید به صفحه قبل برگردید و روی Revoke کلیک کنید. در آخرین مرحله، پنجره تایید باز میشود که باید روی Approve کلیک کنید.
توجه داشته باشید که هزینهای بابت کارمزد شبکه از حساب شما کسر میشود.
۶. اور ریوک (EverRevoke)
سایت EverRise ابزاری برای لغو دسترسی قراردادهای هوشمند ارائه میدهد. این پلتفرم از شبکههای اتریوم، بایننس، پالیگان، فانتوم و آوالانچ پشتیبانی میکند. داراییهای موجود در ولت را میتوان بر حسب توکن و NFT فیلتر کرد. میتوانید در سایت EverRise، روی گزینه Lunch EverRevork کلیک کنید یا مستقیما وارد پلتفرم EverRevoke شوید.
بعد از ورود به سایت در سمت راست بالا، شبکه مورد نظر خود را انتخاب کنید. دپ تمام مجوزهای صادرشده برای قراردادهای هوشمند به شما نمایش داده میشود. اطلاعات این صفحه شامل آدرس قرارداد، مقدار توکن قابلدسترسی و نام پروتکل میشود.
با کلیک روی دکمه Revoke خلاصهای از اطلاعات مربوط به قرارداد مورد نظر نمایش داده میشود.
بعد از کلیک مجدد روی Revoke پیامی مربوط به کسر هزینه گس و تایید لغو مجوز در ولت شما ظاهر میشود.
با کلیک روی Confirm و تکمیل تراکنش در کیف پول، میتوانید صفحه را رفرش کنید و ببینید که قرارداد لغو شده است.
جمعبندی
صدور مجوز به قراردادهای هوشمند برای دسترسی به دارایی کیف پول، یکی از رایجترین مواردی است که هنگام انجام عملیات مختلف و نقل و انتقال توکنها باید آن را انجام بدهید. در غیر این صورت قراردادها نمیتوانند برای فعالیتهایی مانند تامین نقدینگی، استیکینگ یا سواپ به توکنهای لازم دسترسی داشته باشند؛ اما دو مسئله وجود دارد: اول اینکه برنامههای غیرمتمرکز معمولا اجازه دسترسی دائم را میگیرند و شاید بعد از انجام تراکنش دیگر نیازی نباشد که به باقیمانده توکنها دسترسی داشته باشد. دوما ممکن است گاهی از روی اشتباه به یک قرارداد مخرب دسترسی دهیم. در چنین مواردی میتوانیم از ابزارهای بلاک اکسپلوررها یا سایتهای مختص Revoke کردن قرارداد هوشمند کمک بگیریم. به هرحال بهتر است برای افزایش امنیت داراییهای ولت هر از گاهی وضعیت دسترسی قراردادهای هوشمند به کیف پول خود را بررسی کنیم. ما در این مطلب ۶ سایت را برای لغو تاییدیه قراردادهای هوشمند معرفی کردیم. بهنظر شما جای چه سایتهای دیگری در این فهرست خالی است؟
سوالات متداول (FAQ)
ریوک کردن چیست؟
منظور از Revoke کردن، لغو دسترسی قراردادهایی هوشمندی است که به آنها اجازه دادهایم به داراییهای کیف پول ما دسترسی داشته باشند.
چطور میتوان قراردادهای هوشمند را ریوک کرد؟
لغو دسترسی قراردادهای هوشمند به کیف پول از طریق مرورگرهای بلاک یا پلتفرمهای مخصوص این کار انجام میشود.
رایجترین سایتهای لغو تاییدیه قراردادهای هوشمند کدامند؟
سایتهای Revoke.Cash ،Unrekt ،Approved Zone ،Cointool ،Beefy Finance و EverRevoke تعدادی از سایتهای شناختهشده برای لغو دسترسی قراردادهای هوشمند هستند.