آشنایی با ۴ اشتباه رایج در قراردادهای NFT

https://a-s3.alpharency.com/alpharency/public/IMAGE/2d183aa5bbe83e8a5a8ff12545de38b7.png
4:48 دقیقه
0
۱۴۰۵/۵/۸

با ۴ اشتباه رایج در قراردادهای NFT آشنا شوید تا از خطرات امنیتی و سازگاری جلوگیری کنید.

بازار توکن‌های غیرمثلی (NFT) و قراردادهای هوشمند آن با وجود رشد روزافزون، اغلب میزبان خطاهای تکراری و ساختاری موسوم به ضد الگو هستند که می‌توانند امنیت و عملکرد پروژه‌ها را به خطر بیندازند. مقاله پیش رو با بررسی کدهای استاندارد ERC721، به معرفی و تحلیل چهار اشتباه رایج در طراحی قراردادهای NFT می‌پردازد که شامل بی‌توجهی به امنیت مبتنی بر نقش، عدم بهره‌گیری اصولی از تست‌های واحد و ابزارهای خودکار ارزیابی امنیتی، گنجاندن اطلاعات و منطق مالی حساس به‌طور مستقیم درون کد قرارداد، و در نهایت عدم استفاده صحیح از استاندارد ERC-165 (Introspection) است. شناخت این موانع و الگوهای نادرست به توسعه‌دهندگان کمک می‌کند تا با رعایت استانداردهای امنیتی و بهینه‌سازی کدهای خود، پایداری، اعتماد کاربران و ارزش دارایی‌های دیجیتال را در اکوسیستم بلاک‌چین به حداکثر برسانند.

آشنایی با ۴ اشتباه رایج در قراردادهای NFT

بازار NFT مکانی است که در آن افراد می‌توانند اقلام دیجیتالی منحصربه‌فرد مانند شخصیت‌های هنری یا بازی‌های ویدیویی را بخرند و بفروشند که اخیراً رشد زیادی داشته است و همچنان در حال رشد و تغییر است.  پلتفرم Etherscan دارای یک ابزار جستجوی کاربردی است که با استفاده از آن می توانید کدهای بسیاری از قراردادهای ERC721 را علاوه بر استفاده از ویژگی های تایید و دکامپایل مقایسه کنید. در مقایسه قراردادها مشاهده می شود که با وجود طراحی خوب برخی از قراردادها، در بسیاری از قراردادها یکسری اشتباهات خاص تکرار می شود. این مقاله در مورد 4 اشتباه است که اغلب در قراردادهای NFT انجام می شود. به این اشتباهات «ضد الگو» می گویند.

