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

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

فیچر اتریوم
تحلیل بازار

سیگنال نادر اتریوم؛ رشد اتریوم و شروع آلت سیزن نزدیک است؟

27 اردیبهشت 1404 - 21:00
534
solana price تحلیل قیمت سولانا
تحلیل فاندامنتال

خرید دکسترلب، ارائه‌دهنده‌ زیرساخت سولانا توسط شرکت Alchemy

27 اردیبهشت 1404 - 15:00
37
تحلیل تکنیکال قیمت بیت کوین (BTC) و اتریوم (ETH)؛ ۴ اسفند ۱۴۰۳
تحلیل تکنیکال

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

27 اردیبهشت 1404 - 09:00
142
اخبار اتریوم

ارتقای پکترا و آغاز عصری جدید؛ استقبال بی‌سابقه کاربران اتریوم از پروپوزال EIP-7702

25 اردیبهشت 1404 - 21:00
176
اخبار اتریوم

آیا قیمت اتریوم در سال ۲۰۲۵ به ۵۰۰۰ دلار می‌رسد؟ بررسی عوامل صعودی

25 اردیبهشت 1404 - 13:00
364
فیچر تحلیل اتر و بیت
تحلیل تکنیکال

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

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

آموزش

حمله سایبری به deBridge
صرافی متمرکز

حمله سازمان‌یافته به صرافی‌های بزرگ کریپتو؛ امنیت داخلی بایننس و کراکن مانع نفوذ مجرمین شد

27 اردیبهشت 1404 - 17:00
56
ربات های ترید ارز دیجیتال
ترید

راهنمای جامع ربات‌های ترید ارز دیجیتال؛ مقایسه عملکرد ربات‌های تلگرامی، ربات‌های مبتنی بر وب و ایجنت‌های AI

27 اردیبهشت 1404 - 08:01
170
بیت کوین لیب bitcoinlib
کریپتو پدیا

بیت‌کوین‌لیب (Bitcoinlib) چیست و چگونه مورد حمله هکرها قرار گرفت؟

26 اردیبهشت 1404 - 20:00
53
دپ های بی ان بی اسمارت چین
مقالات عمومی

بهترین پروژه‌های زنجیره‌ هوشمند BNB در سال ۲۰۲۵ که نباید از دست بدهید!

26 اردیبهشت 1404 - 16:00
245
استیکینگ سولانا
آموزش

آموزش استیک سولانا در سال ۲۰۲۵؛ راهنمای گام‌به‌گام استیکینگ SOL در کیف پول فانتوم

27 اردیبهشت 1404 - 08:02
175
بیت کوین به عنوان پوشش تورم
مقالات عمومی

آیا بیت کوین به‌عنوان پوشش تورم در سال ۲۰۲۵ مناسب است؟

25 اردیبهشت 1404 - 22:00
81

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

استیکینگ سولانا

آموزش استیک سولانا در سال ۲۰۲۵؛ راهنمای گام‌به‌گام استیکینگ SOL در کیف پول فانتوم

27 اردیبهشت 1404 - 08:02
175

راهنمای جامع ربات‌های ترید ارز دیجیتال؛ مقایسه عملکرد ربات‌های تلگرامی، ربات‌های مبتنی بر وب و ایجنت‌های AI

ترید کریپتو در دوران رکود اقتصادی؛ هنر بقا در روزهای سخت

نرخ بهره فدرال رزرو چیست؟

معرفی بایننس آلفا (Binance Alpha)؛ پلتفرم کشف توکن‌های آینده‌دار پیش از لیست شدن در صرافی

آینده میکروپرداخت‌ها (Micro Payments)؛ بررسی چالش‌های قدیمی و راه‌حل‌ها

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

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

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

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