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

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

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

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

ArzPlus Logo آلت‌سیزن شروع شده!🚀

همین حالا در ارزپلاس ثبت‌نام کن و به بیش از 900 آلت‌کوین پرسود بازار دسترسی داشته باش.

ثبت نام و خرید سریع

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

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)، کامپایلر و حملات شناخته شده در اکوسیستم باشید. با بلاک چین اتریوم، ماهیت هر چیزی عمومی می شود و در این میان به بلوغ حال حاضر این اکوسیستم توجه داشته باشید و مواظب باشید که چیزی در اثر اعتماد به نفس بیش از حد فدا نشود. پس به ساخت، آزمایش، برنامه ریزی و دنبال کردن فرآیند هایی بپردازید که آسیب پذیری های احتمالی را در قرارداد هوشمند شما کم می کنند. هوشمندانه به کدگذاری بپردازید.

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

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

تحلیل بازار

سنتیمنت: اتریوم فعلا یک گام جلوتر از بیت کوین است

26 مرداد 1404 - 21:00
54
بدترین سناریو برای قیمت بیت کوین از نظر بنجامین کاون
تحلیل بازار

بازار کریپتو آماده سقوط؟ پیش‌بینی جدید بنجامین کاون درباره اصلاح بیت کوین

26 مرداد 1404 - 20:00
780
فیچر نهنگ کلی
اخبار اتریوم

کیف پول ۱۰ ساله ICO اتریوم فعال شد؛ ۱.۵ میلیون دلار ETH جابه‌جا شد

26 مرداد 1404 - 12:00
69
فیچر تحلیل اتر و بیت
تحلیل تکنیکال

تحلیل تکنیکال قیمت بیت کوین (BTC) و اتریوم (ETH)؛ ۲۶ مرداد ۱۴۰۴

26 مرداد 1404 - 09:00
193
فیچر بیت کوین تا ۲۰۳۰
تحلیل بازار

سمسون مو: رالی گودزیلای بیت کوین ممکن است آلت کوین‌ها را تا ۴۰٪ به پایین بکشد!

25 مرداد 1404 - 23:00
578
ایردراپ توکن AXS به بازیکنان اولیه بازی اکسی اینفینیتی Axie infinity airdrop
اخبار اتریوم

بازگشت رونین به اتریوم؛ مهاجرت از بلاکچین اختصاصی به لایه دوم

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

آموزش

moonbirds-nfts مجموعه انفتی مون بردز
NFT

بازگشت شگفت‌انگیز مون بردز؛ NFT شکست‌خورده‌ای که دوباره جان گرفت

26 مرداد 1404 - 19:00
25
فیچر مالیات بیت کوین
مقالات عمومی

۵ کشوری که در سال ۲۰۲۵ رمزارزها در آن‌ها معاف از مالیات هستند!

26 مرداد 1404 - 18:00
157
فیچر هیومنیتی پروتکل
کریپتو کده

هیومنیتی پروتکل (Humanity Protocol) چیست؟ تحولی در تایید هویت دیجیتال

24 مرداد 1404 - 22:00
84
رتبه بندی اعتباری آنچین
کریپتو پدیا

رتبه بندی اعتباری آنچین چیست؟ همکاری شرکت اعتبارسنجی مودیز با بلاکچین سولانا

24 مرداد 1404 - 20:00
51
فیچر بازیابی بیت کوین ها یگمشده با فناوری کوانتومی
مقالات عمومی

آیا بازیابی بیت کوین‌های گمشده با فناوری کوانتومی امکان‌پذیر است؟

24 مرداد 1404 - 16:00
103
کاندید بعدی فدرال رزرو
مقالات عمومی

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

24 مرداد 1404 - 12:00
1321

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

تاخیر برداشت در اکسکوینو

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

5 مرداد 1404 - 17:00
2844

کلاهبرداری با کیف پول چند امضایی چیست و چگونه از آن در امان بمانیم؟

حمله انتقال صفر (Zero-Transfer)؛ راهنمای کامل شناسایی و مقابله با تهدید کیف پول‌های رمزارزی

تاثیر تصویب قانون GENIUS بر ریسک فریز و مسدود شدن دارایی‌های تتر ایرانی‌ها؛ چه باید کرد؟

اشتباه ۶۰ هزار دلاری کاربر بیت کوین در پرداخت کارمزد؛ مراقب باشید این اشتباه را تکرار نکنید!

تسلیم یا کاپیتولاسیون (Capitulation) در کریپتو چیست؟ نشانه ترس یا فرصتی برای ورود به بازار؟

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

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

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

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