میهن بلاکچین
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی
No Result
مشاهده همه‌ی نتایج
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی
No Result
مشاهده همه‌ی نتایج
میهن بلاکچین
No Result
مشاهده همه‌ی نتایج
میهن بلاکچین آموزش مقالات عمومی

توصیه هایی کاربردی برای توسعه دهندگان زبان سالیدیتی (Solidity) در اتریوم!

نگارش:‌ایوب کریمی
19 مرداد 1398 - 22:30
در مقالات عمومی
زمان مطالعه: 2 دقیقه
0
سالیدیتی (Solidity) برای توسعه دهندگان

هر روز به طور متوسط ۲۰,۰۰۰ قرارداد هوشمند ایجاد می شود. تنها در نوامبر و دسامبر ۲۰۱۸ بیش از سه میلیون قرارداد هوشمند ایجاد شده است. گزارشی نشان می دهد که ۶۰ درصد از همه قرارداد های اتریوم هرگز مورد تعامل قرار نمی گیرند، کمتر از ۱۰ درصد قرارداد های ایجاد شده منحصر به فرد می باشند و در کمتر از ۱ درصد قرارداد ها کد منبع موجود است. گزارش دیگری نشان می دهد که بیش از ۲۵ درصد از همه قرارداد های هوشمند ایجاد شده به نوعی دارای باگ یا ایراد می باشند. در این مقاله مواردی ذکر می شود که به شما کمک می کند قرارداد های هوشمند بهتری بسازید.

آنچه در این مطلب می‌خوانید

Toggle
  • اصل K.I.S.S
  • استفاده مجدد
  • الگو های طراحی مهندسی نرم افزار
  • موارد آزمایشی
  • استفاده از ابزار های امنیتی
  • حملات شناخته شده و به روز رسانی ها
  • مستندات و رویه ها
  • بازبینی قرارداد
  • پاداش های باگ
  • آمادگی برای شکست
  • نتیجه گیری

اصل K.I.S.S

در موقع طراحی یک سیستم، اصل KISS مشهور و درخور توجه است. این اصل به ساده نگه داشتن موارد اشاره دارد و این امر احتمال خطا را کاهش می دهد. پس وقتی که یک قرارداد هوشمند طراحی می کنید، جریان منطقی ساده ای داشته باشید. پس با انجام این کار، در نهایت کدی تمیز و مرتب حاصل می شود.

استفاده مجدد

لازم نیست که همه چیز را از ابتدا شروع کنید. کتابخانه ها و چارچوب هایی مانند truffle و OpenZeppelin از قبل به خوبی تست شده اند و این به شما در ساخت و طراحی مجزای منطق خود با استفاده از آنها کمک می کند. چیز هایی مانند ایجاد ژنراتور عدد تصادفی خود را انجام ندهید.

الگو های طراحی مهندسی نرم افزار

الگو ها در حل تعدادی از مشکلات طراحی معماری بنیادین به ما کمک می کنند. الگو ها توسط میلیون ها نرم افزار در سراسر جهان مورد استفاده قرار می گیرند و زمینه ای از علوم کامپیوتر هستند که تحقیقات خوبی در مورد آنها انجام گرفته است. درک الگو ها به شما کمک می کند که مشکلات را سریع شناسایی کنید و با راه حل های بهتری برای آنها مواجه شوید.

Proxy Delegate یک الگوی طراحی خاص است. این الگو به افراد کمک می کند که قرارداد خود را به صورت ایمن ارتقا دهند.

موارد آزمایشی

بهتر است از TDD (طراحی مبتنی بر تست و آزمایش) تبعیت شود و این یعنی موارد آزمایش قبل از نوشتن کد ایجاد شوند و موارد آزمایش مثبت و منفی پوشش داده شوند. همچنین سعی کنید که کد خود را بشکنید و اشتباه هایی منطقی پیدا کنید. می توانید از Solidity-Coverage برای ایجاد پوشش آزمایش استفاده کنید.

استفاده از ابزار های امنیتی

امنیت قرارداد هوشمند باید بالاترین اولویت باشد. باید همه مسیر های حمله را پیدا کنید. قرارداد هوشمند و توکن ERC-20 دارای سابقه ایراد یا باگ می باشند. شما می توانید همچنین به بررسی Ethernaut Puzzles بپردازید تا با مشهورترین مشکلات امنیتی آشنا شوید. شما همچنین باید مقاله ویتالیک بوترین را در زمینه امنیت قرارداد هوشمند بخوانید. ابزار های تحلیل امنیتی متن بازی هم موجود هستند که می توانید برای تحلیل قرارداد هوشمند خود مورد استفاده قرار دهید. به چند مورد از آنها در موارد زیر اشاره می شود.

