تابع بلکلیست (Blacklist function)
خلاصه تابع بلکلیست کدی در قرارداد توکن است که به مالک اجازه میدهد کیف پولهای مشخصی را از انتقال یا فروش توکنهایشان منع کند.
تابع بلکلیست بخشی از کد اسمارتکانترکت یک توکن است که به یک آدرس دارای اختیار ویژه، معمولاً مالک (owner)، اجازه میدهد کیف پولهای مشخصی را ممنوع علامتگذاری کند. وقتی کیف پولی در این لیست قرار بگیرد، کانترکت انتقالهای آن را رد میکند؛ یعنی در عمل نمیتواند توکن را بفروشد، جابهجا کند و گاهی حتی دریافت هم نمیتواند بکند.
از نظر عملکرد، کانترکت یک mapping از آدرسها به یک پرچم true یا false نگه میدارد و منطق انتقال پیش از جابهجایی توکن آن پرچم را بررسی میکند. مالک با تابعی مثل addToBlacklist یا setBots پرچم را روشن میکند. در شبکههای EVM این کد Solidity سادهای است که هر کسی میتواند روی کانترکت وریفایشده بخواند، هرچند نام تابعها اغلب پنهان میشود. برخی داراییهای قانونی هم کنترلهای مشابهی دارند: استیبلکوینهای بزرگِ پشتوانهدار میتوانند آدرسهای مرتبط با هک یا تحریم را فریز کنند و توکنهای سولانا میتوانند freeze authority داشته باشند که همین کار را در سطح اکانت انجام میدهد.
برای دارندگان توکنهای کوچک، مسئله این است که کلید این کلید در دست چه کسی است. بلکلیست در دست یک دیپلویکننده ناشناس میتواند هر توکنی را برای کیف پولهای انتخابشده به honeypot تبدیل کند؛ اغلب برای کسانی که آنقدر زود خریدهاند که سود کردهاند. پروژهها گاهی آن را محافظتی در برابر رباتهای اسنایپر هنگام لانچ توجیه میکنند و این میتواند درست باشد، اما همین قدرت در هر زمان میتواند علیه خریداران عادی به کار برود.
در سورس وریفایشده دنبال هر mapping بگردید که انتقال را مسدود میکند و ببینید مالکیت renounce شده یا در اختیار یک multisig با timelock است. در سولانا بررسی کنید freeze authority لغو شده است یا نه. اسکنرهای توکن تابعهای بلکلیست را خودکار علامت میزنند، اما ممکن است نسخههای تغییر نامداده یا مبهمشده را از دست بدهند، و یک کانترکت proxy میتواند بعداً با آپگرید آن را اضافه کند.




