
Table of Contents
برای حذف دسترسی یک DApp به توکنهای خود، باید مجوزی را که دارد پیدا کنید و آن را در یک تراکنش جداگانه روی زنجیره لغو کنید - قطع ارتباط DApp مجوز را حذف نمیکند و توکنهای شما تا زمانی که allowance به 0 تنظیم شود در معرض خطر باقی میمانند.
نکات کلیدی
- مجوزها روی زنجیره زندگی میکنند - بستن اپلیکیشن یا جلسه WalletConnect چیزی را تغییر نمیدهد؛ مجوز خرج کردن تا زمانی که آن را لغو کنید فعال باقی میماند.
- مجوزهای نامحدود خسارت را افزایش میدهند - یک مجوز نامحدود به یک قرارداد اجازه میدهد کل موجودی فعلی و آینده توکن را خرج کند.
- لغو مجوز از خرج کردن آینده جلوگیری میکند، نه دزدی گذشته - تنظیم مجدد allowance انتقالهای جدید را مسدود میکند اما نمیتواند داراییهایی که یک drainer قبلاً منتقل کرده است را بازیابی کند.
مجوزهای توکن DApp چیست؟
مجوز توکن DApp مجوزی است که مالک کیف پول به یک smart contract میدهد تا یک توکن خاص را تا مقدار تعیینشده خرج کند. بدون آن مجوز، یک صرافی غیرمتمرکز، بازار وامدهی یا هر DApp دیگری نمیتواند توکنهای شما را منتقل کند - مجوز همان چیزی است که به آن اجازه میدهد هنگام تعامل شما با آن، swap، staking یا انتقال انجام دهد.
smart contract یک برنامه مبتنی بر بلاکچین است که بهطور خودکار اقداماتی را زمانی که شرایط از پیش تعریفشده برآورده شوند انجام میدهد.
مجوزهای توکن DApp چگونه کار میکنند
یک مجوز توکن یک توالی ثابت را دنبال میکند: شما کیف پول خود را به یک DApp وصل میکنید، DApp مجوز درخواست میکند، آن روی زنجیره ثبت میشود و از آن به بعد DApp اقدام تأییدشده را بدون اینکه دوباره بپرسد انجام میدهد. به این شکل است که DAppهای شناختهشده مانند Aave و Uniswap کار میکنند. از آنجا که مجوز در بلاکچین زندگی میکند و نه در جلسه اپلیکیشن، مدتها بعد از اینکه استفاده از DApp را متوقف کردید فعال باقی میماند.
مجوزها در چند شکل متمایز وجود دارند:
- Limited Approval: DApp فقط میتواند مقداری را که تعیین کردهاید خرج کند، بهعنوان مثال 500 USDC، و باید برای خرج کردن بیشتر مجوز جدیدی درخواست کند.
- Unlimited Approval: DApp میتواند هر مقدار از توکن انتخابی را خرج کند، از جمله توکنهایی که بعداً به کیف پول شما میرسند.
- Token Approval: smart contract مجوز دریافت میکند تا یک توکن fungible خاص را مدیریت کند، مانند USDC یا USDT.
- NFT Approval: مجوز میتواند یک NFT واحد یا یک کلکسیون کامل را پوشش دهد، بهعنوان مثال از طریق
setApprovalForAll.
مجوز توکن عبارت محرمانه شما را فاش نمیکند یا دسترسی نامحدود به کل کیف پول را به DApp نمیدهد. فقط برای توکن، NFT، مقدار و smart contract تأییدشده اعمال میشود.
کاربران کیف پول ارز دیجیتال چه زمانی مجوزهای توکن میدهند؟
مجوزهای توکن در طول اقدامات روزمره DeFi ظاهر میشوند: swap توکنها، وامدهی، staking و فروش NFTها. آنها میتوانند بعد از انجام اقدام یا قطع ارتباط DApp فعال بمانند.
Swap توکنها در یک DEX: فرض کنید شما در حال swap کردن USDC برای ETH در Uniswap هستید - ابتدا قرارداد Permit2 (یک مدیر مجوز توسط Uniswap Labs) را برای استفاده از USDC تأیید میکنید. یک مجوز نامحدود میتواند بعد از تکمیل یا لغو swap فعال بماند.
عرضه توکنها به یک پروتکل وامدهی: برای وام دادن USDT در Aave، قرارداد Aave Pool را برای انتقال توکنها از کیف پول تأیید میکنید. یک allowance استفادهنشده میتواند بعد از برداشت سپرده یا قطع ارتباط DApp باقی بماند.
Staking توکنها از طریق یک DApp: هنگام staking از طریق Aave Umbrella، قرارداد staking را برای انتقال توکنهای انتخابی به استخر تأیید میکنید. اگر مجوز از سپرده بیشتر باشد، allowance اضافی میتواند بعد از خروج از staking همچنان کار کند.
فهرست کردن یک NFT برای فروش: یک NFT را در OpenSea فهرست کنید و بازار ممکن است درخواست دسترسی به یک NFT واحد یا کل کلکسیون را از طریق setApprovalForAll کند. یک مجوز کل کلکسیون تا زمانی که کاربر آن را در یک تراکنش جداگانه لغو کند، فعال باقی میماند.
دریافت توکنها از یک Airdrop: یک سایت airdrop جعلی میتواند یک مجوز نامحدود یا یک امضای Permit را پشت یک دکمه Claim معمولی پنهان کند. بعد از اینکه تأیید کنید، یک wallet drainer میتواند توکنها یا NFTهای تأییدشده را بدون هیچ درخواست جدیدی در کیف پول منتقل کند.
خطرات مجوزهای توکن چیست؟
خطر، خود مجوز نیست بلکه چیزی است که میتواند با گذشت زمان به آن تبدیل شود. سه خطر بیش از همه مهم هستند:
- Allowance نامحدود: قرارداد میتواند کل موجودی فعلی و آینده توکن تأییدشده را خرج کند، نه فقط مقداری که قصد استفاده از آن را داشتید.
- مجوز باقیمانده: مجوز ماهها یا سالها بعد از آخرین باری که DApp را لمس کردید همچنان کار میکند، بنابراین یک مجوز فراموششده قابل سوءاستفاده باقی میماند.
- قرارداد به خطر افتاده: حتی یک DApp قانونی میتواند بعد از اینکه مجوز را دادید هک شود و دسترسی که قبلاً تأیید کردهاید را به یک مهاجم بدهد.
wallet drainerهای ارز دیجیتال چیست؟
wallet drainer ارز دیجیتال یک ابزار مخرب است که از یک سایت فیشینگ یا DApp جعلی استفاده میکند تا شما را فریب دهد که مجوز انتقال توکنها یا NFTهای خود را بدهید. بهجای حدس زدن عبارت محرمانه شما، یک drainer شما را وادار میکند دسترسی را بهصورت داوطلبانه امضا کنید، سپس از آن برای انتقال ارزشمندترین داراییهای شما استفاده میکند. drainerها یک تهدید بزرگ و فعال هستند: آنها 494 میلیون دلار از حدود 332,000 آدرس کیف پول در سال 2024 سرقت کردند که نسبت به سال قبل 67% افزایش داشت (Scam Sniffer, 2024).
wallet drainerها چگونه از مجوزهای توکن سوءاستفاده میکنند
یک حمله drainer معمولاً از طریق یک زنجیره قابل پیشبینی از مراحل اجرا میشود:
- کاربر وارد یک سایت mint، airdrop یا سرمایهگذاری جعلی میشود.
- سایت از کاربر میخواهد کیف پول خود را وصل کند.
- کاربر یک مجوز یا یک امضای permit را امضا میکند.
- drainer کیف پول را اسکن میکند و ارزشمندترین داراییها را شناسایی میکند.
- توکنها یا NFTهای تأییدشده بدون هیچ تأیید جدیدی منتقل میشوند.
وصل کردن یک کیف پول بهتنهایی به هیچکس اجازه انتقال داراییهای شما را نمیدهد - خطر فقط بعد از امضای یک مجوز یا یک تراکنش مخرب شروع میشود. آن امضای واحد، خط بین یک اتصال بیضرر و یک کیف پول تخلیهشده است.
چرا قطع ارتباط یک DApp مجوز آن را لغو نمیکند
قطع ارتباط و لغو دو اقدام متفاوت هستند و فقط یکی از آنها مجوز خرج کردن یک قرارداد را حذف میکند. قطع ارتباط رابط بین کیف پول و DApp شما را میبندد؛ مجوز همچنان روی زنجیره زندگی میکند.
| اقدام | چه کاری انجام میدهد | چه چیزی فعال باقی میماند |
|---|---|---|
| قطع ارتباط | ارتباط بین کیف پول و رابط DApp را میبندد | مجوزهای روی زنجیره که قبلاً داده شدهاند |
| لغو | مجوز خرج کردن smart contract را حذف یا تنظیم مجدد میکند | DApp باید مجوز جدیدی برای دسترسی دوباره به توکن درخواست کند |
برای نشان دادن تفاوت، ما Gem Wallet را به DApp قانونی Uniswap وصل کردیم و به Permit2 یک مجوز نامحدود برای USDC دادیم. بعد از قطع ارتباط Uniswap، هیچ جلسه فعال WalletConnect باقی نماند، اما Revoke.cash همچنان مجوز را با کل موجودی USDC بهعنوان ارزش در معرض خطر نشان داد. قطع ارتباط فقط اتصال به DApp را میبندد - مجوز روی زنجیره تا یک تراکنش لغو جداگانه باقی میماند.
در Uniswap تأیید کنید، DApp را قطع کنید - و مجوز هنوز روی زنجیره در Gem Wallet فعال است.
چگونه مجوزهای توکن DApp را لغو کنیم: گام به گام
لغو یک مجوز چند دقیقه طول میکشد. در اینجا کل فرآیند در یک نگاه است:
- بررسیکننده مجوز را باز کنید.
- آدرس کیف پول خود را وارد کنید.
- بلاکچین را انتخاب کنید.
- مجوزهای فعال را بررسی کنید.
- allowance را لغو یا کاهش دهید.
- تراکنش را تأیید کنید.
- نتیجه را تأیید کنید.
بیایید هر مرحله را به تفصیل بررسی کنیم.
مرحله 1: باز کردن یک بررسیکننده مجوز قابل اعتماد
یک بررسیکننده مجوز مانند Revoke.cash یا Etherscan Token Approval Checker را باز کنید و آدرس را خودتان تایپ کنید بهجای دنبال کردن یک لینک. نسخههای فیشینگ این ابزارها وجود دارند، بنابراین قبل از وصل کردن هر چیزی، دامنه را دوباره بررسی کنید.
مرحله 2: آدرس کیف پول ارز دیجیتال خود را وارد کنید
با چسباندن آدرس عمومی کیف پول خود در حالت فقط خواندنی شروع کنید - این به شما اجازه میدهد هر مجوز فعال را بدون اتصال یا امضا ببینید. اتصال از طریق WalletConnect فقط زمانی مورد نیاز است که آماده لغو هستید.
مرحله 3: بلاکچین صحیح را انتخاب کنید
شبکهای را انتخاب کنید که مجوز در آن داده شده است، چرا که هر زنجیره مجوزهای خود را ذخیره میکند. Ethereum، BNB Chain، Polygon، Base و سایر شبکهها باید بهطور جداگانه بررسی شوند - یک مجوز در یک زنجیره در زنجیره دیگر نامرئی است.
مرحله 4: خرجکننده و Allowance را بررسی کنید
برای هر ورودی، توکن، smart contract (خرجکننده)، مقدار تأییدشده، تاریخ دادن آن و ارزش در معرض خطر را بررسی کنید. یک خرجکننده ناشناس یا یک مقدار نامحدود روی توکنی که در اختیار دارید، واضحترین نشانه است که یک مجوز باید حذف شود.
مرحله 5: مجوز توکن را لغو یا کاهش دهید
مجوزی که دیگر به آن نیاز ندارید را بهطور کامل حذف کنید، یا allowance را به مقداری که واقعاً قصد استفاده دارید کاهش دهید. ضربه زدن به Revoke تراکنشی میسازد که allowance خرج کردن آن قرارداد را به 0 تنظیم مجدد میکند.
مرحله 6: تراکنش را در کیف پول خود تأیید کنید
درخواست در کیف پول شما، مانند Gem Wallet، از طریق WalletConnect باز میشود. قبل از تأیید، بررسی کنید که:
- مقدار: allowance تأییدشده به 0 USDC تغییر میکند.
- قرارداد: USDC.
- روش: Approve.
- خرجکننده: Permit2.
- شبکه: Ethereum.
تأیید کردن به یک هزینه شبکه (بهعنوان مثال ETH) نیاز دارد، چرا که این تراکنش روی زنجیره است که واقعاً مجوز را حذف میکند. آن را در Gem Wallet تأیید کنید تا ارسال شود.
مرحله 7: تأیید کنید که مجوز حذف شده است
Revoke.cash را بارگذاری مجدد کنید و تأیید کنید که مجوز حذف شده یا مقدار آن تغییر کرده است. در آزمایش ما، داشبورد به 0 مجوز، $0 ارزش در معرض خطر و یک لیست مجوز خالی بهروزرسانی شد - اثبات اینکه قرارداد دیگر نمیتواند USDC را تا زمانی که دوباره بپرسد خرج کند.
Revoke را بزنید، allowance 0 USDC را در Gem Wallet تأیید کنید و بررسی کنید که مجوز حذف شده است.
کدام مجوزهای توکن را باید لغو کنید؟
نه هر مجوزی نیاز به حذف دارد، اما برخی نامزدهای واضح هستند. یک مجوز را زمانی لغو کنید که:
- DApp استفادهنشده: دیگر از DAppی که آن را در اختیار دارد استفاده نمیکنید.
- خرجکننده ناشناس: قرارداد خرجکننده را نمیشناسید.
- مقدار نامحدود: مجوز برای مقدار نامحدود داده شده است.
- فهرست NFT قدیمی: مجوز مربوط به فهرست NFTای است که بستهاید.
- هک گزارششده: پروژه یک هک یا سوءاستفاده را افشا کرده است.
- منبع مشکوک: مجوز بعد از یک mint یا airdrop مشکوک ظاهر شده است.
- دلیل فراموششده: نمیتوانید به یاد بیاورید چرا آن را دادید.
اگر کیف پول ارز دیجیتال شما قبلاً تخلیه شده است چه کنیم
هر مجوز فعال را فوراً لغو کنید: لغو کردن خرج کردن بیشتر را متوقف میکند اما داراییهایی که قبلاً سرقت شدهاند را بازیابی نمیکند. اگر عبارت محرمانه یا private key شما افشا شده است، یک کیف پول جدید روی یک دستگاه تمیز بسازید و هر وجه باقیمانده را به آنجا منتقل کنید. اگر یک ربات sweeper آدرس را زیر نظر دارد، بدون یک طرح نجات دارایی جداگانه گاز به آدرس به خطر افتاده ارسال نکنید.
چگونه از DAppها بدون تخلیه شدن استفاده کنیم
لغو کردن مجوزهایی را که قبلاً دادهاید تمیز میکند - اما عادت ایمنتر این است که یک مجوز خطرناک را قبل از امضای آن بگیرید. چند قانون اکثر موارد را پوشش میدهد:
- دامنه را تأیید کنید: URL دقیق DApp را قبل از اتصال بررسی کنید.
- طعمه مجوز را نادیده بگیرید: مجوزهای نامشخص را فقط برای دریافت یک airdrop امضا نکنید.
- مقدار را محدود کنید: مقدار تأییدشده را محدود کنید بهجای دادن نامحدود.
- مراقب setApprovalForAll باشید: مجوزهای NFT برای کل کلکسیون را با احتیاط بیشتری رفتار کنید.
- خرجکننده را بررسی کنید: تأیید کنید آدرس خرجکننده متعلق به پروتکل واقعی است.
- بهطور منظم هرس کنید: مجوزهای قدیمی را در یک برنامه حذف کنید.
- خطر را ایزوله کنید: از یک کیف پول جداگانه برای DAppهای جدید و غیرقابل اعتماد استفاده کنید.
از DAppها در بیش از 100 بلاکچین با Gem Wallet استفاده کنید - یک کیف پول کاملاً متنباز و self-custody که کلیدهای خصوصی را روی دستگاه شما ذخیره میکند و هیچ داده شخصی را جمعآوری نمیکند. Gem Wallet را دانلود کنید و به اپلیکیشنهای سازگار با WalletConnect وصل شوید، در حالی که کنترل کامل کلیدهای خود را دارید.


