فورک (fork) چیست ؟ و بررسی انواع آن

0

هر نرم افزار برای رفع مشکلات یا افزایش کارایی به بروزرسانی مداوم نیاز دارد. در دنیای کریپتو، این بروزرسانی ها فورک (انشعاب) نامیده می شوند.

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

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

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

در ادامه به انواع فورک در ارزهای رمزپایه می پردازیم.


شکاف یا تقسیم موقت در اجماع


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


تغییر در قوانین اساسی پروتکل (بروزرسانی)


یک نمونه مهم فورک که دائمی است و در این مقاله قصد داریم به آن بپردازیم، تغییر در قوانین اساسی پروتکل یا همان بروزرسانی شبکه که در ابتدا به آن اشاره کردیم است. این بروزرسانی می تواند به دو دلیل باشد:

  1. افزودن ویژگی های جدید به منظور بهبود قابلیت های شبکه.
  2. تغییر یک قاعده اساسی (مانند افزایش سایز بلاک).

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

در این فورک تغییرات دائمی است و لازم است نودهای شبکه نرم افزارهای خود را بروز کنند تا تغییرات جدید را در نرم افزار فعلی خود ایجاد کنند.

تغییر در قوانین اساسی پروتکل می تواند انواع مختلف داشته باشد. در ادامه قصد داریم انواع این نمونه از فورک را مورد بررسی قرار دهیم.


سافت فورک (Soft Fork)


سافت فورک یک تغییر در پروتکل رمزارز است که با نسخه های قدیمی سازگار است. این به این معنیست که نودهایی که نرم افزار خود را بروز نکردند هنوز قادر به پردازش معاملات و اضافه کردن بلاک به بلاک چین هستند تا زمانی که قوانین جدید پروتکل را نقض نکنند. نکته ای که باید به آن توجه داشته باشید این است که عملکرد یک شرکت کننده (نود) بدون بروزرسانی تحت تأثیر قرار می گیرد. تصور کنید که سافت فورک جدید سایز بلاک را از 3MB به 2MB کاهش دهد. نودهای قدیمی بروز نشده هنوز هم می توانند معاملات را پردازش کرده وبلاک های جدیدی که 2 مگابایت یا کمتر هستند را به بلاک چین اضافه کنند. اما اگر نود قدیمی سعی کند بلاکی بزرگتر از 2 مگابایت را به زنجیره اضافه کند، نودهای جدید و بروز شده این بلاک را رد می کنند زیرا این قوانین جدید را نقض می کند. این موضوع نودهای قدیمی را ترغیب می کند تا خود را به پروتکل جدید بروز کنند، زیرا آن ها به اندازه نسخه های بروزشده کارآمد نیستند.

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


هاردفورک (Hard Fork)


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

در هاردفورک دلیل اجبار در بروزرسانی این است که بعنوان مثال تصور کنید که پروتکل اندازه بلاک را از 2MB به 4MB افزایش دهد. اگر یک عضو بروز شده بخواهد یک بلاک 3 مگابایتی را به بلاک چین اضافه کند، نودهای قدیمی تر که بروز نشده اند این بلاک را معتبر نمی دانند و آن را رد می کنند زیرا در پروتکل آن ها هنوز اندازه ی بلاک 2 مگابایت تعریف شده است و بلاک 3 مگابایتی از نظر آن ها غیرمعتبر است.

در هاردفورک عضوهایی که بروزرسانی را انجام نداده اند نمی توانند معاملات را اعتبار سنجی کنند در نتیجه این نودها از شبکه جدا می شوند. این باعث به وجود آمدن یک انشعاب دائمی در زنجیره می شود، بلاک چین به دو زنجیره تقسیم می شود و عضوهای بروزنشده در زنجیره قدیمی می مانند.

هاردفورک ها می توانند، برنامه ریزی شده (Planned Hard Forks)، بحث برانگیز  (Contentious Hard Forks) و یا حتی بصورت سکه‌های مشتق شده (Spin-off Coins) باشند.

 

هاردفورک برنامه ریزی شده (Planned Hard Forks):

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

نمونه ای از هاردفورک برنامه ریزی شده، هاردفورک Monero در ژانویه سال 2017 است که در آن ویژگی جدید حریم خصوصی با نام حلقه های محرمانه (RingCT) به پروتکل اضافه شد.

هاردفورک بحث برانگیز (Contentious Hard Forks):

گاهی اوقات در هاردفورک بر سر بروزرسانی شبکه اختلاف نظر وجود دارد.

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

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

در ادامه به بررسی دو نمونه از هارد فورک های بحث برانگیز که در شبکه اتریوم و بیت کوین رخ داده است می پردازیم:

 

اتریوم و اتریوم کلاسیک :

سازمان خودگردان غیر متمرکزی معروف به دائو (DAO) در صفحه اصلی اتریوم ساخته شد تا به عنوان یک جذب سرمایه عمل کند و همینطور توسط هیچ کس اداره نشود. قرار بود دائو بر اساس قراردادهای هوشمند اتریوم با استفاده از توکن های DAO اجرا شود و کار کند.

دائو در ماه آوریل سال 2016 با 150 میلیون دلار سرمایه گذاری راه اندازی و اجرا شد و سرانجام در ژوئن 2016 ، به دلیل کد ناقص دائو هک شد و مبلغی به ارزش 60 میلیون دلار توسط هکرها تخلیه شد.

اندکی پس از آن، هارد فورکی  در بلاک 192000 بلاکچین اتریوم برای بازپرداخت ضرر دارندگان توکن DAO پیاده سازی شد. به واسطه این هاردفورک نسخه جدیدی از اتریوم ایجاد شد. گروهی با این هاردفورک مخالف بودند و به همین دلیل در زنجیره قدیمی ماندند و نرم افزار خود را آپدیت نکردند. به این ترتیب بلاک چین اتریوم از بلاک 192000 به دو دسته تقسیم شد. نسخه قدیمی، اتریوم کلاسیک و ارز آن  ETC نام گرفت.

 

بیت کوین و بیت کوین کش :

یکی دیگر از مثال های معروف هاردفورک های بحث برانگیز، سال 2017 در شبکه بیت کوین اتفاق افتاد. این انشعاب پس از اختلاف در مقیاس پذیری شبکه بوجود آمد. برخی معتقد بودند که با افزایش اندازه بلاک از 1MB به 8MB، مشکل مقیاس پذیری قابل حل است. زیرا با اعمال این تغییرات امکان انجام معاملات بیشتر در یک زمان فراهم می شود. اما عده ای دیگر با این موضوع مخالف بودند.

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

 

سکه‌های مشتق شده (Spin-off Coins):

از آنجا که پروتکل بیت کوین منبع باز است، به این معنی که هر کسی می تواند به کد آن دسترسی داشته باشد، spin-off coin به این معنیست که شخصی کد آن را برای پیاده سازی یک نسخه جدید از بلاکچین کپی کرده و تغییراتی در آن اعمال کند. این تغییرات می تواند عوامل مختلفی از جمله عرضه متفاوت، تغییر الگوریتم و موارد دیگر باشد.         

برای مثال: لایت کوین یک فورک از بیت کوین است که با کپی کردن کد بیت کوین و تغییر در آن مانند تغییر الگوریتم هش، تغییر زمان تشکیل بلاک و تغییر عرضه کل کوین ها، ارز خود را به وجود آورد.

امکان نظردهی غیر فعال شده.