شبکههای بلاکچینی همانند یک موجود زنده، دائما در حال تغییر و بهتر شدن و تکامل پیدا کردن هستند. این شبکهها با اینکه متمرکز نبوده و قدرتی مرکزی آنها را مدیریت نمیکنند، برای مشکلاتی که با آن روبرو میشوند، طی یک فرایند غیرمتمرکز و عموما دموکراتیک، به روزرسانیها میشوند.
در این مقاله برآنیم تا با شیوه ایجاد یک به روزرسانی در شبکههای بلاکچینی همانند اتریوم بیشتر آشنا شویم.
پیشنهاد ایجاد بهبود در شبکه اتریوم
پیشنهاد ایجاد بهبود در شبکه اتریوم یا همان EIP[1]، یک قالب استاندارد برای ارائه اطلاعات به جامعه اتریوم یا تشریح یک امکان جدید یا به روزرسانی در شبکه اتریوم است. ایده ایجاد پروپوزال بهبود اتریوم از تجربیات مربوط به بیت کوین نشات میگیرد. به یاد داشته باشید که در بیتکوین هم پروپوزال بهبود بیت کوین (BIP) ایجاد شد تا جامعه بیت کوین بتواند تغییراتی که برای پیشرفت پروتکل لازم است اعمال کنند و این تغییرات را به دیگران نشان دهند.
EIP بایستی مشخصههای فنی مختصری از ویژگیهای پیشنهادی و منطقی بنیادین برای هر ویژگی را تشریح کند. پیشنهاددهنده هر EIP مسئولیت ایجاد اجماع در کامیونیتی و تهیه مستندات لازم برای بررسی آن EIP را برعهده دارد.
در واقع هر EIP باید شامل یک دلیل برای ارائه آن و مشخصات فنی به صورت مختصر باشد. نویسنده این پروپوزال بایستی نظر جامعه اتریوم را برای اجرای آن جلب کند، همچنین باید نظرات مخالف با طرح پیشنهادی خود را مستندسازی کند. اتریوم بستر بسیار مناسبی برای برنامه نویسان ایجاد کرده است که از طریق EIP پیشنهادهای خود را مطرح کنند. این پیشنهادها در گیتهاب (Github) ثبت میشود و تاریخچه تغییرات آنها نیز در همین سایت در دسترس همه برنامهنویسان قرار دارد. به همین جهت برنامهنویسان به راحتی میتوانند فرآیندهای اجرایی پروپوزالها را دنبال کنند و مهمتر از همه اینکه میتوانند در اجرای آن مشارکت داشته و نظرات خود را اعلام کنند.
تقریبا یک سال پیش بود که مشکلاتی برای کیف پول Parity به وجود آمد و تقریبا 150 میلیون دلار به حالت فریز درآمد و سر و صدای زیادی به پا کرد. بستری که EIP فراهم کرده باعث شد که برای حل شدن این مشکل هر برنامه نویسی بتواند راهکار خود را اعلام کند. ارائه شدن بهینه ترین راه حل از این طریق بسیار دست یافتنی تر از حالتی است که یک شخص یا یک تیم بخواهد به تنهایی به دنبال آن راه حل باشد. این ویژگی باعث شده است که اتریوم نسبت به بقیه شبکه ها متمایز شود.
EIP یک بستر است که به برنامه نویسان و توسعهدهندگان شبکه فرصت میدهد تا در جهت رفع مشکلات شبکه اتریوم و بهبود این شبکه مشارکت داشته باشند و بتوانند نظرات خود را در این زمینه اعلام کنند. البته این ساختار غیرمتمرکز برای ایجاد بهبود در شبکه اتریوم، میتواند دردسرساز باشد، چراکه نظرهای زیاد و دست داشتن عده زیاد در تصمیمگیری رسیدن به توافق را دچار مشکل میکند.
انواع EIPها
EIP انواع مختلفی دارد که در زیر توضیح مختصری در مورد آن ها میدهیم.
- نوع اول: مسیر استاندارد یا Standard Track
این پروپوزالها مرتبط با هسته اصلی شبکه اتریوم، پروتکلها، رابطهای برنامهنویسی و استانداردهای ERC است. این پروپوزال بر توصیف و شرح تغییراتی متمرکز است که بر شاخصهای اصلی و عملکردی اتریوم تأثیر میگذارد، مانند تغییر در پروتکل شبکه، تغییر در قوانین اعتبار بلوک یا تراکنش، استانداردهای برنامه پیشنهادی، یا هر تغییر اضافهای که بر قابلیت همکاری تأثیر میگذارد. پروپوزال پیگیری استاندارد از سه بخش تشکیل شده است:
- سند طراحی
- پیادهسازی
- به روزرسانی مشخصات رسمی
بنابر آنچه گفته شد، Standard Track EIPها به دستههای زیر تقسیم میشود:
- هسته: بهبودهایی که نیاز به یک اجماع بنیادین برای فورک زدن دارند (به عنوان مثال EIP-5، EIP-101)، و همچنین تغییراتی که لزوماً منجر به فورک نمیشوند؛ اما ممکن است مربوط به بحثهای “core dev” باشند (به عنوان مثال، [EIP-90]، و تغییرات 2، 3 و 4 استراتژی ماینر/گره EIP-86).
- شبکه: شامل بهبودهایی در ارتباط با devp2p (EIP-8) و Light Ethereum Subprotocol و همچنین بهبودهای پیشنهادی برای مشخصههای پروتکل شبکه whisper و swarm است.
- واسط کاربری: شامل بهبودهایی در زمینه استانداردها و مشخصههای API/RPC کاربران و همچنین استانداردهای سطح زبانی خاص همانند نامگذاری متدها (EIP -6) و ABIهای قراردادی است.
- ERC: استانداردهای سطح برنامه کاربردی، شامل استانداردهای قراردادها همانند استانداردهای توکن (EIP-20) و ثبت نام (EIP-137) نظام URIها و فرمتهای والت است.
- نوع دوم: پروپوزال متا (Meta EIP)
این پروپوزال در راستای تغییر در فرایندهای شبکه اتریوم ارائه می شود، این نوع از پروپوزال شبیه Standard Track است.
پروپوزال متا تغییرات و رویدادهایی که میتوان در یک فرآیند ایجاد شود را مطرح میکند. این نوع پروپوزال بهبود اتریوم به طور کلی تغییراتی را در یک پیادهسازی پیشنهاد میکنند، اما نه در کد پایه اتریوم. برخلاف پروپوزال اطلاعاتی، کاربران نمیتوانند آن را نادیده بگیرند. نمونه بارز این نوع EIP را میتوان در تغییر رویهها و دستورالعملها در فرآیند تصمیمگیری و تغییرات در ابزارها یا محیط مورد استفاده در توسعه اتریوم مشاهده کرد.
- نوع سوم: پروپوزال اطلاعاتی (Informational EIP)
این نوع از پروپوزال ها نشان دهنده مشکلات طراحی شبکه اتریوم است و حاوی یک دستورالعمل یا اطلاعاتی برای اصلاح آن است.
پروپوزال اطلاعاتی در اسناد خود مشکلات طراحی اتریوم را بیان میکند یا دستورالعملها و اطلاعات کلی را در اختیار کاربران قرار میدهد، اما ویژگی جدید معرفی نمیکند. از آنجایی که پروپوزالهای اطلاعاتی توصیه خاصی ارائه نمیکنند، افراد در مطالعه یا نادیده گرفتن آن آزاد هستند.
اجرای EIPها
برای تایید پروپوزالها، نویسنده، چند ویرایشگر و برنامهنویسان هسته اصلی اتریوم تاثیر گذار هستند. فرآیندی که هر پروپوزال در صورت رد نشدن طی میکند شامل وضعیتهایی مثل فعال (Active)، در دست اقدام (Work in Progress)، پیشنویس (Draft)، بازبینی (Last Call)، تایید شده (Accepted)، نهایی (Final) است.
در تصویر زیر میتوانید یک نمونه از EIP هایی که توسط ویتالیک بوترین ثبت شده است را مشاهده کنید.
سخن پایانی
EIP در واقع بستری فراهم کرده است که تمام برنامه نویسان بتوانند در زمینه ارتقای شبکه و حل کردن مشکلات آن مشارکت داشته باشند و نظرات خود را بیان کنند. این بستر که تحقق آن به کمک گیتهاب صورت گرفته است، باعث شده است که اتریوم از قابلیت های برنامهنویسهای بیشتری بتواند بهره ببرد. البته باید در نظر داشته باشیم که ساختار غیر متمرکز همیشه هم خوب نیست و ممکن است هیچ وقت توافقی حاصل نشود! به همین جهت بسیاری ویتالیک را رهبر برنامه نویسان اتریوم می دانند چرا که وی تاثیر به سزایی در پیاده سازی ایدهها و بهبود شبکه اتریوم داشته است.
در مقاله بعدی در زمینه قالب استاندارد EIPها و روال عملیاتی پذیرش و یا رد یک EIP توضیح داده خواهد شد.
[1] Ethereum Improvement Proposal