تجسم

  • Surya: ابزاری کاربردی برای سیستم های قرارداد هوشمند است که تعدادی خروجی بصری و اطلاعات در مورد ساختار قرارداد ها را ارائه می دهد. همچنین تحقیق در مورد گراف دعوت عملکرد را پشتیبانی می کند.
  • Solgraph: یک گراف DOT ایجاد می کند که جریان کنترل عملکرد یک قرارداد سالیدیتی (Solidity) را مجسم می سازد و بر آسیب پذیری های امنیتی بالقوه تاکید می کند.
  • EVMLab: یک بسته ابزاری غنی برای تعامل با EVM است که شامل یک VM، Etherchain API و یک ردیاب پیگیری (trace-viewer) است.
  • Ethereum-graph-debugger: یک اشکال زدای گرافیکی EVM است که گراف جریان کنترل تمام برنامه را نمایش می دهد.

تحلیل استاتیک و دینامیک

  • Mythril Classic: یک تحلیلگر امنیتی متن باز برای کد سالیدیتی (Solidity) و قرارداد های هوشمند روی زنجیره است.
  • Mythril Platform: یک پلتفرم SaaS است که به هر فردی اجازه می دهد که به ساختن ابزار های امنیتی هدفمند بپردازد.
  • Slither: یک چارچوب تحلیلی استاتیک به همراه اکتشافگرانی برای بسیاری از مشکلات رایج سالیدیتی است. این ابزار دارای قابلیت های ردیابی ارزش و عیب است و به زبان پایتون نوشته شده است.
  • Echidna: تنها فازر (fuzzer) موجود برای نرم افزار اتریوم است. این ابزار از تست خصوصیات برای ایجاد ورودی های بدخواه که قرارداد هوشمند را متلاشی می کنند، استفاده می نماید.
  • Manticore: یک ابزار تحلیل باینری دینامیک با پشتیبانی EVM است.
  • Oyente: به تحلیل کد اتریوم برای پیدا کردن آسیب پذیری های رایج می پردازد.
  • Securify: تحلیلگر استاتیک آنلاین کاملا اتوماتیک برای قرارداد های هوشمند می باشد که یک گزارش امنیتی را بر اساس الگو های آسیب پذیری فراهم می آورد.
  • SmartCheck: ابزار تحلیل استاتیک کد منبع Solidity برای آسیب پذیری های امنیتی و انجام بهترین اقدامات ممکن است.
  • Octopus: ابزار تحلیل امنیتی برای قرارداد های هوشمند بلاک چینی با پشتیبانی از EVM و e) WASM) می باشد.

حملات شناخته شده و به روز رسانی ها

همیشه خودتان را با حملات شناخته شده و آپدیت های سالیدیتی (Solidity) به روز نگه دارید. آپدیت های برجسته سالیدیتی ممکن است تغییرات برجسته ای به دنبال داشته باشد. در این لینک می توانید لیستی از حملات شناخته شده قرارداد هوشمند را مشاهده نمایید.

وقتی که یک توکن ERC-20 را توسعه می دهید، چند چیز اساسی وجود دارد که باید مورد توجه قرار دهید:

  • مراقب حملات پیشرو (front-running) در ERC-20 باشید.
  • از انتقال توکن ها به آدرس 0x0 جلوگیری کنید.
  • از انتقال توکن ها به آدرس تماس جلوگیری کنید.

استاندارد های اتریوم بهتری مانند ERC-223 و ERC-777 وجود دارند که به عنوان جایگزین ERC-20 می توان مورد استفاده قرار داد. همچنین EIP های امنیتی مهم هستند و باید مراقب آنها بود، هم برای درک اینکه EVM چگونه کار می کند و یا برای اطلاع از بهترین اقدامات در زمان توسعه یک سیستم قرارداد هوشمند مناسب می باشند.

توسعه دهنده بلاک چین

مستندات و رویه ها

