Rug-Pull و اهمیت مطالعه قراردادهای هوشمند قبل از سرمایه گذاری
در دنیای رمزنگاری، کدهای قراردادهای هوشمند، ستون فقرات پروژه های رمزنگاری هستند: رمزارزها، دیفای، dApps، توکن های تعویض ناپذیر و غیره. همه و همه متشکل از قراردادهای دیجیتالی خودکار و خود اجرا و رشته ای از کدها هستند که عمدتا به زبان سالیدیتی یا سایر زبان های برنامه نویسی نوشته شده اند. این کدها و قراردادها، امکان این را به کاربران می دهند تا با از بین بردن واسطه ها یا مؤسسات متمرکز، از راه دور با سایر کاربران و پلتفرم ها تعامل داشته باشند. حال برای درک بهتر اهمیت مطالعه قراردادهای هوشمند پروژه های مختلف قبل از سرمایه گذاری در آنها؛ بهتر است تا با مثالی از حملات کلاهبرداری Rug-Pull که در دو سال گذشته بسیار برای مهاجمان سودآور بوده، شروع کنیم.
Rug-Pull چیست؟
حمله Rug Pull یا فرش کشی یک کلاهبرداری پرسود است که در آن توسعه دهندگان، توکن های رمزنگاری جدید ایجاد می کنند و آنها را برای سرمایه گذاران به بازار عرضه می کنند تا ارزش و نقدینگی کلی آنها را افزایش دهند. سپس آنها استخر سرمایه را تخلیه کرده و ارزش توکن را به صفر می رسانند و در نهایت با پول نقد بدست آمده از این کلاهبرداری، از صحنه روزگار ناپدید میشوند.
بر اساس سیستم ردیاب داده بلاک چین، Chainalaysis، کلاهبرداری های Rug-Pull مسئول بیش از 2.8 میلیارد دلار فعالیت های غیرقانونی در سال 2021 بوده اند که این نزدیک به بالاترین رکورد تاریخ و 81 درصد افزایش نسبت به سال 2020 است.
“به عنوان مثال، توکن SQUID به اوج ارزش 2850 دلاری رسید و پس از آن که توسعهدهندگان فرش را بیرون زدند، بیش از 99.99 درصد کاهش یافت، در نتیجه آن را بیفایده و در عین حال میلیونها دلار برای توسعهدهندگان جمعآوری کرد.
چگونه این کار انجام شد؟
توسعه دهندگان کد قرارداد هوشمند را دستکاری و قفل کردند تا از مبادله یا فروش توکن های سرمایه گذاران پس از رسیدن به اوج سود، جلوگیری کنند.”
ما اغلب در مورد وجود یک توکن برای پروژه های رمزنگاری قبل از سرمایه گذاری در آنها می شنویم. با این وجود، بر خلاف توصیه بسیاری از صاحب نظران که معتقدند اولین قدم برای تحقیقات و بررسی فاندامنتال یک پروژه، نگاهی به وایت پیپر آن پروژه است، ما معتقدیم که خواندن کدهای قرارداد هوشمند قدم ارجح تری نسبت به این مهم است. چرا که وایت پیپر، اگر توسط یک حرفه ای یا یک واژه ساز ماهر در مدیریت کلمات نوشته شود، ممکن است توجه کاربر را به خود جلب کند و بدون تحقیقات تکمیلی آنها را به سمت سرمایه گذاری سوق دهد.
ناتوانی در خواندن قراردادهای هوشمند یک عامل رایج برای کلاهبرداری است. بنابراین دانستن نحوه خواندن آنها برای هر کسی که علاقه مند به سرمایه گذاری در پروژه های رمزنگاری است، یک مهارت ضروری است و از آنجایی که قراردادهای هوشمند در اکوسیستم بلاکچین بسیار مهم هستند، دانستن نحوه درک داده های آن برای هر کسی که از آن استفاده می کند یک توانایی ضروری است.
چرا درک قراردادهای هوشمند کلید امنیت است؟
توییت thomas.eg در 13 فوریه 2022، مثال خوبی از اینکه چرا خواندن یک قرارداد هوشمند ضروری است، ارائه می دهد. در اینجا، دو کلاهبردار از بنیانگذاران یک بازی محبوب مبتنی بر سولانا به نام Space Falcon تقلید کردند و به قربانی دو NFT هدیه دادند که او می توانست برای کسب جوایز بیشتر از آنها استفاده کند. تنها نکته این بود که Space Falcon واقعی نبود، و قرارداد هوشمند مورد بحث در واقع به کلاهبرداران اجازه میداد تا 100% وجوه کیف را پس از تایید معامله توسط صاحب کیف پول تخلیه کنند. خوشبختانه، مشتری در اینجا بررسی لازم را انجام داد و قرارداد هوشمند را خواند و متوجه شد که در واقع این یک “قرارداد کلاهبرداری” است.
قراردادهای هوشمند فراتر از هیاهو و FOMO می روند تا جزئیات دقیقی در مورد اینکه پروژه دقیقا چیست، مالک آن چه کسی است و کاربر با چه چیزی موافقت می کند، به ما ارائه دهند. نکته جالب اینکه برای درک نحوه خواندن قراردادهای هوشمند بیشتر پروژه های رمزنگاری، نیازی به دانش کدنویسی یا گذراندن ساعات طولانی دوره های Solidity نیست. لذا بهتر است تا قبل از اینکه پول خود را در هر پروژه رمزنگاری ناشناسی سرمایه گذاری کنیم، زمانی را به بررسی کد قرارداد هوشمند پروژه اختصاص دهیم.
اما چگونه؟
در مثال حملات Rug-Pull، یک پروژه معمولی به طور حتم تقریبا این موارد را در کد قرارداد هوشمند خود گنجانده است:
بسیار حائز اهمیت است که مراقب پرچمهای قرمز زیر باشیم:
از بالا، این تابع به ceoAddress (مالک قرارداد) اجازه می دهد وجوه را از قرارداد به آدرس خود منتقل کند.
- با این وجود، لازم نیست آن را “function migrate” نامید. آنها ممکن است آن را هر چیزی که بخواهند عنوان کنند، اما آنچه مهم است این است که در قسمت function به این نکته دقت کنیم که اگر این تابع، در صورت فراخوانی، به صاحب قرارداد یا هر آدرس خاصی اجازه دهد که تمام وجوه را از قرارداد خارج کند، به احتمال زیاد یک Rug-Pull است.
- اگر تماس گیرنده “ceoAddress” باشد، کل موجودی قرارداد به “ceoAddress” منتقل می شود و از آنجایی که “ceoAddress” شخصی است که پروژه را شروع کرده است، این دقیقا نشانگر این است که چگونه و از طریق چه کسی Rug-Pull انجام می شود. همچنین، باید توجه داشت که لازم نیست آن را حتما “ceoAddress” نامید. مجرمان سایبری یا توسعه دهندگان پروژه کلاهبرداری می توانند آن را هرچه دوست دارند بنامند.
- عامل مهم دیگری که نباید فریب آن را بخوریم وضعیت قرارداد “تأیید شده” بر روی شبکه است. قراردادی که “Verified” شده با قراردادی که حسابرسی شده یکی نیست، “Verified” تنها به این معنی است که خروجی JSON قرارداد مستقر شده با ABI قرارداد در بلاکچین مطابقت دارد! به طور خلاصه، این به معنای امن بودن قرارداد نیست.
حسابرسی معمولاً به این معنی است که یک نهاد واسط معتبر زمان و تلاش خود را صرف کرده است تا مطمئن شود که قرارداد بدون اشکال است و حاوی کدهای مخفی نیست. با این حال، حتی اگر قرارداد «حسابرسی» شده باشد، بهتر است مشروعیت سازمان «حسابرسی» را دوباره بررسی کنیم.
اجماع:
راه های مختلفی برای اصلاح کد قرارداد هوشمند توسط توسعه دهندگان وجود دارد تا سرمایهگذاران بیگناه را تحت فشار قرار دهند. Rug-Pull یکی از پر بازده ترین، آشکارترین و رایج ترین روش ها محسوب می شود که تا به امروز قربانیان بسیاری را در تاریخچه خود به ثبت رسانده است. از این رو، به نگارش این راهنما پرداختیم تا از زیان های احتمالی کاربران محترم مرجع آموزشی کارا توسط کلاهبرداری های آشکار که هر روزه در دنیای رمزارزها رخ می دهد جلوگیری کرده باشیم.
دیدگاهتان را بنویسید