نکات کلیدی:
- توابع قراردادهای هوشمند، دستورالعملهایی برای بلاکچین هستند. این توابع امکان تأیید دستورالعملهایی خاص بین والتهای خودمان و اشخاص ثالثی مثل پلتفرمهای NFT و سرویسهای دیفای را فراهم میکنند.
- خیلی از افراد از نحوه تفسیر این توابع اطلاع ندارند - بنابراین این توابع را صرفاً بر اساس اعتمادی که به آنها دارند تأیید میکنند بدون اینکه آنها را بررسی کنند. این نقطه کور، فرصت بزرگی برای اسکمرها ایجاد میکند.
- کلاهبرداری بر اساس این تأییدهای قراردادهای هوشمند رو به افزایش است. در نتیجه در حال حاضر دقت داشتن نسبت به آنچه امضاء میکنید اهمیت زیادی دارد.
- در این مطلب شما را با نحوه شناسایی علائم خطر آشنا میکنیم.
دنیای کریپتو پر از فرصتها و انواع تعاملات جدید است که بیشتر آنها به لطف قراردادهای هوشمند میسر شده اند. قراردادهای هوشمند تعاملات والت شما را با پلتفرمها و سرویسهای وب 3 تعریف میکنند و به شما امکان میدهند که از داراییهای دیجیتال خودتان استفاده کرده و با استفاده از کلیدهای خصوصی خودتان به یک دنیای دیجیتال جدید دسترسی پیدا کنید.
اما این آزادی برای شما مسئولیتهای زیادی ایجاد میکند. در دنیای ناآشنا و مبهم ارزهای دیجیتال کاربران بیشتر از همیشه در برابر اشتباه آسیب پذیر هستند. این دنیا کاملاً جدید است، سرعت تحولات آن چشمگیر است و معمولاً پیچیدگی تجربیات کاربری وب 3 باعث میشود که تفسیر هر تعامل برای کاربران سخت باشد. در مجموع، وب 3 یک حوزه پیچیده است که میتواند ارزش زیادی برای شما به ارمغان بیاورد اما از طرفی تبهکاران منتظر هستند تا شما مرتکب اشتباه شوید.
در چنین شرایطی قابلیت تشخیص علائم هشدار در دنیای وب 3 اهمیت زیادی دارد. به همین دلیل در این مقاله شما را با بعضی از توابع کلیدی قراردادهای هوشمند و نحوه تشخیص کلاهبرداری و اسکمهای مربوط به آنها آشنا میکنیم.
تابع (Function) قرارداد هوشمند چیست؟
به زبان ساده، توابع یکسری قطعه کد در یک قرارداد هوشمند هستند که با استفاده از آنها میتوانید کارهای خاصی انجام دهید - "فراخوانی یک تابع" باعث شروع یک تعامل بین والت شما و پلتفرم مورد استفادهتان میشود.
تعامل با قراردادهای هوشمند یکی از اجزای تفکیک ناپذیر وب 3 است و قراردادهای هوشمند ذاتاً خطرناک نیستند.
اما مثل همه کلاهبرداریهای دنیای واقعی، در اینجا هم آگاهی اهمیت زیادی دارد و باید بتوانید نشانههای خطر را شناسایی کنید.
نشانههای خطر در توابع قراردادهای هوشمند
برای وبگردی امن در وب 3، یکسری تابع قرارداد هوشمند وجود دارد که باید با آنها آشنا باشید. در ادامه مطلب به معرفی این توابع و کلاهبرداریهای مربوط به آنها میپردازیم.
1) SetApprovalforAll
Set approval for all تابعی است که در دنیای وب 3 زیاد با آن روبرو میشوید به همین دلیل آشنایی با این تابع و درک آن اهمیت زیادی دارد. وقتی NFTهای خودتان را برای فروش در یک بازار ثبت کنید با این تابع مواجه روبرو میشوید و کاربرد آن مشخص و ساده است. این تابع به بازارامکان میدهد NFTهای شما را از والتتان خارج کرده و به والت خریدار واریز کند.
ریسکهای مربوط به SetApprovalforAll
SetApprovalforAll تابع بسیار پرکاربردی است اما به دلیل گستردگی محدوده عملکرد آن، استفاده از آن میتواند مخاطراتی به همراه داشته باشد.
تأیید کردن این تابع یعنی پلتفرم مورد نظر به همه توکنهای ERC20 یا NFTهای یک قرارداد هوشمند در والت شما دسترسی خواهد داشت - این موضوع برای توکنهای مرتبط به آن قرارداد هوشمند که در آینده به والتتان اضافه میشوند هم صدق میکند.
این کار به نوعی مثل نوشتن یک چک سفید امضاء است که قطعاً با خطر آن آشنا هستید.
کلاهبرداریها و نحوه تشخیص آنها
SetApprovalforAll میتواند ابزار خیلی مهمی برای کلاهبرداران کریپتو باشد بنابراین باید بتوانید تشخیص دهید که چه مواقعی تأیید و امضای آن امن هست یا نیست.
تنها زمانی که باید با چنین پیامی برخورد کنید، وقتی است که NFT شما در یک بازار ثبت شده یا با یک اکسچنج غیرمتمرکز تعامل دارید. این مسئله کاملاً معقول است چون باید به پلتفرم مورد نظر اجازه بدهید که وقتی توکنها را فروخته یا معامله میکنید، آنها را جابجا کند. اما به غیر از چنین مواقعی، اگر با این تابع روبرو شدید باید به شدت مراقب باشید.
از خودتان بپرسید که چرا اجازه دسترسی به توکنهای خودتان را به دیگران میدهید؟ با چنین دیدگاهی راحت تر میتوانید درباره اصالت و اعتبار تراکنش قضاوت کنید.
تولید (mint کردن) NFT: نباید این تابع را ببینید.
خرید NFT: نباید این تابع را ببینید.
ثبت نام در یک لیست مجاز: نباید این تابع را ببینید.
حالا که با تأثیر و پیامدهای امضای چنین تراکنشهایی آشنا شدید، میتوانید در صورت مشاهده آن ارزیابیهای لازم را انجام داده و برای تأیید آن تصمیم گیری کنید.
2) SafeTransferFrom
یکی دیگر از توابع بسیار رایجی که ممکن است زیاد با آن روبرو شوید، SafeTransferFrom است - این پیام در تراکنشهایی مشاهده میشود که در آنها NFTها را از والتی به والت دیگر منتقل میکنید.
مثلاً فرض کنید یک والت لجر خریده و قصد دارید NFTهای خودتان را از والت گرم فعلی به حساب امن جدید خودتان در لجر نانو منتقل کنید - در این شرایط تابع SafeTransferFrom در والت گرم شما نمایش داده میشود و باید آن را تأیید کنید که در چنین شرایطی مشاهده این پیام تأیید کاملاً منطقی است.
ریسکهای مرتبط با SafeTransferFrom
مشکل وقتی ایجاد میشود که این تابع را در شرایط دیگر ببینید - بخصوص با توجه به اینکه با این تابع NFTهای شما به یک والت دیگر منتقل میشود.
کلاهبرداریها و نحوه تشخیص آنها
در یکی از کلاهبرداریهای اخیر مرتبط با این تابع، سایت Momoco یک گزینه برای mint کردن NFT ایجاد کرده بود که باعث شد خیلی از کاربران به آن جذب شوند.
اما در واقعیت کار این قابلیت فراخوانی تابع SafeTransferFrom بود (که کاربران با تصور اینکه این فرایند مربوط به mint کردن NFT بوده آن را تأیید میکردند.) این کار باعث میشود که قرارداد موردنظر بتواند NFTهای کاربران را از والتشان خارج کند در نتیجه هزاران نفر توکنهای تعویض ناپذیرشان را از دست دادند.
هنگام فراخوانی چنین توابعی تنها اتفاقی که قطعاً رخ میدهد، قسمتهای نوشته شده در کادر است - که در اینجا انتقال از والتی به والت دیگر است.
این یک نشانه هشدار است: اگر شما قصد تولید NFT را دارید باید فراخوانی تابع برای minting را ببینید نه انتقال. در این مورد، تراکنش به وضوح نشان دهنده انتقال است. NFT از یک والت به والتی دیگر فرستاده میشود و هیچ تولیدی در این بین انجام نمیشود.
پس در مجموع حتماً به جزئیات تابع فراخوانی شده دقت داشته باشید - از جمله نوع تراکنشی که تأیید میکنید و جهت اجرای تراکنش.
3) SendEth
آخرین تابع پرکاربرد، SendEth است که اتر را به یک والت دیگر منتقل میکند. مثلاً ممکن است بخواهید اتر را بین والتهای مختلف خودتان جابجا کنید (مثلاً یک والت لجر خریده و قصد انتقال توکنهای خودتان به این والت را داشته باشید) یا اینکه از یک بازار خرید کرده باشید.
ریسکهای مرتبط با SendEth
ممکن است در مواقعی که انتظار ندارید، چنین تابعی را مشاهده کنید. مثلاً حین تولید یک NFT. در چنین مواقعی کاربران تصور میکنند که در حال تولید یک NFT هستند اما کاری که انجام میشود، انتقال وجه به یک آدرس دیگر است.
کلاهبرداریها و نحوه تشخیص آنها
با بررسی تابع فراخوانی شده و آدرس دریافت کننده میتوانید این موضوع را تشخیص دهید. mint کردن NFT یک تراکنش مستقیم با خود بلاکچین است نه یک والت دیگر؛ بنابراین باز هم در اینجا وجود آدرس دریافت کننده نشانه خطر است.
جمع بندی
در این مطلب به بررسی توابع پرکاربردی پرداختیم که هنگام کار با وب 3 با آنها روبرو میشوید.
حالا که با این توابع آشنا شدید، قطعاً کلاهبرداریهای مرتبط با آنها برای شما واضحتر خواهند بود اما نباید قدرت مهندسی اجتماعی را دست کم بگیرید. به همین دلیل باید همواره خودتان را مجهز به جدیدترین اطلاعات کنید و برای استفاده از امکانات بی شمار وب 3 دائماً در حال تحقیق و مطالعه باشید.