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

آیا کدهای قرارداد هوشمند در شبکه اتریوم واقعا تغییر ناپذیرند؟

نگارش:‌مازیار نسیمی
1 دی 1399 - 19:30
در مقالات عمومی
زمان مطالعه: 1 دقیقه
0
قرارداد هوشمند تغییر ناپذیر

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

ArzPlus Logo فرصت ویژه: ۱ میلیارد بیبی دوج رایگان!

همین حالا در ارزپلاس ثبت‌نام کنید و ۱ میلیارد بیبی دوج هدیه بگیرید. بدون قرعه‌کشی، فرصت محدود!

دریافت هدیه

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

اتریوم ۲ چیست؟ راهنمای کامل به‌روزرسانی شبکه بلاکچین اتریوم

هرچند، روش‌ها و الگوهای ابتکاری و اکتشافی جدیدی نظیر از بین بردن قرارداد یا در اختیار داشتن تصدی آدرس برای خروج سرمایه در مواقع اضطراری برای توسعه ایمن‌تر مورد استفاده قرار می‌گیرد. در خصوص تغییر ناپذیری قابل به‌روزرسانی، یک الگو و پارادایم رایج وجود دارد: قراردادهای پروکسی (proxy contract).

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

Toggle
  • تغییر ناپذیر بودن قرارداد هوشمند
  • کلام آخر

تغییر ناپذیر بودن قرارداد هوشمند

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

آپ‌کد (opcode) یا همان کد عملیاتی delegatecall در سالیدیتی به قرارداد امکان می‌دهد تا تابعی را از یک قرارداد دیگر اجرا کند، اما نحوه اجرای آن به صورتی است که انگار تابع مورد نظر از قرارداد فراخوانی (calling) می‌شود. Delegatecall به قرار‌دادهای هوشمند این امکان را می‌دهد که تابع قرار‌داد دیگری را قرض بگیرد. توابعی که با delegatecall اجرا می‌شوند به جای قراردادهایی که توابع در آنها تعریف شده‌اند، بر متغیرهای ذخیره‌سازی قرارداد فراخوانی تاثیرگذار هستند.

پروپوزال‌های بهبود اتریوم

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

پروپوزال EIP 1538

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

این پروپوزال بیانگر نقاط مثبت و منفی و مقایسه قرار‌داد شفاف بدون نیاز به اعتماد و تغییرناپذیر با قراردادهای وکالتی مبهم و قابل به‌روزرسانی است. از جمله ویژگی‌های این پروپوزال می‌توان به موارد زیر اشاره کرد:

  • قرارداد شفاف شامل fallback است که با استفاده از آپ‌کد delegatecall، فراخوانی توابع را به قرارداد وکالتی ارسال می‌کند. این قرار‌داد هم‌چنین در صورت نیاز از سایر توابع تغییرناپذیر نیز پشتیبانی می‌کند.
  • قرار‌دادهای وکالتی با ارائه آدرس جدید به تابع updateContract قابل تغییر است. هرچند، کاربران فقط می‌توانند با آدرس‌های ثابت تعامل برقرار کنند.
  • قرارداد استاندارد باید دارای مکانیزم تایید باشد تا به‌روزرسانی‌های وکالتی را از قرارداد شفاف امکان‌پذیر سازد.
  • هر به‌روزرسانی در تابع، به حذف رویدادهای CommitMessage و FunctionUpdate می‌پردازد تا تغییرات را ثبت کند.
  • با توجه به فهرست امضاهای توابع، می‌توان چندین به‌روزرسانی را یکباره و با هم اجرا کرد.
  • هر زمان که تابع updateContract از قرارداد وکالتی تازه اجرا شده حذف شود، تغییرپذیری غیرفعال می‌شود.

پروپوزال EIP 2535

این پروپوزال که به اسم استاندارد دایموند (Diamond Standard) نیز شناخته می‌شود، به عنوان جانشین EIP 1538 یک طراحی ماژولار برای توسعه‌های مختلف قراردادهای هوشمند ارائه می‌دهد، از به‌روزرسانی‌های کامل و جزیی پشتیبانی می‌کند، بر اساس قرار‌داد دایموند و چندین فاست مختلف است. دایموند، قراردادی است که توابع خارجی را به فاست‌ها متصل می‌کند. فاست‌ها، قراردادهای مجزایی هستند که توابع خارجی را ارائه می‌‌دهند.

پروپوزال‌های بهبود اتریوم - قرارداد

توضیحات:

  • هربار که تابع خارجی فراخوانی شود، دایموند به اجرای fallback خود می‌پردازد. دایموند، آدرس‌های فاست را از مپینگ selectorToFacet دریافت کرده و سپس delegatecall را اجرا می‌کند.
  • به‌روزرسانی‌های فاست از طریق فراخوانی تابع DiamondCut انجام می‌شوند و به آدرس فاست و انتخاب کننده آن یک عملکرد اضافی (افزودن، جایگزین کردن یا حذف کردن) می‌دهد تا عملکرد تابع ادامه یابد. به علاوه، برای ثبت تغییرات جدید، رویدادی حذف شده است.
  • متغیرهای وضعیت فاست باید در اسلات ذخیره‌سازی ایستا (static) باقی بمانند.
  • ذخیره‌سازی دایموند، روشی برای کنترل محدوده عملکرد متغیرهای وضعیت در بین فاست‌های مختلف است.
  • فاست‌ها هم‌چنین می‌توانند هنگامی که با توابع داخلی در یک قرارداد یا کتابخانه قرار دارند، آنها را به اشتراک بگذارند.
  • از فاست‌ها می‌توان مجددا استفاده کرد و توسط چند دایموند به اشتراک‌گذاری آنها پرداخت.
  • هر دایموند دارای یک فاست لوپ (Loop) است که شامل چهار تابع استاندارد خارجی برای نمایش تمام فاست‌ها و توابع آنها است.

