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

فورک چیست؟

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

یک بلاکچین از تعدادی بلاک های داده تشکیل شده که به کمک کلیدهای رمزنگاری کاملا ایمن به هم وصل شده اند و یک زنجیره از بلوک ها را تشکیل می دهند. به عبارت دیگر زنجیره بلاکی یک مسیر مستقیم از بلاک های متصل به یکدیگر است. بلوک ها با یک قانون و ساختار مشترک به هم متصل می گردند. لذا روش های به کار برده برای ارتقاء سیستم منجر به تغییر اجماع کل بلوک ها خواهد شد.

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

تفاوت هاردفورک و سافت فورک

بیشتر بخوانید: فورک در بلاکچین چیست و انواع فورک کدام است؟

فورک ها به دو دسته تقسیم می شوند:

  • هارد فورک
  • سافت فورک

هارد فورک چیست؟

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

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

به طور مثال افزایش محدودیت اندازه بلوک از 1 به 4 مگابایت منجر به اجرای یک بلوک 2 مگابایتی توسط نودهای نسخه جدید می شود. اما اجرای آن توسط نودهای اجرا کننده نسخه قدیمی تر رد می شود. در نظر بگیرید بلوک دو مگابایتی به وسیله یک نود به روزرسانی شده تایید و به بلاکچین اضافه می گردد.

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

رشد بلاکچین ها وابسته به تایید بلوک های بعدی توسط نودهاست. بنابراین احتمال رشد دو زنجیره به شکل موازی و نامحدود وجود دارد. در این وضعیت ممکن است یک کاربر یک بیت کوین را در هر دو بلاکچین متفاوت خرج کند که خطای دو بار خرج کردن رخ می دهد.

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

یک نمونه هاردفورک می توان بیت کوین کش را نام برد.

بیشتر بخوانید: فناوری بلاکچین چیست و چه کاربردی دارد؟

سافت فورک چیست؟

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

در بلاکچین بیت کوین ماینرهایی که نسخه قدیمی هستند به دلیل رد شدن بلاک های خود ملزم به ارتقاء می شوند. برای اجرای چنین اصلاحاتی نیاز است اکثر ماینرها ارتقاء پیدا کنند. به روزرسانی پروتکل بیت کوین (SegWit) نمونه ای از یک سافت فورک موفق به شمار می رود.

پیش از اینکه بروزرسانی SegWit اتفاق بیفتد، بیت کوین پروتکلی گران تر بود و دارای هزینه تراکنش معادل 30 دلار بود. بروزرسانی SegWit منجر به افزایش اندازه هر بلوک از 1 به 4 مگابایت شد. هدف اصلی از افزایش این فضا جدا کردن داده های تراکنش در هر بلوک از داده های امضا شده در هر بلاکچین بود. این اتفاق منجر به آزاد سازی فضا برای خروجی تراکنش بیشتر در هر بلوک می شد. در واقع فرآیند سافت فورک منجر به پذیرش بلاک های جدید 4 مگابایتی و بلاک های 1 مگابایتی به صورت همزمان شد.

تفاوت هاردفورک و سافت فورک

اصلی ترین تفاوت سافت فورک و هاردفورک

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

تفاوت هاردفورک و سافت فورک

بیشتر بخوانید: سیستم غیرمتمرکز یا دیفای چیست؟

کدام یک بهتر است هاردفورک یا سافت فورک؟

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

جمع بندی

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