وقتی که کد شما قابلیت سر و کار داشتن با میلیون ها دلار پول را دارد، مستندات اقدامی حائز اهمیت می باشد. مستندات به مشارکت کنندگان داخلی و خارجی، بازرسان و بازدید کنندگان مستقل کمک می کند تا قرارداد های شما را درک کنند.

  • مشخصات، ماشین های مرحله ای و مدل هایی ایجاد کنید که به دیگران در درک سیستم کمک می کنند.
  • یک طرح جدید بیرون دادن محصولات یا سرویس ها را با مستندات خود همراه کنید.
  • نسخه حال حاضر کامپایلر را تعیین کنید.
  • مشکلات شناخته شده، مسیر های حمله، محدودیت ها و درمان های احتمالی آنها را تعیین کنید.
  • آزمون همگرایی و تحلیلگران را مشخص کنید.
  • سابقه را حفظ کنید و تغییرات را به مرور زمان ثبت نمایید.
  • نویسندگان و مشارکت کنندگان قرارداد را با اطلاعات عمومی تماس آنها مشخص کنید.

بازبینی قرارداد

شرکت هایی وجود دارند که می توانند به شما کمک کنند که به بازرسی قرارداد هوشمند خود بپردازید. این سرویس ها مفید می باشند زیرا کارشناسان کد شما را برای آسیب پذیری های احتمالی مورد بررسی قرار می دهند. اگر در حال ساختن قرارداد هوشمندی هستید که کسب و کار شما به آن بستگی دارد، این کار شدیدا توصیه می شود.

پاداش های باگ

همیشه کمک می کند که افراد بیشتری مراقب کد شما باشند. پاداش هایی که برای باگ ها در نظر گرفته می شوند، بازده ای عالی دارند. توصیه های زیر برای اجرای چنین برنامه هایی مفید هستند:

  • در مورد کل بودجه و ارزی که پاداش ها را با آن پرداخت می کنید، تصمیم گیری نمایید.
  • بودجه خود را برحسب انواع مختلف آسیب پذیری طبقه بندی کنید.
  • یک تیم برای داوری کردن در مورد پاداش اختصاص یافته ایجاد نمایید.
  • یک کانال ارتباطی صحیح برای گزارش دادن باگ ها معرفی کنید.
  • از مخازن خصوصی برای تعمیر باگ استفاده نمایید و چند تا از افرادی که در جستجوی پاداش هستند را در ارزیابی تعمیرات وارد نمایید.
  • در دادن پاداش به یابندگان عیب و ایراد تاخیر نکنید.

در این زمینه می توانید برنامه پروژه 0x را مورد بررسی قرار دهید.

آمادگی برای شکست

در جایی که کد وجود دارد، احتمال وجود باگ هم هست. وقتی که نوبت به قرارداد های هوشمند می رسد، یک طرح جامع برای بدترین سناریو ها ایجاد نمایید. Alan J. Perlis می گوید:

دو روش برای نوشتن برنامه های عاری از خطا وجود دارد که تنها سومی آنها کار می کند!

توصیه های زیر می توانند به شما در ایجاد چنین طرحی برای توکن خود کمک کنند:

  • یک قطع کننده مدار (circuit breaker) به قرارداد هوشمند خود اضافه کنید که همه انواع تراکنش ها را متوقف نمایند.
  • طرحی برای ارتقای قرارداد، ترمیم باگ و بهبودی ها ایجاد نمایید.
  • یک کانال ارتباطی و راهنمای مناسب برای سیاست افشای اطلاعات ایجاد نمایید.
  • تاثیر باگ ها و ریسک پول را به حداقل برسانید. برای زمان ضرر برنامه داشته باشید تا به آن متوسل شوید. از جمله این برنامه ها می توان به بیمه، صندوق جریمه و غیره اشاره کرد.

نتیجه گیری

همیشه قرارداد هوشمند خود را برای استفاده از gas بهینه کنید. پیشگیری بهتر از درمان است؛ همیشه برای هر شرایطی که ممکن است روی دهد برنامه داشته باشید. در مورد قراردادهای هوشمند، این پول واقعی است که در گرو قرار دارد، پس به عنوان برنامه نویس باید بسیار مواظب باشید. همیشه در جریان آخرین تغییرات زبان سالیدیتی (Solidity)، کامپایلر و حملات شناخته شده در اکوسیستم باشید. با بلاک چین اتریوم، ماهیت هر چیزی عمومی می شود و در این میان به بلوغ حال حاضر این اکوسیستم توجه داشته باشید و مواظب باشید که چیزی در اثر اعتماد به نفس بیش از حد فدا نشود. پس به ساخت، آزمایش، برنامه ریزی و دنبال کردن فرآیند هایی بپردازید که آسیب پذیری های احتمالی را در قرارداد هوشمند شما کم می کنند. هوشمندانه به کدگذاری بپردازید.

