پادکست «فورک کردن چیست؟»

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

فورک کردن چیست؟ بلاک چین
زمان مطالعه : 7 دقیقه

ظهور فناوری بلاک‌چین، درهای جدیدی از ایده‌پردازی و نوآوری را باز کرده‌ است. طی کردن مسیری متفاوت برای ارائه شفافیت و امنیت در عملیات تجاری و انتقال داده‌ها، بخشی از ویژگی‌ها و اهداف بلاک‌چین است. فناوری بلاک‌چین، درواقع یک دفترکل توزیع‌شده برای ذخیره این اطلاعات در یک شبکه همتابه‌همتا است.

اما این فناوری نیز همانند سایر فناوری‌ها به‌طور کامل بی‌نقص و مصون از آسیب‌پذیری نیست. اگر هک یا آسیب‌پذیری در یک بلاک‌چین رخ دهد، می‌توان با استفاده از فرایند عقب‌گرد یا Roll back، زنجیره را به عقب برگرداند، تمام بلاک‌های ثبت‌شده پس از آسیب‌پذیری را لغو نمود و آسیب‌پذیری را رفع کرد. اما این فرایند نیازمند اجماع صددرصدی تمام نودهای شبکه می‌باشد. درصورتی که این اجماع رخ ندهد، برای اصلاح آسیب‌پذیری بلاک‌چین، فورک یا شاخه‌ای از آن ایجاد می‌شود.

ما در این مقاله، به توضیح کامل موضوع فورک یا همان شاخه ‌کردن، دلایل، انواع و نمونه‌های معروف آن خواهیم پرداخت.

فورک کردن یا شاخه کردن چیست؟

فورک کردن

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

چرا فورک یا شاخه اتفاق می‌افتد؟

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

عدم توافق میان اعضای یک شبکه، می‌تواند دلیل دیگری بر ایجاد یک شاخه از آن بلاک‌چین باشد. همانطور که می‌دانید، بلاک‌چین یک شبکه توزیع‌شده و غیرمتمرکز است. پس تمام تصمیم‌گیری‌ها براساس مکانیزم اجماع صورت می‌گیرد. می‌توان فورک بیت‌کوین‌کش (BCH) از بیت‌کوین (BTC) را برای این مورد مثال زد.

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

انواع فورک‌ها

فرایند شاخه‌کردن بسته به سطح تغییراتی که در کد ایجاد می‌شود، به دو نوع سافت‌فورک (نرم‌شاخه)  و هاردفورک (سخت‌شاخه) دسته‌بندی می‌شوند.

سافت‌فورک

اگر تغییراتی که در کدبِیس بلاک‌چین ایجاد می‌شود، بسیار جزئی و کم باشد به‌گونه‌ای که در قوانین و پروتکل‌های اصلی تغییرات اساسی ایجاد نشود، یک سافت‌فورک یا نرم‌شاخه به‌وجود می‌آید. در این حالت، تغییرات اعمال شده با نسخه‌های قبلی سازگار یا اصطلاحا backward-compatible هستند. نودهایی که نسخه جدید را اجرا می‌کنند، به داده‌های پیش‌ از سافت‌فورک دسترسی دارند و نود‌هایی که هنوز نسخه پیش از سافت‌فورک را اجرا می‌کنند و برنامه خود را به‌روزرسانی نکرده‌اند نیز قادر به تایید تراکنش‌ها پس از سافت‌فورک هستند.

هاردفورک

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

نمونه‌هایی از فورک‌های معروف

در دنیای بلاک‌چین فورک‌های زیادی اتفاق افتاده است. اوایل و پیش از تولد اتریوم فورک‌های زیادی از بلا‌ک‌چین بیت‌کوین صورت می‌گرفت. لایت‌کوین اولین فورک بیت‌کوین بود که در سال 2011 راه‌اندازی شد. پس از آن، فورک‌های دیگری همچون Bitcoin XT ،Bitcoin Cash و Bitcoin Gold نیز شکل گرفتند. پس از راه‌اندازی اتریوم نیز فورک‌های بسیار زیادی از این پروژه مانند Ethereum Classic ،EtherZero ،Metropolis ،Ropsten و PulseChain ایجاد شدند. در این قسمت به معرفی تعدادی از این فورک‌ها خواهیم پرداخت.

بیت‌کوین‌کش (Bitcoin Cash)

بیت‌کوین‌کش (BCH)، در ۱ آگوست ۲۰۱۷ در نتیجه هاردفورک شبکه بیت‌کوین ایجاد شد. این هاردفورک با هدف رسیدگی به برخی از مشکلات مقیاس‌پذیری بیت‌کوین با افزایش محدودیت اندازه بلاک از 1 مگابایت به 8 مگابایت ایجاد شد. این تغییر این اجازه را می‌دهد تا تراکنش‌های بیشتری در هر بلاک پردازش شوند که به نوبه خود سرعت و کارایی شبکه را افزایش می‌دهد.

