هاردفورک (Hard Forks) و سافت فورک (Soft Forks) در دنیای رمز پول ها – به زبان ساده
در زمینه توسعه نرمافزار منظور از فورک (Fork) ایجاد انشعاب یا تقسیم کردن کد به دو پروژه جداگانه است. فورک رمزپول در هر زمانی رخ میدهد و جای هیچ نگرانی در مورد آن وجود ندارد.
از آنجا که همه پروژههای بلاک چین نوعی از نرمافزار هستند، بنابراین در مورد آنها نیز فورک رخ میدهد. با فورک کردن یک پروژه در واقع یک کپی از آن در لحظه معینی از زمان ایجاد میشود و سپس بر مبنای آن یک پروژه جداگانه ساخته میشود.
بیتکوین کش
نمونهای از فورک، بیتکوین (Bitcoin) و بیتکوینکش (Bitcoin Cash) هستند. بیتکوینکش از کد پایه بیتکوین کار خود را آغاز کرد؛ اما خود به یک پروژه مستقل تبدیل شد. هر تغییری که در بیتکوین ایجاد شود به بیتکوین انتقال نمییابد و هر یک از آنها توکنهای جداگانهای دارند.
فورک کردن هرگز چیز بدی محسوب نمیشود. بسیاری از شرکتها نرمافزار خودشان را فورک میکنند. برای مثال، این کار ممکن است جهت ایجاد پشتیبانی از دو سیستم عامل مختلف یا برای نگهداری یک نسخه قدیمی یا منسوخ به همراه نسخه بهروزتر صورت بگیرد.
فورکهای رمزپولها نیز هیچ تفاوتی با فورک در مفهوم نرمافزاریاش ندارد. برای نمونه توسعهدهنده الف بر این باور است که یک پروژه بلاک چین باید کار X را انجام دهد؛ اما توسعهدهنده ب بر این باور آیت که پروژه باید کار Y را انجام دهد. اگر X و Y فاصله زیادی داشته باشند که پیادهسازی هر دو در یک نرمافزار منطقی نباشد، در این صورت ممکن است توسعهدهنده الف یا ب تصمیم بگیرد که پروژه را فورک کند. بدین ترتیب هر یک از این توسعهدهندهها میتوانند ویژگیهای مورد نیاز خود را بدون ایجاد تداخل در کار یکدیگر توسعه دهند.
فورک ممکن است در مورد ویژگیهای پر ریسک یا آزمایشی صورت بگیرد.
اگر توسعهدهندگان با همدیگر یکسو باشند یا یک توافق یا مخاطره رخ بدهد در این صورت نسخه فورک شده میتواند مجدداً در ادامه در کد اصلی ادغام شود یا کار توسعه کد اصلی ممکن است به نفع کد فورک شده جدید رها شود.
همه این موارد خوب هستند؛ اما چه ربطی به رمزپولها دارند؟
از آنجا که پروژههای رمزپولها متن-باز هستند، فورکها میتوانند هر زمان رخ دهند و در برخی موارد دلایل عقلایی مانند بهبود سرعت یا امنیت نیز برای آن وجود دارد. برخی اوقات این دلایل خودخواهانه هستند، مثلاً برای این که استخراج آسانتر شود یا روی سختافزار خاصی صورت بگیرد.
هاردفورک یا سافتفورک در رمزپول
اکنون سوالی که پیش میآید، این است که هاردفورک چه فرقی با سافتفورک دارد؟
سافتفورک
منظور از سافتفورک یا «انشعاب نرم» ایجاد تغییرات اندک در کد است. این تغییرات میتوانند در سطح اصطلاحات مورد استفاده باشند و یا مواردی باشند که در طرز کار بلاک چین تغییرات عمدهای ایجاد نمیکنند. سافتفورکها معمولاً تهاجمی نیستند و به موازات نسخه فورک نشده عمل میکنند.
در مورد سافتفورک، استخراجکنندهها میتوانند از کد جدید استفاده کنند و از آنجا که تغییر عمدهای وجود ندارد، هر گرهی که نرمافزارهای قدیمیتر را اجرا میکند باید همچنان بتواند بلوکهای تولید شده از سوی گرههای جدید را بپذیرد؛ با این حال گرههای جدید بلوکهای تولید شده از سوی گرههای قدیمیتر را رد میکنند. اگر استخراجکنندههای کافی به نسخه فورک شده سوئیچ کنند، گرههای کافی وجود نخواهد داشت که کد قدیم را اجرا کنند و تراکنشها را پردازش کنند. گرههای جدید، بلوکهای ایجاد شده از سوی گرههای قدیمی را رد میکنند و از این رو آنها را مجبور به پذیرش فورک میکنند.
این همان نقطهای که است مشکل بروز مییابد: اگر سافتفورک پر ریسک یا نامحبوب باشد، در این صورت استخراجکنندهها ممکن است به آن سوئیچ نکنند. اگر تنها اقلیتی از گرهها کد جدید را اجرا کنند، فورک ممکن است منسوخ شود و با کد قدیمی جایگزین شود.
هاردفورک
هاردفورک غالباً دردسرهای بیشتری دارد. هاردفورکها معمولاً الزام میکنند که کل شبکه به کد جدید سوئیچ کند. اگر برخی گرهها بخواهند کد فورک نشده را اجرا کنند، گرهها ممکن است دادهها را به روش متفاوتی تولید کنند و از این رو از همگامسازی باز میمانند. با این که امکان اجرای گرههای هاردفورک شده و فورک نشده بر روی یک بلاک چین به موازات هم وجود دارد؛ اما این اتفاق به ندرت رخ میدهد. هر مجموعه گرهها همدیگر را رد میکنند و به این صورت با کوهی از مشکلات مواجه میشوید.
در واقع دردسر واقعی زمانی است که توسعهدهندگان بلاک چین اصرار داشته باشند، همه گرهها به فورک جدید ارتقا یابند. این مورد معمولاً در زمانی در آینده پس از استخراج یک بلوک معین صورت میگیرد. بدین ترتیب هر گره زمان کافی برای ارتقا را دارد.
اگر یک هاردفورک در کد رخ دهد؛ اما برخی توسعهدهندگان با این تغییر مخالف باشند، ممکن است کارها به هم گره بخورد. استخراجکنندهها نیز ممکن است خود را در میانه یک جنگ ببینند و مجبور شوند یک طرف را بگیرند. اگر اوضاع از این هم بدتر شود ممکن است یک پروژه کاملاً تازه بر مبنای کد اصلی و ایجاد تغییراتی از طریق هاردفورک از راه برسد. در این حالت کد فورک نشده همانطور که قبلاً بود به کار خود ادامه میدهد و کد هاردفورک نیز از صفر شروع به کار میکند.
تقسیم زنجیره
این حالت تقسیم زنجیره (افراز زنجیره) نامیده میشود و یک چنین جدایی در اغلب موارد، یک خبر بد محسوب میشود. پروژه اصلی ممکن است حامیان، گرهها یا تأمینکنندگان مالیاش را از دست بدهد و آنها به پروژههای هاردفورک شده روی بیاورند؛ اما پروژه جدید نیز ممکن است به منبع درآمد یا مجموعهای از گرهها برای اجرای شبکه نیاز داشته باشد. این نبرد تلخ به ندرت نتیجه مناسبی برای هر دو طرف خواهد داشت.
وقتی یک تقسیم رخ میدهد، توسعهدهندگان ممکن است بخواهند یک کپی از رکوردها را به موازات کد جدید حفظ کنند، یعنی هر کسی که در شبکه اصلی توکن داشت در شبکه جدید نیز صاحب همان توکنها خواهد بود.
همان طور که میبینید رمزپول آزاد میتواند جالب به نظر برسد؛ اما برخی مخاطرات بالقوه وجود دارد که میتواند تأثیر منفی شدیدی روی پروژه داشته باشد. در صورتی که مدیریت صحیحی وجود نداشته باشد، کاربران شبکه ممکن است قادر باشند پولی را دو بار خرج کنند. اگر تراکنشی پیش از فورک رخ دهد؛ اما تا پس از فورک ثبت نشود، ممکن است توکنهایی در شبکه جدید پدید آینده که در شبکه قبلی وجود نداشتند. به همین دلیل اغلب کیفهای پول آنلاین (hot wallet)، مبادلهگران و گرهها، تراکنشها را در طی محدوده زمانی مشخصی پیش و پس از زمان تعیین شده برای فورک متوقف میکنند.
اگر شما از کیف رمزپول امن خاص خود استفاده میکنید، ممکن است لازم باشد سکههای خود را بسته به نوع فورک منتقل کنید.
جمعبندی فورکهای رمزپول
یکی از ارزشهای اصلی که در مورد پروژههای رمزپول عمومی و متن-باز وجود دارد، امنیت است. فورک کردن غالباً موجب افزایش امنیت میشود؛ اما هاردفورکها میتواند دردسرساز باشند.
اگر یک کاربر رمزپول باشید، غالباً مسئلهای وجود ندارد که در مورد آن نگران باشید. اگر یک استخراجکننده باشید که گرههای خود را اجرا میکنید، در این صورت باید وضعیتهای توسعه پروژه و اجماع کنونی جامعه را پیگیر باشید.
شما از فورک کردن چه انتظاراتی دارید؟ شاید هنگامی که فورک رخ میدهد، مشغول اجرا کردن یک گره باشید یا شاید شخصی باشید که مشغول کار در یک تیم توسعه برای ایجاد فورک باشید. در هر صورت خوشحال میشویم نظرتان را در مورد فورک رمزپولها در بخش نظرات با ما و دیگر خوانندگان فرادرس در میان بگذارید.
اگر این نوشته مورد توجهتان قرار گرفته است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- تعریف بیتکوین — به زبان ساده
- مجموعه آموزشهای شبکه های کامپیوتری
- اتریوم چیست ؟ | ساختار، قیمت، استخراج و خرید و فروش
- اتریوم یا بیت کوین — کدام ارزش سرمایه گذاری دارد و چرا؟
- بیتکوین چیست و چگونه عمل میکند؟
- تفاوت میان بیتکوین، بیتکوین کش، بیتکوین گلد و رمزپولهای دیگر چیست؟
- آلتکوین (Altcoin) چیست و چرا به وجود آمده است؟
==
ممنون از توضیحات ولی مثالی درباره هاردفورک و سافت فورک ارائه نشد. لطفا مثالی بزنید تا مطلب بهتر روشن شود و بیت کوین کش آیا هارد فورک است یا سافت فورک مربوط به بیت کوین میباشد