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

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

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

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

وقتی نوبت به روزرسانی برنامه های رایج کامپیوتری می رسد، همه ما با مفهوم سازگاری عقب مانده (یا ناسازگاری) آشنا هستیم. اگر به روزرسانی به گونه ای باشد که بتوان پرونده های ایجاد شده را با نسخه جدید برنامه باز کرد و با استفاده از نسخه قدیمی کار کرد، پس ما یک به روزرسانی سازگار با گذشته (backward compatible) داریم. در غیر این صورت گفته می شود که به روزرسانی با گذشته ناسازگار ( backward incompatible) است. برای پروتکل های اجماع بلاکچین نیز تقریباً به همان روش کار می کند. سافت فورک به روزرسانی پروتکل بلاکچین است که با گذشته سازگار است. به عنوان مثال برخی تغییرات را در کد ایجاد می کند که باعث تداخل در عملکرد نسخه قبلی نمی شود. برعکس، یک هارد فورک شامل تغییر پروتکل بلاکچین به روشی است که با گذشته سازگار نباشد. از این رو عدم استفاده از نسخه قبلی را ایجاد می کند و دیگر نمی توان از نسخه قبلی استفاده کرد.

حال همه اینها در عمل به چه معناست؟ بیایید سعی کنیم از طریق همین مثالها به این سوال پاسخ دهیم.

نمونه ای ازسافت فورک: تصویب SegWit.

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

بیایید یک مثال معروف از یک سافت فورک یعنی تصویب SegWit را در نظر بگیریم. مدتها بود که جامعه بیت کوین در مورد اینکه بهترین راه برای افزایش سرعت معامله با بیت کوین چیست با یکدیگر بحث می کردند. از آنجا که بطور متوسط هر 10 دقیقه یک بلوک جدید استخراج می شود، هدف این بود که تعداد تراکنش هایی که می تواند در هر بلوک باشد را افزایش دهد. برای این کار جامعه راه حلی به نام گواه جداگانه (Segregated Witness به اختصارSegWit) را ارائه داد. ایده اصلی این بود که در هر بلوک فضایی آزاد شده تا تعداد بیشتری از تراکنش را شامل بشود. این امر با حذف کلید عمومی و امضای مربوط به هر معامله و ارسال آنها از طریق یک کانال پیام مختلف،متفاوت بود. از آنجا که کلید عمومی و امضا حدود 60٪ از کل معامله را اشغال می کنند، با ارسال آنها به صورت جداگانه امکان دو برابر شدن تعداد معاملات در هر بلوک وجود دارد. دلیل نامگذاری این رویکرد به عنوان گواه جداگانه این است که "گواه" (نام دیگری برای امضا) معامله از معامله جدا شده است (یعنی به طور جداگانه ارسال شده است).

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

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

تقسیم بین بیت کوین (BTC) و بیت کوین کش (BCH) که در اول آگوست 2017 اتفاق افتاد، نمونه قابل توجهی از هارد فورک است. این تقسیم بندی به دلیل اختلاف اساسی در مورد اینکه آیا SegWit بهترین روش برای افزایش تعداد معاملات پردازش شده در هر بلوک بود، وجود داشت. کسانی که از SegWit ناراضی بودند تصمیم گرفتند راه حل متفاوتی را متشکل از افزایش حداکثر اندازه بلوک از 1 به 8 مگابایت اجرا کنند. این راه حل همانطور که به زودی خواهیم دید سازگار با گذشته نبود و از آنجا که در مورد تصویب آن اتفاق نظر وجود نداشت، منجر به تقسیم بلاکچین به دو شاخه شد. شعبه ای که این شانس را اجرا کرد بلاکچین خود را با نام بیت کوین کش (Bitcoin Cash) نامگذاری کرد. در حالی که شعبه ای که این تغییر را اجرا نکرد، نام اصلی بیت کوین را حفظ کرد.

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

بیت کوینبیت کوین
بیت کوین$۲۶,۰۸۱۱,۳۰۰,۴۷۳,۶۹۷ تومان
بیت کوین کشبیت کوین کش
بیت کوین کش$۲۰۷.۰۹۱۰,۳۲۶,۱۰۳ تومان
:medium.com