ارز دیجیتال
تأیید توکن
تعریف
تأیید توکن یک مجوز کیف پول است که به یک قرارداد هوشمند اجازه میدهد مقدار مشخصی از توکنهای شما را به نمایندگی از شما خرج کند.
تأیید توکن چیست؟
تأیید توکن مجوزی است که شما از کیف پول خود به یک "خرجکننده" خاص میدهیدآدرس(معمولاً یکقرارداد هوشمند) برای انتقال مقدار مشخصی از توکنی که شما مالک آن هستید. این یک جزء اصلی در ساختار دیفای است زیرا بیشتر برنامهها نمیتوانند توکنها را بهطور مستقیم از کیف پول شما بدون رضایت صریح شما برداشت کنند.
تأییدها از مبادلات یا واریزها جدا هستند: شما میتوانید امروز تأیید کنید و قرارداد میتواند بعداً تا مقدار تأیید شده را زمانی که با آن تعامل میکنید، خرج کند. درک تأییدها همچنین بخشی عملی از نحوه ایمنسازی کیف پول کریپتو شماست، زیرا یک تأیید پرخطر میتواند مورد سوءاستفاده قرار گیرد حتی اگر شما هرگز انتقال توکن دیگری را امضا نکنید.
تأیید توکن کریپتو
در جریانهای تأیید توکن کریپتو، تأیید معمولاً اولین مرحله قبل از این است که یک برنامه بتواند با توکنهای شما کاری انجام دهد. به عنوان مثال، زمانی که شما از یکDEX، پروتکل وامدهی، یاخزانهبازده استفاده میکنید، قرارداد برنامه نیاز به مجوز برای انتقال USDC،DAIیا سایر توکنهایERC-20از آدرس شما به پروتکل دارد. شما این مجوز را با امضای یک تراکنش "تأیید" در کیف پول خود میدهید که یک مجوز را در زنجیره ثبت میکند.
پس از آن، پروتکل میتواند یک تابع را فراخوانی کند که توکنها را از شما به خود (یا قرارداد دیگری) به عنوان بخشی از یک تراکنش بعدی که شما آغاز میکنید، منتقل کند.
از آنجا که تأییدها تا زمانی که تغییر نکنند، باقی میمانند، عاقلانه است که بهطور دورهای "تأیید را لغو کنید" برای قراردادهایی که دیگر استفاده نمیکنید.تأیید ERC-20تأیید ERC-20 به مکانیزم استانداردی اشاره دارد که توسط رابط توکن ERC-20 تعریف شده است: یک مالک `approve(spender, amount)` را فراخوانی میکند تا مشخص کند که خرجکننده مجاز به استفاده از چند توکن است و خرجکننده بعداً از `transferFrom(owner, recipient, amount)` برای انتقال توکنها در آن محدودیت استفاده میکند. قرارداد توکن این مجوز را به عنوان یک مجوز که با (مالک، خرجکننده) کلیدگذاری شده است، پیگیری میکند. بهطور مهم، تأیید بهتنهایی وجوه را منتقل نمیکند؛ فقط قوانین را برای اینکه خرجکننده بعداً چه کاری میتواند انجام دهد، تعیین میکند. بسیاری از کیف پولها و dAppها این را به عنوان "اجازه دهید این برنامه توکن شما را خرج کند" نشان میدهند. برای کاهش شگفتیها، از ابزارهای شبیهسازی تراکنش در دسترس استفاده کنید تا بتوانید پیشنمایش کنید که یک اقدام پیگیری چه کاری احتمالاً با توکنهای تأیید شده شما انجام خواهد داد.
تأیید نامحدود
تأیید نامحدود زمانی است که شما یک عدد بسیار بزرگ (معمولاً حداکثر مقدار uint256) را تأیید میکنید تا dApp نیازی به تأیید دوباره شما برای اقدامات آینده نداشته باشد. این راحتی را بهبود میبخشد - یک تأیید میتواند بسیاری از مبادلات، واریزها یا بازپرداختها را پوشش دهد - اما اگر قرارداد خرجکننده مخرب، آسیبدیده باشد یا اگر شما آدرس نادرستی را تأیید کرده باشید، شعاع انفجار را افزایش میدهد.
تأییدهای نامحدود همچنین هدف رایجی برای "فیشینگ تأیید" هستند، جایی که یک سایت شما را فریب میدهد تا خرجکنندهای را تأیید کنید که میتواند بعداً توکنها را بدون نیاز به امضای دیگری برداشت کند. یک عادت ایمنتر این است که فقط آنچه را که قصد دارید استفاده کنید تأیید کنید، یا فقط از تأییدهای نامحدود با قراردادهای بسیار معتبر استفاده کنید و سپس تأیید را زمانی که کارتان تمام شد، لغو کنید.
مجوز
مجوز رکورد زنجیرهای از اینکه خرجکننده هنوز میتواند از موجودی مالک برای یک توکن خاص چقدر خرج کند، است. آن را مانند یک حد خرج پیشپرداخت تصور کنید: اگر شما یک مجوز 500 توکن تعیین کنید و خرجکننده 120 توکن را از طریق `transferFrom` استفاده کند، مجوز باقیمانده به 380 تبدیل میشود (مگر اینکه توکن از الگوی غیر استاندارد استفاده کند).
مجوزها خاص توکن و خاص خرجکننده هستند، بنابراین تأیید یک روتر DEX برای USDC آن را برای DAI تأیید نمیکند و تأیید یک قرارداد، قرارداد دیگری را تأیید نمیکند. تغییر یک مجوز همچنین یک تغییر وضعیت است که هزینه "گاز" دارد و برخی توکنها بهطور تاریخی در هنگام بهروزرسانی یک مجوز غیر صفر بهطور مستقیم دارای موارد خاصی بودهاند.
بهطور عملی، نکته کلیدی این است که مجوزها را به عنوان مجوزهای دائمی که باید "حسابرسی" کنید، در نظر بگیرید، بهویژه پس از تعامل با dAppهای جدید.چرا تأیید توکن مهم استتأیید توکن مهم است زیرا لایه مجوزی است که برنامههای غیر "نگهدارنده" را قابل استفاده میکند: پروتکلها میتوانند اقدامات چند مرحلهای (مبادله، واریز، بازپرداخت، تعادل مجدد) را بدون تصاحب کیف پول شما اجرا کنند.
در عین حال، تأییدها یکی از بیشترین موارد سوءتفاهم در اعلانهای کیف پول هستند و اشتباهات میتوانند هزینهبر باشند - بهویژه با تأییدهای نامحدود یا زمانی که کاربران فریب فیشینگ تأیید را میخورند. بهداشت خوب شامل بررسی آدرس خرجکننده، استفاده از شبیهسازی تراکنش برای درک اینکه یک تراکنش احتمالاً چه کاری انجام خواهد داد و بهطور منظم بررسی و لغو تأیید برای قراردادهای قدیمی است.
اگر شما در حال ساخت عادات ایمنتر در اطراف نحوه ایمنسازی کیف پول کریپتو خود هستید، مدیریت تأییدهای توکن یکی از مراحل با بالاترین تأثیر است که میتوانید انجام دهید.
پرسشهای متداول
نحوه کار تأیید توکن چگونه است؟
کیف پول شما یک تراکنش تأیید را امضا میکند که یک مجوز برای یک آدرس خرجکننده خاص در یک قرارداد توکن خاص تعیین میکند. بعداً، آن خرجکننده میتواند تابعی مانند transferFrom را فراخوانی کند تا توکنها را تا میزان مجوز باقیمانده منتقل کند. تأیید تا زمانی که شما آن را تغییر یا لغو نکنید، معتبر باقی میماند.
آیا تأیید توکن همانند ارسال توکنها است؟
خیر. یک تأیید فقط مجوز میدهد؛ خود به خود توکنها را منتقل نمیکند. توکنها بعداً زمانی که خرجکننده تأیید شده از آن مجوز استفاده میکند، معمولاً به عنوان بخشی از یک اقدام dApp که شما آغاز کردهاید، منتقل میشوند.
تأیید توکن نامحدود چیست و آیا ایمن است؟
یک تأیید نامحدود، مجوز را به یک مقدار بسیار بزرگ تنظیم میکند تا شما نیازی به تأیید دوباره نداشته باشید. این کار راحت است اما ریسک بیشتری دارد زیرا یک خرجکننده مخرب یا آسیبدیده میتواند آن توکن را بدون تأییدهای بیشتر تخلیه کند. فقط با قراردادهای معتبر از آن استفاده کنید و وقتی کارتان تمام شد، آن را لغو کنید.
چگونه میتوانم تأیید توکن را لغو کنم؟
شما میتوانید تأیید را با تنظیم مجوز برای آن خرجکننده به 0 (یا مقدار کمتری) با استفاده از کیف پول یا یک ابزار مدیریت تأیید لغو کنید. این نیاز به یک تراکنش زنجیرهای و گاز دارد. پس از لغو، خرجکننده دیگر نمیتواند با استفاده از مجوز قدیمی توکنها را منتقل کند.
فیشینگ تأیید در کریپتو چیست؟
فیشینگ تأیید یک کلاهبرداری است که در آن یک سایت شما را فریب میدهد تا یک آدرس خرجکننده را تأیید کنید که میتواند بعداً توکنهای شما را برداشت کند. از آنجا که تأییدها میتوانند نامحدود و پایدار باشند، ممکن است مهاجم نیازی به امضای یک انتقال بعد از آن نداشته باشد. همیشه خرجکننده را تأیید کنید و در صورت امکان از شبیهسازی تراکنش استفاده کنید.
اصطلاحات مرتبط
Approval Phishing
Approval phishing is a crypto scam that tricks you into granting a smart contract permission to move your tokens or NFTs from your wallet.
Revoke Approval
Revoke approval is the act of cancelling a wallet’s previously granted permission for a contract or address to spend your tokens or move your NFTs.
ERC-20
ERC-20 is the standard set of rules that makes Ethereum-based tokens work consistently across wallets, exchanges, and smart contracts.