تگ: اتریومقرارداد هوشمند
اشتراک‌گذاریتوئیت

نوشته‌های مشابه

Vitalik Buterin
اخبار اتریوم

هشدار ویتالیک بوترین: صنعت کریپتو به بازنگری اساسی نیاز دارد

11 تیر 1404 - 22:00
45
فیچر اتریوم
اخبار اتریوم

بنیاد جامعه اتریوم برای حمایت از پذیرش سازمانی و افزایش قیمت ETH راه‌اندازی شد

11 تیر 1404 - 15:00
41
فیچر تحلیل آلت کوین - تحلیل تکنیکال - ارز دیجیتال
تحلیل تکنیکال

تحلیل تکنیکال قیمت اتریوم (ETH)، ریپل (XRP) و سولانا (SOL)؛ ۱۱ خرداد ۱۴۰۴

11 تیر 1404 - 10:00
90
اخبار اتریوم

اتریوم در آستانه رالی غیرمنتظره؛ الگوی قدرت سه‌گانه نشانه چیست؟

10 تیر 1404 - 15:00
753
فیچر آلتکوین‌
تحلیل تکنیکال

تحلیل تکنیکال قمیت اتریوم (ETH)، ریپل (XRP) و سولانا (SOL): ۱۰ تیر ۱۴۰۴

10 تیر 1404 - 10:00
98
تاریخچه قیمت اتریوم از ابتدا
اخبار اتریوم

در دهمین سالگرد اتریوم، کپسول زمان آنچین رونمایی شد!

9 تیر 1404 - 18:30
50
اشتراک
اطلاع از
0 دیدگاه
جدید ترین
قدیمی ترین محبوب ترین
Inline Feedbacks
View all comments

آموزش

آموزش نوبیتکس آموزش کار با صرافی نوبیتکس آموزش کار با نوبیتکس
صرافی متمرکز

بازتاب اخبار بازیابی تدریجی خدمات نوبیتکس در رسانه‌های خارجی

9 تیر 1404 - 19:00
14369
کیف پول سخت افزاری لجر نانو اس Ledger Nano S
کیف پول

پایان پشتیبانی لجر از کیف پول Nano S و نگرانی کاربران درباره امنیت دارایی‌ها

7 تیر 1404 - 14:00
716
اینفوفای
کریپتو پدیا

اینفوفای (InfoFi) چیست و چگونه در این معدن، طلای ناب را استخراج کنیم؟

6 تیر 1404 - 22:00
269
گزارش اسکم
مقالات عمومی

کلاهبرداری بیت کوین را چگونه و در کجا گزارش دهیم؟ راهنمای کامل Chainabuse و Scamwatch

6 تیر 1404 - 20:00
148
معرفی پروژه‌های محبوب در اکوسیستم هایپرلیکوئید
دیفای

معرفی پروژه‌های محبوب در اکوسیستم هایپرلیکوئید

6 تیر 1404 - 16:00
271
هک نوبیتکس
صرافی متمرکز

کالبدشکافی هک صرافی نوبیتکس؛ جنگ سایبری، پیام‌های پنهان و آینده مبهم ارزهای دیجیتال در ایران

8 تیر 1404 - 20:01
21409

پیشنهاد سردبیر

هک نوبیتکس

کالبدشکافی هک صرافی نوبیتکس؛ جنگ سایبری، پیام‌های پنهان و آینده مبهم ارزهای دیجیتال در ایران

8 تیر 1404 - 20:01
21409

کلاهبرداری بیت کوین را چگونه و در کجا گزارش دهیم؟ راهنمای کامل Chainabuse و Scamwatch

چرا مدل امنیتی بیت کوین شکست خورده است؟ احتمال فروپاشی در عرض یک دهه؟!

توکنومیکس بد، قاتل پروژه‌های خوب: ۵ اشتباه مرگبار در اقتصاد توکنی

کریپتو درینر (Crypto Drainer) چیست؟ تخلیه کیف پول ارز دیجیتال با اسکریپت مخرب

فناوری دوقلوی دیجیتال چیست؟ کلاهبرداری ارز دیجیتال با Digital twin

  • خانه
  • قیمت ارز
  • صرافی ها
  • ماشین حساب
No Result
مشاهده همه‌ی نتایج
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی

© 2025 - تمامی حقوق مادی و معنوی این وبسایت نزد میهن بلاکچین محفوظ است

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

© 2025 - تمامی حقوق مادی و معنوی این وبسایت نزد میهن بلاکچین محفوظ است.