فصل ۲، درس ۴: سافت فورک و هارد فورک
در درس چهارم، به معرفی و توضیح دو مفهوم سافت فورک و هارد فورک میپردازیم.

در دنیای کریپتوکارنسی، فورکها یکی از مفاهیم کلیدی هستند که نقش مهمی در توسعه و تکامل شبکههای بلاکچین ایفا میکنند. فورکها به دو نوع اصلی تقسیم میشوند: سافت فورک (Soft Fork) و هاردفورک (Hard Fork). در این درسنامه، به بررسی تفاوتها و ویژگیهای هر یک از این فورکها میپردازیم و مثالهایی کاربردی برای درک بهتر آنها ارائه میدهیم. قبل از درک مفاهیم سافت فورک و هارد فورک، در ابتدا بهتر است بدانیم که؛
فورک چیست؟
فورک در معنای لغوی به معنای چنگال است اما فورک (Fork) در دنیای رمزارزها یکی از راههای بهروزرسانی و ایجاد تغییرات در پروتکل بلاکچین یا ارتقای آن است. در واقع فورک نوعی انشعاب است که برنامهنویسان از بلاکچین اصلی میگیرند و با ایجاد تغییراتی در کد منبع یک پروژه، بلاکچین جدیدی را پدید میآورند یا آن را آپدیت میکنند. فورک به دلایل مختلفی مانند افزودن قابلیتهای جدید، حل مشکلات امنیتی یا وجود اختلاف نظر بین اعضای یک جامعه بر سر سیاستهای کلی، میتواند اتفاق بیفتد.
رمزارزها بر اساس یک دسته از کدهای نرمافزاری به بازارها عرضه شدهاند. این کدها متن باز یا open source هستند؛ به این دلیل که توسعهدهندگان بتوانند به کدها دسترسی داشته باشند تا همواره نسخههای بهتری را به بازار ارائه دهند. مشابه هر نرمافزار دیگری، رمزارزها نیز نیاز به بهروزرسانی و بهبود روند پیشین خود دارند. تغییراتی که در کدهای منبع جهت بهبود و بهروزرسانی این رمزارزها صورت میگیرد، منجر به ایجاد انشعاب در شبکه میشود. بهروزرسانی یا ایجاد بلاکچین جدید، فورک (Fork) یا انشعاب نام دارد.
هارد فورک (Hard Fork)
هاردفورک زمانی اتفاق میفتد که نودها جدیدترین نسخه بلاکچین را پذیرفته و دیگر نسخههای قدیمی بلاکچین را نمیپذیرند. این موضوع، باعث شکلگیری یک واگرایی دائمی با نسخه قبلی بلاکچین میشود. درواقع، ایجاد تغییر در بلاکچین، یک فورک ایجاد میکند؛ به این صورت که یکی از انشعابات از بلاکچین جدید و ارتقاءیافته پیروی میکند و انشعاب دیگر، در امتداد مسیر قدیمی ادامه مییابد. به طور کلی، پس از مدت کوتاهی، افرادی که در زنجیره قدیمی هستند، متوجه میشوند که نسخه قدیمی بلاکچین نامناسب است و به سرعت به آخرین نسخه ارتقا مییابند.

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

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