در یک شبکه بلاکچین غیرمتمرکز (مانند بیت کوین و اتریوم) مشارکت کنندگان شبکه بایستی در محیط اشتراکی بلاکچین (تراز حسابها، بلاک ها، پروتکل بلاکچین) به یک توافق برسند. اتحاد و اجماع نظر در بین نودهای شبکه منجر به یک بلاکچین واحد شده که شامل داده ها و تراکنش های معتبر است و شبکه ادعای صحت داده های آن را دارد. گر چه بسیاری از اوقات، نودها در شبکه نمی توانند درمورد آینده شبکه بلاکچین به یک نظر واحد برسند. این اتفاق موجب ایجاد حالتی مانند چنگال(فورک) می شود که طی آن زنجیره واحد بلاکها به دو یا چند زنجیره بلاک تقسیم می شود و همگی آن زنجیره ها معتبر هستند.
این اتفاق ممکن است منجر به سه نوع فورک شود که می تواند بر اساس سازگاری با گذشته (backwards-compatibility) پروتکل بلاکچین و در لحظه ای که یک بلاک جدید استخراج می شود اتفاق بیفتد. انواع این سه نوع فورک به شرح زیر می باشد:
1-سافت فورک (Soft Fork): زمانیکه پروتکل بلاکچین بصورت سازگار با گذشته (backwards-compatibility) تغییر می کند.
2-هارد فورک (Hard Fork): زمانیکه پروتکل بلاکچین بصورت ناسازگار با گذشته تغییر می کند.
3-فورک موقت (Temporary Fork): زمانیکه دو ماینر بصورت همزمان یک بلاک جدید را استخراج می کنند.
حال به بررسی هر یک از فورک ها می پردازیم.
سافت فورک
زمانیکه در نرم افزار یک نود کامل، تغییراتی رخ می دهد تا نود بتواند بعنوان یک عضو شبکه فعالیت کند. در این حالت، یک بلاک جدید ایجاد شده که قوانین جدیدی (در پروتکل بلاکچین) بر آن حاکم است. این بلاک جدید در نرم افزار ورژن قدیمی نیز معتبر محسوب می شود. این ویژگی را “سازگار با گذشته” می نامند.
برای مثال آپدیت نرم افزار SegWit در شبکه بیت کوین، کلاس جدیدی از آدرس(Bech32) را به شبکه اضافه کرد. با این حال آدرس های موجود (P2SH) باطل نشدند. یک نود کامل با آدرس نوع P2SH می تواند با نودی که دارای آدرس نوع Bech32 است یک تراکنش معتبر انجام دهد.
هارد فورک
زمانیکه در نرم افزار یک نود کامل، تغییراتی رخ می دهد تا نود بتواند بعنوان یک عضو شبکه فعالیت کند این تغییر مانند بلاک های جدیدی هستند که بر پایه قوانین جدید استخراج شده اند. اما بلاک های جدید در نرم افزار ورژن قدیمی معتبر نیستند. زمانیکه هارد فورک اتفاق می افتد یک ارز جدید متولد می شود در حالیکه ارز اصلی همچنان پا بر جا و معتبر است. از این نمونه می توان به اتریوم بعنوان ارز اصلی و اتریوم کلاسیک بعنوان ارز جدید اشاره کرد. همچنین بیت کوین و بیت کوین کش از این نمونه هستند. در زمانیکه هارد فورک رخ می دهد مقدار برابری از ارز در بین نودهای کاملی که نرم افزارشان را آپدیت می کنند توزیع می شود. معمولا هارد فورک ها موجب ایجاد تضاد در اجتماع شبکه می شوند.
تصمیم نهایی جهت پیوستن به یک زنجیره خاص با نود است. اگر نود تصمیم بگیرد به زنجیره جدید بپیوندد باید نرم افزار خود را ارتقاء دهد تا تراکنش های جدیدتر معتبر محسوب شوند.
برای مثال آپدیت نرم افزار جدید بلاکچین اتریوم موجب می شود پروتکل آن از نوع تاییدیه کار (PoW) به تاییدیه استیک (PoS) تغییر کند. نودهایی که آپدیت جدید را نصب کنند از پروتکل جدید استفاده خواهند کرد. بنابراین نودهایی که تصمیم به ادامه کار با نرم افزار قبلی گرفته اند با نودهایی که آپدیت شده اند ناسازگار خواهند بود.
فورک موقت یا تصادفی
زمانیکه چندین ماینر یک بلاک جدید را در زمان تقریبا یکسانی استخراج می کنند ممکن است کل شبکه در مورد بلاک جدید به توافق نرسند. برخی ها بلاک استخراج شده توسط یک ماینر را می پذیرند که موجب می شود یک زنجیره بلاک متفاوت از قبل ایجاد شود. در حالیکه سایرین بر روی بلاک های دیگر توافق می کنند. علت ایجاد چنین شرایطی، این است که اندکی زمان لازم است تا اطلاعات در کل شبکه بلاکچین منتشر شود و در این مدت زمان کوتاه، بین نودها تضادهایی در مورد ترتیب سلسه وقایع رخ می دهد.
فورک های موقت بصورت اتوماتیک رفع می شوند و در نهایت یکی از زنجیره ها از بین می رود و در اصطلاح اورفان می شود(درباره بلاک اورفان می توانید این مقاله را مطالعه کنید). زیرا اغلب نودهای کامل، زنجیره دیگر را برای اضافه کردن بلاک جدید انتخاب می کنند. فورک های موقت به ندرت اتفاق می افتند و علت آنها استخراج یک بلاک جدید توسط دو یا چند ماینر بصورت همزمان می باشد.
دلایل ایجاد یک فورک در بلاکچین
اضافه شدن یک قابلیت جدید: کد بلاکچین بصورت منظم ارتقاء می یابد. از آنجاکه اغلب بلاکچین های عمومی بصورت سورس باز هستند افراد در نقاط مختلف دنیا آن را توسعه می دهند. با این توسعه ها مشکلات جدیدی ایجاد و حل می شوند. سپس در زمان مناسب ورژن جدید ارائه می شود.
ارتقاء امنیت: بلاکچین و در راس آن ارز دیجیتال در مقایسه با ارز رایج، موضوع نسبتا جدیدی است و هنوز برای درک کامل آن تحقیقات زیادی انجام می شود. بنابراین جهت حل مشکلات امنیتی ورژن ها دایما آپدیت می شوند.
ذخیره تراکنش ها: اگر روزنه ای در شبکه پیدا شود ممکن است برای تمام تراکنش های یک دوره زمانی خاص مشکل ایجاد شود.