پیش از پرداختن به مسئله اینکه هارد فورک چیست و چه ماهیتی دارد، مثالی را برای درک بهتر آن ارائه میدهیم. وقتی اعلانی روی تلفن همراهتان ظاهر میشود و از شما میخواهد که اپلیکیشن بانکی خودتان را بهروزرسانی کنید، احتمالاً بیدرنگ این کار را انجام میدهید. شاید هم گوشی شما بهدلیل فعال بودن قابلیت روزآمدی خودکار، حتی بدون اطلاع قبلی، به آخرین نسخه، بهروزرسانی شود. به هر حال چه با اطلاع قبلی شما چه بهطور خودکار، بهروزرسانی اپلیکیشن بانکی و نصب آخرین نسخه از آن، ضرورتی انکارناپذیر است؛ زیرا ممکن است در صورت عدم بهروزرسانی، یک اشکال یا باگ نرمافزاری بتواند برایتان دردسرساز شود.
برای رمزارزهای متنباز اما همه چیز متفاوت است. در این نرمافزارها هیچ خبری از نهادهای متمرکز و سلسله مراتب مدیریتی نیست و کسی هم به شما پیام نمیدهد که باید برنامه خود را بهروزرسانی یا تغییر خاصی را در آن اعمال کنید. نتیجه میگیریم که پیادهسازی قابلیتهای جدید در شبکههای بلاک چینی و رمزارزهای متنباز، میتواند یک چالش بزرگ باشد.
در این مقاله از آکادمی مزدکس به شما خواهیم گفت فورک چیست و چه تفاوتی بین هارد فورک و سافت فورک وجود دارد؟
مسئولیت تصمیمگیری در شبکههای بلاکچینی با کیست؟
پیش از آنکه سراغ واکاوی مفهوم «انشعاب» (Fork) برویم، بهتر است بدانیم چه کسانی در فرایند تصمیمگیری یا حکمرانی یک شبکه رمزارزی مشارکت دارند.
در شبکه بیت کوین که عنوان نخستین رمزارز جهان را یدک میکشد، میتوان مشارکتکنندگان و تصمیمگیرندگان شبکه را به گروه عمده تقسیم کرد: ۱- توسعهدهندگان ۲- ماینرها ۳- کاربران فول نود (Full Node)
این سه گروه، زمام تصمیمگیری در شبکه بیت کوین را در اختیار دارند. گفتنی است که لایت نودها (Light Nodes) یا گرههای سبک همان کاربران عادی بیت کوین هستند و عمدتاً نقشی در تصمیمسازیهای شبکه ندارند.
توسعهدهندگان
توسعهدهندگان مسئولیت تولید و بهروزرسانی کدها را بر عهده دارند. در یک شبکه رمزارزی مفروض، همه میتوانند در این فرایند مشارکت کنند. کدها نیز بهطور عمومی در دسترس همگان قرار دارند؛ بنابراین هر توسعهدهنده میتواند کد خود را برای بازبینی در اختیار دیگر همتایان خود قرار دهد.
ماینرها یا استخراجگران
ماینرها کسانی هستند که بار تأمین امنیت شبکه را به دوش میکشند. آنها کد پروتکل یک رمزارز را اجرا میکنند و منابع رایانشی خود را برای پردازش و اعتبارسنجی تراکنشها در اختیار شبکه رمزارز قرار میدهند. برای مثال، در شبکه بیت کوین، ماینرها این کار را از طریق اجرای الگوریتم اثبات کار انجام میدهند. هر ماینر، متناسب با توان رایانشی که در اختیار شبکه میگذارد، پاداش استخراج دریافت میکند تا از انگیزه لازم برای ادامه کار برخوردار باشد.
کاربران فول نود
فول نودها را میتوان ستوان فقرات شبکههای رمزارز قلمداد کرد. آنها بلاکها و تراکنشها را صحتسنجی، ارسال و دریافت و رونوشت کاملی از بلاک چین رمزارز را نزد خود نگهداری میکنند.
توجه داشته باشید که این دسته ممکن است دارای همپوشانی باشند. برای مثال، یک کاربر هم میتواند توسعهدهنده باشد، هم ماینر و هم یک فول نود. با این حال، بسیاری از کاربرانی که در شبکههای رمزارزی، دست به ارسال یا دریافت تراکنش میزنند و اقدام به نصب کیفپول کردهاند، در هیچ یک از این دسته قرار نمیگیرند. آنها در واقع در گروه لایت نودها یا گرههای سبک، دستهبندی میشوند.
پس تا اینجا دریافتیم که توسعهدهندگان و ماینرها از قدرت بالایی برای تصمیمگیری در یک شبکه رمزارزی برخوردارند. توسعهدهندگان، کدها را ایجاد میکنند و بدون آنها شما هیچ نرمافزاری برای نصب و اجرا ندارید و باگها و اشکالها نیز هیچگاه رفع نخواهد شد. ماینرها هم بار تأمین امنیت شبکه را بر عهده دارند و اگر فعالیت خود را متوقف کنند، شبکه رمزارزی رفتهرفته نابود میشود.
تصمیمگیری نودها
با این حال، اگر توسعهدهندگان و ماینرها با هم متحد شوند تا زمام هدایت شبکه را در اختیار بگیرند و باقی کاربران را خلع ید کنند، به سدی مستحکم برخورد خواهند کرد؛ زیرا فول نودها جلوی آنها میایستند. عدهای حتی بر این باورند که قدرت واقعی در یک شبکه رمزارزی در دستان فول نودها قرار دارد. دلیل این امر هم ساده است؛ هر قدر هم که توسعهدهندگان و ماینرها قدرتمند باشند، باز هم این کاربران هستند که انتخاب میکنند چه نرمافزاری را برای اجرای پروتکل شبکه اجرا کنند.
برای مثال، توسعهدهندگان هیچگاه نمیتوانند اسلحه خود را روی شقیقه شما بگذارند و مجبورتان کنند که نسخه دلخواه آنها از نرمافزار «بیت کوین کر» (Bitcoin Core) را نصب و اجرا کنید. ماینرها هم هیچوقت نمیتوانند قواعد دلخواه خود را به دیگر کاربران تحمیل کنند.
بنابراین توسعهدهندگان و ماینرها اربابان شبکههای رمزارزی نیستند و تنها کارگزاران و خدماترسانان آنها به حساب میآیند؛ زیرا کافی است که کاربران تصمیم به عدم استفاده از شبکه بگیرند، آنگاه کوین آن شبکه، ارزش خود را از دست میدهد. از دست دادن ارزش کوین هم منجر به زیان هنگفت ماینرها میشود. بنابراین، کاربران، حرف اول و آخر را در یک شبکه رمزارزی میزنند؛ نه ماینرها یا توسعهدهندگان.
فورک چیست و چرا اتفاق میافتد؟
«فورک» (Fork) یا انشعاب در یک نرمافزار، زمانی رخ میدهد که رونوشتی تازه از آن ایجاد و اصلاح میشود. با وقوع فورک، پروژه اصلی به حیات خود ادامه میدهد؛ اما نسخه منشعبشده از آن مسیری جداگانه را در پیش میگیرد. برای مثال، فرض کنید که تیم نویسندگان و گردانندگان وبلاگ ارز دیجیتال دچار اختلاف شوند. در این میان، یکی از آنها ممکن است محتوای وبلاگ را روی دامنه دیگری کپی کند و وبلاگ تازهای راه بیندازد. این وبلاگ جدید اگرچه در لحظه پیدایش، هیچ تفاوت محتوایی با وبلاگ اصلی ندارد؛ اما در ادامه کار احتمالاً پذیرای تغییرات و مقالات متفاوتی خواهد بود.
پروژههای نرمافزاری بر پایه یک بستر و پیشینه مشترک ایجاد میشوند؛ درست همانند یک جاده. اما بعدها ممکن است به دلایل مختلف، این جاده به دو قسمت تقسیم شود و هر یک مسافر را به هدف و مقصد متفاوتی رهنمون کند.
بنابراین ایجاد فورک یا انشعاب در پروژههای نرمافزاری آن هم پروژههای متنباز، امری متداول است که پیشینه آن به قبل از پیدایش بیت کوین و اتریوم باز میگردد. در ادامه، این رخداد را بیشتر زیر ذرهبین میبریم و زوایای پیدا و پنهان آن را واکاوی میکنیم.
هارد فورک چیست؟
«هارد فورک» (Hard Fork) یا انشعاب سخت را میتوان یک بهروزرسانی پسناسازگار دانست. به این معنا که پس از وقوع هارد فورک، نسخه جدید دیگر با نسخ پیشین، سازگار نخواهد بود. هارد فورک، معمولاً زمانی رخ میدهد که نودها قوانین جدیدی را مغایر با قوانین پیشین، تصویب و اعمال میکنند. پس از وقوع هارد فورک، نودهای جدید، میتوانند تنها با نودهایی ارتباط برقرار کنند که مجری نسخه جدید هستند. در اثر وقوع هارد فورک، بلاک چین به دو شبکه مجزا تقسیم میشود: یکی با قوانین قدیمی و دیگری با قواعد جدید.
پس از انشعاب بلاک چین، دو شبکه بهطور موازی به حیات خود ادامه میدهند. هر دو به کار پردازش و انتشار تراکنشها و بلاکها مشغول میشوند، اما نه روی یک بلاک چین یکسان. پیش از وقوع هارد فورک، همه نودها رونوشتی همسان از بلاک چین را در اختیار دارند؛ اما پس از وقوع آن، نودهای هر نسخه، بلاکها و تراکنشهای متفاوتی خواهد داشت.
نکته جالب در این میان، آن است که نسخههای ایجاد شده پس از فورک، دارای تاریخچه مشترکی (درست پیش از لحظه وقوع انشعاب) هستند. بنابراین اگر در یک شبکه تعدادی کوین داشته باشید، پس از وقوع هارد فورک، در دو نسخه ایجاد شده هم کوینهای شما قابل دسترس است. برای مثال، فرض کنید در بلاک شماره ۶۰۰ هزارم بیت کوین، هارد فورکی رخ داده و شما از قبل دارای ۵ واحد بیت کوین بودهاید.
پس از وقوع هارد فورک، شما همچنان ۵ بیت کوین در بلاک شماره ۶۰۰ هزار و یک زنجیره اصلی دارید و ۵ بیت کوین دیگر در بلاکی با همین شماره در زنجیره جدید. با فرض اینکه الگوریتم رمزنگاری دو زنجیره، ثابت و بدون تغییر باقی مانده باشد، آنگاه با همان کلیدهای خصوصی اولیه خود میتوانید به ۵ بیت کوین زنجیره تازه، دسترسی داشته باشید.
نمونهای از یک هارد فورک مهم
یکی از شاخصترین هاردفورکهای زیستبوم رمزارزها در سال ۲۰۱۷ رخ داد و طی آن بلاک چین بیت کوین به دو زنجیره مجزا تقسیم شد: ۱- بیت کوین اصلی با نماد اختصاری BTC و ۲- بیت کوین کش با نماد اختصاری BCH. این هارد فورک پس از مدتها بحث و جدل بر سر بهترین روش برای بهبود مقیاسپذیری بیت کوین اتفاق افتاد. در این میان، طرفداران بیت کوین کش، خواهان افزایش اندازه بلاک بیت کوین بودند؛ در حالی که دیگر کاربران، سرسختانه با این خواسته مخالفت میکردند.
افزایش اندازه بلاک، مستلزم تغییر قوانین شبکه بود. بنابراین پس از کش و قوسهای فراوان، در نهایت، هارد فورک بزرگی رخ داد و زنجیره بیت کوین به دو زنجیره منشعب شد.
سافت فورک چیست؟
«سافت فورک» (Soft Fork) یا انشعاب نرم، یک بهروزرسانی پسسازگار است؛ یعنی نودهای بهروزرسانیشده همچنان میتوانند با نودهای قدیمی، ارتباط برقرار کنند. آنچه در سافت فورک اتفاق میافتد، افزوده شدن یک قاعده جدید است که در تضاد با قوانین قبلی نیست.
برای مثال، کاهش اندازه بلاک را میتوان با اجرای سافت فورک، پیادهسازی کرد. دوباره به مثال بیت کوین برمیگردیم. مطابق با قوانین حاکم بر پروتکل بیت کوین، اندازه یک بلاک نباید از آستانه خاصی بیشتر باشد؛ اما محدودیتی برای میزان کوچکی آن وجود ندارد. بنابراین اگر شما بهعنوان یک نود شبکه بیت کوین میخواهید تنها بلاکهایی با اندازه خاصی را بپذیرید، کافی است بلاکهای بزرگتر را رد کنید.
انجام این کار منجر به قطع ارتباط شما با دیگر نودهای شبکه نمیشود و شما همچنان میتوانید با آنها مراوده و تبادل داده داشته باشید. با این حال، به اختیار خود، برخی از این دادهها را غربال میکنید و تنها دادههایی را میپذیرد که با شرایط دلخواهتان همخوانی داشته باشد و در عین حال، ناقض قواعد کلی شبکه نباشد.
نمونهای از یک سافت فورک مهم
سافت فورک سگویت (SegWit)، یکی از نمونههای شاخص انشعاب نرم است که چندی پس از وقوع هارد فورک بیت کوین کش رخ داد. سگویت، یک بهروزرسانی بود که قالب بلاکها و تراکنشها را به شیوهای هوشمندانه تغییر داد. پس از وقوع سگویت، نودهای قدیمی همچنان میتوانستند بلاکها و تراکنشهای نسخه جدید را اعتبارسنجی کنند؛ اما مایل به این کار نبودند. برخی از دادههای تراکنشها تنها برای نودهایی قابل خوانش بود که به نسخه جدید مهاجرت کرده بودند.
با این حال، پس از گذشت حتی چندین سال، بسیاری از گرهها بهروزرسانی سگویت را اجرا نکردند؛ زیرا ضرورتی برای آن ندیدند. با این حال، زنجیره بیت کوین کماکان و بدون هیچ اشکالی، به کار خود ادامه داده است.
هارد فورک و سافت فورک چه تفاوتی با هم دارند؟
اساساً هارد فورکها و سافت فورکها اهداف متفاوتی را دنبال میکنند. هارد فورکهای جنجالبرانگیز میتوانند منجر به دودستگی اعضای جامعه کاربری یک رمزارز بشوند؛ اما هارد فورکهای برنامهریزیشده، امکان اصلاح و بهروزرسانی نرمافزار را با کسب موافقت همه کاربران، فراهم میکنند.
سافت فورکها راهکارهای ملایمتری برای ایجاد تغییرات کوچک هستند. در یک سافت فورک، شما پذیرای تغییرات تازهای بر مبنای محدودیتهای خود هستید و قرار نیست قواعد پیشین شبکه را نقض کنید. پس از وقوع سافت فورک، نودهای مجری نسخه تازه و نودهایی که نسخه قدیمی را اجرا میکنند، میتوانند بدون هیچ مشکل خاصی با هم در بستر یک بلاک چین، تبادل داده داشته باشند.
تاثیر فورکها بر بازار ارزهای دیجیتال
هارد فورکها و سافت فورکها برای بقای درازمدت شبکههای رمزارزی، بسیار حیاتی هستند. به کمک این رخدادهای مهم، میتوان بینیاز از یک نهاد مرجع مرکزی، تغییرات و بهروزرسانیهای ضروری را در سامانههای غیرمتمرکز اعمال کرد.
افزون بر این، فورکها این قابلیت را برای بلاک چین و رمزارزها فراهم میکنند تا بتوانند همگام با پیشرفتهای فناوری از ویژگیهای روزآمد استفاده کنند. بدون در اختیار داشتن این سازوکارها، زیستبوم رمزارزها محتاج یک نهاد مرکزی با شیوه حکمرانی بالا به پایین خواهد بود.
لینک کوتاه کپی شد https://mazdax.ir/academy/?p=1886