پروپوزال EIP 1822

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

پروپوزال‌های بهبود اتریوم

توضیحات:

  • آدرس قرار‌داد منطقی در اسلات حافظه ثابت در قرارداد پروکسی قرار دارد: آدرس اسلاتkeccak256(“PROXIABLE”)
  • تمام قراردادهای منطقی بعد از آن باید در قرارداد پروکسی استاندارد وجود داشته باشند.
  • قرارداد پروکسی شامل تابع updateCodeAddress برای اجرای به‌روزرسانی‌ها است.
  • بررسی تطابق‌پذیری قبل از به‌روزرسانی انجام می‌شود تا اطمینان حاصل شود که قرار‌داد منطقی مطابق با استاندارد پروکسی قابل به‌روزرسانی است.
  • ترتیب متغیرها در قراردادهای منطقی بعدی برای جلوگیری از بازنویسی مقادیر موجود در پروکسی بسیار مهم است. توصیه می‌شود که از قرار‌داد پایه و مبنا برای این کار استفاده شود که تمام قراردادهای جدید را شامل شود.
  • معمولا قراردادهای Owner و LibraryLock در امتداد قرارداد منطقی اجرا می‌شود تا دسترسی‌ها را کنترل کند و از اجرای توابع آسیب‌رسان جلوگیری کند.
  • قرارداد پروکسی از چندین کانستراکتور موجود در قرار‌داد منطقی پشتیبانی می‌کند و اطلاعات دلخواه در کانستراکتور خود را نیز می‌پذیرد.

پروپوزال EIP 1155

این استاندارد که نمای کلی از انواع مختلف توکن‌ها نظیر توکن‌های قابل تعویض، تعویض ناپذیر و نیمه تعویض‌پذیر است را می‌توان برای پشتیبانی از انواع جدید توکن‌ها تغییر داد و مجددا تنظیم کرد. این استاندارد هم‌چنین اقدامات اتمی در بین انواع مختلف توکن‌ها را امکان‌پذیر می‌سازد.

توضیحات:

  • هر توکن یک ID منحصربه‌فرد دارد.
  • قرار‌داد باید قبل از بررسی آدرس مقصد، تابع ERC-165 supportsInterface را اجرا کند.
  • هر تابع در قرارداد، یک پارامتر ID را می‌پذیرد تا درخواست را به توکن ارسال کند.
  • پردازش چند عملیات در آن واحد را امکان‌پذیر می‌سازد.

کلام آخر

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

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

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

حمله زنجیره تامین
کریپتو پدیا

حمله زنجیره تامین چیست و چرا حملات Supply Chain در دنیای کریپتو خطرناک هستند؟

23 مرداد 1404 - 22:00
70
فیچر اتریوم و پروپوزال EIP-7782
کریپتو پدیا

پروپوزال EIP-7782 چیست؟ پیشنهادی برای بلاک‌های ۶ ثانیه‌ای اتریوم

23 مرداد 1404 - 12:00
76
ولیدیتورهای کازمس از ارائه خدمت به سیکرت نتورک سر باز زندن
تحلیل فاندامنتال

پایان کار Eden Network؛ خداحافظی با یکی از بازیگران مهم حوزه MEV

22 مرداد 1404 - 21:00
69
تحلیل بازار

پیش‌بینی یک تحلیلگر: اگر بیت کوین به ۱۵۰ هزار دلار برسد،‌ اتریوم ۸۵۰۰ دلاری می‌شود!

22 مرداد 1404 - 14:00
199
فیچر قیمت اتریوم
اخبار اتریوم

اتریوم در چند قدمی سقف تاریخی؛ فروش هیجانی معامله‌گران خرد ادامه دارد

22 مرداد 1404 - 12:00
728
تحلیل تکنیکال قیمت بیت کوین (BTC) و اتریوم (ETH)؛ ۴ اسفند ۱۴۰۳
تحلیل تکنیکال

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

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

آموزش

فیچر بازیابی بیت کوین ها یگمشده با فناوری کوانتومی
مقالات عمومی

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

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

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

24 مرداد 1404 - 12:00
84
حمله زنجیره تامین
کریپتو پدیا

حمله زنجیره تامین چیست و چرا حملات Supply Chain در دنیای کریپتو خطرناک هستند؟

23 مرداد 1404 - 22:00
70
فیچر موبایل فیک
مقالات عمومی

موبایل جدید یا تله هکرها؟ راز گوشی‌های فیک و سرقت رمزارزها چیست؟

23 مرداد 1404 - 20:00
151
فیچر محاسبات کوانتومی
مقالات عمومی

پرسش و پاسخ با متخصص محاسبات کوانتومی؛ تهدید کامپیوترهای کوانتومی برای ارزهای دیجیتال واقعیت است یا اغراق؟

23 مرداد 1404 - 16:00
121
فیچر اتریوم و پروپوزال EIP-7782
کریپتو پدیا

پروپوزال EIP-7782 چیست؟ پیشنهادی برای بلاک‌های ۶ ثانیه‌ای اتریوم

23 مرداد 1404 - 12:00
76

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

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

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

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

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

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

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

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

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

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

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

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

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