اتریوم در حال حاضر گران ترین بلاک چین است. این کمی ارزان تر از اتریوم است و بلاک چین هایی مانند Solana (بدون قابلیت EVM) بسیار ارزان تر هستند.

  • اگر از امنیت مبتنی بر نقش استفاده نمی‌کنید، هر کسی می‌تواند به هر بخشی از سیستم دسترسی داشته باشد که می‌تواند منجر به مشکلات جدی شود. قرارداد هوشمند یک پروتکل کامپیوتری است که برای تسهیل، تأیید یا اجرای مذاکرات یا اجرای یک قرارداد به صورت دیجیتالی طراحی شده است. قراردادهای هوشمند امکان انجام معاملات معتبر را بدون اشخاص ثالث فراهم می کند. این تراکنش ها قابل پیگیری و برگشت ناپذیر هستند. ساده ترین راه برای افزودن کنترل به پروژه، استفاده از مدل Ownable است. این به مالک پروژه کنترل می دهد که چه کسی می تواند به پروژه دسترسی داشته باشد و تغییراتی در آن ایجاد کند. این پیشنهاد استفاده از امنیت مبتنی بر نقش را توصیه می کند، که در آن افراد فقط به اطلاعاتی که برای شغل خود نیاز دارند دسترسی دارند.
  • این مدل به این دلیل استفاده می شود که منجر به یک تصمیم خوب می شود. شما یا مشتری شما ممکن است تنها کسی باشید که قرارداد را برای همیشه مدیریت خواهید کرد. این به این معنی است که وقتی هزینه کم است، مردم بیشتر احتمال دارد که رویدادهای آینده را پیش‌بینی کنند و با آنها مقابله کنند. امنیت مبتنی بر نقش کمی پیچیده‌تر و گران‌تر از مدل Ownable است. فقط در صورت نیاز می توانید از کد امنیتی مبتنی بر نقش (اعم از OpenZeppelin یا مدل خودتان) استفاده کنید.

    تست واحد فرآیندی است که در آن بخش‌های جداگانه کد خود را آزمایش می‌کنید تا مطمئن شوید که به درستی کار می‌کنند. این مهم است زیرا می تواند به شما کمک کند تا قبل از انتشار کد، خطاهای موجود در کد خود را پیدا کرده و رفع کنید. مهم نیست از چه چارچوبی برای تست استفاده می کنید. نویسنده یک مقاله برنامه نویسی از زبان های برنامه نویسی Hardhat، Ethers و Mocha استفاده می کند. هنگام انتخاب یک چارچوب تست، توجه به پوشش تست، پوشش موارد شاد مسیر، پوشش موارد استثنایی و عمق و وسعت موارد مهم است.

  • اگر هنگام آزمایش چیزی از ابزارهای خودکار استفاده کنید، کمک زیادی به شما خواهد کرد. Slither، Manticore و Mythril همگی نرم افزارهایی هستند که به یافتن مسائل امنیتی در کد کمک می کنند. آنها معمولا توسط شرکت های بزرگ حسابرسی امنیتی استفاده می شوند. ابزار solidity-coverage درصد پوشش تخمینی تست های واحد شما را نشان می دهد. Solgraph ابزاری است که به شما این امکان را می دهد تا ببینید که چگونه کد در یک قرارداد به هم مرتبط و متصل است. این می تواند هنگام برنامه ریزی آزمون ها مفید باشد. اکیدنا ابزاری است که می‌توان از آن برای حل مشکلات استفاده کرد. کمی پیچیده است، اما می تواند بسیار مفید باشد. این بدان معنی است که بهتر است همیشه با روشی که شامل آزمایش است پیش بروید. این به این معنی است که آزمایشات شما بخش بیشتری از پروژه را پوشش می دهد و بهتر با انتظارات پروژه مطابقت دارد.
  •  

  • گنجاندن اطلاعات شخصی در قراردادها ایده خوبی نیست. درست است که قرارداد باید مرکز تغییرناپذیر شبکه ای از منطق باشد، اما نباید مستقیماً پول را مدیریت کند. این بدان معنی است که اطلاعاتی مانند فروش، زمان و لیست کاربران تایید شده نباید مستقیماً در کد پروژه ERC721 قرار گیرد. منطق فروش زمانی است که از فروش برای متقاعد کردن کسی برای خرید چیزی استفاده می کنید. منطق اصلی زمانی است که از دلایل و حقایق برای متقاعد کردن کسی برای انجام کاری استفاده می کنید. آنها هر دو راهی برای متقاعد کردن کسی برای انجام کاری هستند، اما منطق اصلی بیشتر مبتنی بر استدلال است در حالی که منطق فروش بیشتر مبتنی بر احساسات است. اگرچه ممکن است در هزینه صرفه جویی کنید، اما عموماً ایده خوبی نیست که تمام منطق خود را در یک قرارداد قرار دهید. دلایل مهم تری وجود دارد که چرا این ایده خوبی نیست. این بدان معناست که قوانین شما برای نحوه انجام کارها باید همیشه یکسان باشد و باید از استانداردهای پذیرفته شده پیروی کنید. اگر می خواهید شرایط قرارداد خود را تغییر دهید، می توانید این کار را بدون آسیب رساندن به اعتماد کاربر انجام دهید. این بدان معناست که وقتی شما در حال طراحی چیزی هستید، باید برای هر قسمت از آن یک برنامه جداگانه داشته باشید و هر قسمت فقط یک هدف داشته باشد. بهتر است در قرارداد ERC721 موارد محدودی وجود داشته باشد تا فقط ادمین بتواند آن را تغییر دهد.
  • عدم استفاده از ERC-165 (Introspection) به این معنی است که نمی توانید بررسی کنید که آیا یک قرارداد از یک رابط خاص پشتیبانی می کند یا خیر و این می تواند منجر به رفتارهای غیر منتظره شود. این بدان معناست که اکثر قراردادهای موجود در آنجا با ERC-165 سازگار نیستند یا آن را به درستی اجرا نمی کنند. ERC-165 مهم است زیرا به سیستم های مختلف مبتنی بر اتریوم اجازه می دهد با هم کار کنند. اگر یک توکن ERC-165 دارید، به این معنی است که قرارداد شما با بسیاری از قراردادهای دیگر سازگار است. این باعث می شود توکن شما با ارزش تر باشد و صرافی ها تمایل بیشتری به همکاری با شما دارند. در اکثر قراردادها، ERC-165 یا اجرا نمی شود یا به طور نامناسب اجرا می شود.
  •  

    به مقاله امتیاز دهید :

    کپی شد

    پست بعدی :

    alpharency

    راهنمای گام به گام ساخت سبد سرمایه‌ گذاری رمز ارز

    پست قبلی :

    alpharency

    هر چیزی که باید درباره ی VR بدانید اینجاست!

    آخرین مقاله ها

    نظرات کاربرانComments

    ارسال

    اولین نفر برای ثبت نظر در این مقاله باشید

    کپی‌رایت ©۲۰۲۶ آکادمی آلفارنسی S.L. تمامی حقوق محفوظ است.