اتریوم کلاسیک (Ethereum Classic)

اتریوم کلاسیک (ETC) در نتیجه یک هاردفورک مشاجره‌آمیز از شبکه اتریوم در جولای 2016 پدیدار شد. این هاردفورک پس از یک هک بزرگ در DAO (سازمان خودمختار غیرمتمرکز) ساخته شد. این هاردفورک برای معکوس‌کردن اثرات هک و بازیابی وجوه دزدیده‌شده پیشنهاد شد. با این حال، بخشی از جامعه اتریوم با این تصمیم مخالف بودند و معتقد بودند که تغییرناپذیری بلاک‌چین باید حفظ شود و هک نباید معکوس شود.

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

پالس‌چین (PulseChain)

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

پالس‌ چین، به طور قابل‌ توجهی کارمزد انجام تراکنش‌ها را کاهش داده است. درحال حاضر، هزینه تراکنش در شبکه پالس‌چین، 13,941 برابر ارزان‌تر از اتریوم و 43,661 برابر ارزان‌تر از بیت‌کوین است! همچنین، تولید هر بلاک در پالس‌چین به طور میانگین به‌جای 12 ثانیه در اتریوم، در هر 10 ثانیه صورت می‌گیرد. این بدان معناست که سرعت تشکیل بلاک در پالس‌چین 17 درصد بیشتر از اتریوم است.

سخن پایانی

در این مقاله به موضوع شاخه‌کردن یا همان فورک‌ کردن پرداختیم. آموختیم که این فورک‌ها عموما به‌منظور بهبود عملکرد و رفع ایرادات اتفاق می‌افتند و به‌طور کلی بر اساس سطح تغییرات دو نوع سافت‌فورک و هاردفورک وجود دارد.

درطول زمان، فورک‌های زیادی از بیت‌کوین و اتریوم ایجاد شدند. بعضی از آن‌ها، محدودیت‌های شبکه مانند اندازه بلاک‌ها یا سرعت شبکه را تحت بررسی قرار دادند و تغییراتی را ایجاد کردند. حتی از این فورک‌ها نیز، فورک‌های دیگری ایجاد شدند تا تغییرات بیشتری انجام دهند. اما این نکته لازم به ذکر است که هر فورکی که از یک شبکه ایجاد می‌شود، لزوما عملکرد آن را بهبود نمی‌بخشد.

بسیاری از این فورک‌ها ممکن است کارایی ضعیف‌تری ارائه دهند و بسیاری نیز با شکست مواجه می‌شوند. بنابراین، در حالی که فورک‌ کردن می‌تواند منجر به نوآوری و پیشرفت در فناوری بلاک‌چین شود، راه‌حل تضمینی برای رفع محدودیت‌های شبکه یا افزایش عملکرد نیست. هر فورک باید بر اساس شایستگی‌های خود ارزیابی شود و موفقیت آن به عواملی مانند حمایت جامعه، فعالیت‌های توسعه و پذیرش بستگی دارد.

پرسش و پاسخ

ه‌طور کلی و به بیان ساده، به فرایند کپی‌کردن کدهای یک پروژه موجود و ایجاد تغییرات در آن، فورک یا شاخه کردن می‌گویند.
خیر. فورک‌ها (شاخه‌ها) دو نوع هستند: سافت‌فورک و هاردفورک. در هاردفورک‌ها به دلیل اینکه تغییرات اساسی ایجاد می‌شوند، یک شبکه جدید به‌وجود می‌آید. امّا سافت‌فورک‌ها منجر به یک شبکه جدید نخواهند شد.
اگر یک سافت فورک رخ دهد، نودهایی که نسخه جدید را اجرا می‌کنند، به داده‌های پیش‌ از سافت‌فورک دسترسی دارند و نود‌هایی که هنوز نسخه پیش از سافت‌فورک را اجرا می‌کنند و برنامه خود را بروزرسانی نکرده‌اند نیز قادر به تایید تراکنش‌ها پس از سافت‌فورک هستند. امّا در یک هاردفورک نودهای هر شبکه دسترسی به شبکه دیگر نخواهد داشت. به‌عبارتی هر نود باید فقط یکی از شاخه‌ها را انتخاب کند.
مهدی حسینی

تقریبا در سال 98 با ارزهای دیجیتال آشنا شدم و تنها چیزی که ازش می‌دونستم فقط ترید بود؛ تقریبا مثل همه کسایی که برای اولین بار با این حوزه آشنا میشن. اما هرچه بیشتر تو ...

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *