فهرست مطالب
- فورک Fork چیست ؟
- فورک تصادفی چیست ؟
- هارد فورک چیست ؟
- انواع هاردفورک چیست ؟
- سافت فورک چیست ؟
- تفاوت هارد فورک و سافت فورک چیست ؟
- جمعبندی
بهروزرسانی نرمافزارها و پروتکلهای طراحی شده در دنیای دیجیتال امری متداول است. بلاک چین به عنوان سیستم ذخیرهسازی و ثبت اطلاعات کاربران به صورت غیرمتمرکز، فعالیت خود را با استفاده از پروتکلهای و شرایط تعریف شده انجام میدهد. تفاوت اصلی که بلاک چین با سایر نرمافزارها دارد این است که پروتکل طراحی شده برای آن، توسط تمامی نودهای فعال در شبکه اجرا میشود. بنابراین، بهروزرسانی پروتکلها و قوانین بلاک چین منوط به پذیرش آن توسط اکثریت نودها است.
واژه «فورک» (Fork) در بلاک چین برای اشاره به توسعه پروتکل و تغییر قوانین بلاک چین به کار گرفته میشود. در حالت کلی فورک به دو دسته اصلی «هارد فورک» (HardFork) و «سافت فورک» (SoftFork) تقسیم میشود و هرکدام از این روشها نیز میتوانند شامل تغییرات در بخشهای مختلف الگوریتم شوند. در این مقاله به بررسی مفهوم Fork میپردازیم و سوال هارد فورک چیست و چه تفاوتی با سافت فورک دارد را به طور کامل بررسی میکنیم.
فورک Fork چیست ؟
در بلاک چین برای ثبت اطلاعات و تراکنشها در دفتر کل توزیع شده، قوانینی در نظر گرفته میشود و این قوانین به صورت کدهای برنامهنویسی در نرمافزار ماینرها گنجانده میشود. قوانین بلاک چین برای تامین امنیت بلاک چین و فراهم آوردن شرایط فعالیت کاربران به صورت غیرمتمرکز نوشته میشوند. به هر حال این قوانین قابل تغییر هستند و میتوانند توسعه پیدا کنند.
از جمله مهمترین قوانین تعیین شده برای بلاک چینها میتوان به متغیرهایی مثل تابع هش مورد استفاده در هشینگ، سختی شبکه، تعداد کل کوینهای پروژه، نحوه ایجاد رمز ارزهای جدید، اندازه هر بلاک و اطلاعات داخل هر بلاک اشاره کرد. واژه «فورک» (Fork) در انگلیسی به معنی چنگال است و استفاده از آن در مفهوم توسعه بلاک چین به دلیل شکل ظاهری چنگال است. در چنگال یک بدنه اصلی وجود دارد که در انتها تبدیل به چند دندانه میشود. در بلاک چین نیز یک زنجیره اصلی از بلاکها وجود دارد که در هنگام توسعه ممکن است به دو یا چند زنجیره مجزا تبدیل شود.
ایده ایجاد چند زنجیره موازی همواره برای Fork صادق نیست و برخی از انواع فورک، بلاکهای جدید را در ادامه زنجیره اصلی اما با تغییر پروتکل و قوانین ایجاد میکنند. علاوه بر این، واژه فورک همواره برای توسعه شبکه به کار نمیرود و گاهی اوقات ایجاد دو زنجیره در بلاک چین به صورت کاملا تصادفی رخ میدهد که به آن فورک تصادفی گفته میشود. در ادامه به بررسی انواع Fork و کارکردهای آنها میپردازیم.
فورک تصادفی چیست ؟
تا به اینجا فهمیدم که اصلیترین کارکرد Fork در توسعه پروتکل شبکه و تغییر آن است اما فورک میتواند به صورت تصادفی نیز در بلاک چین اتفاق بیفتد. فورک تصادفی یک مشکل برای بلاک چین به شمار میرود و منجر به ایجاد دو دفتر کل توزیع شده برای یک شبکه میشود. وجود دو دفتر کل هماهنگی بین ماینرها برای اجرای هماهنگ شبکه را با مشکل روبهرو میکند. به همین دلیل قوانینی در بلاک چین تعبیه شده است که در صورت ایجاد فورک تصادفی، امکان تشخیص سریع زنجیره اصلی را برای کاربران فراهم کند.
فورک تصادفی زمانی ایجاد میشود که دو ماینر به طور همزمان معادله بلاک را حل و آن را به شبکه اعلان کنند. در چنین شرایطی، هر بلاکی که زودتر به ماینرها فرستاده شود توسط آنها تایید میشود. خروجی این اتفاق این است که برخی از فول نودها، بلاک ماینر اول و بخشی دیگر، بلاک ماینر دوم را تایید و به دفتر کل توزیع شده خود اضافه میکنند. این اتفاق منجر به ایجاد دو زنجیره موقت میشود. ماینرها کار استخراج ارز دیجیتال و ساخت بلاک بعدی را بر روی زنجیرهای که بلاک آن را تایید کردهاند، دنبال میکنند.
در نهایت بلاک بعدی بر روی یکی از زنجیرهها ساخته میشود. یکی از قوانین اصلی بلاک چین این است که همواره باید یک زنجیره در شبکه وجود داشته باشد و زنجیره معتبر، زنجیرهای است که بیشترین طول را دارد. بنابراین، در این شرایط زنجیرهای که بلاک جدید در آن اضافه شده، به عنوان بلاک چین معتبر شناخته میشود و بلاک ساخته شده در زنجیره موازی نامعتبر تلقی میشود. اگر ایجاد دو بلاک همزمان، در ادامه نیز اتفاق بیفتد، این فرآیند ادامه پیدا میکند تا در نهایت یکی از زنجیرهها طول بیشتری داشته باشد.
فورک تصادفی ممکن است باعث از دست رفتن داراییهای کاربران شود. به همین دلیل توصیه میشود تراکنشی را تمام شده فرض کنید که حداقل چند بلاک بعد از بلاک حاوی تراکنش شما به آن اضافه شده باشد. با توجه به محاسبات احتمالاتی در بلاک چین بیت کوین حد نهایی اطمینان شش بلاک است. بنابراین کاربر پس از خرید بیت کوین و اضافه شدن شش بلاک به بلاک تراکنش خود میتواند از نهایی شدن تراکنش اطمینان حاصل کند. تا به اینجا فهمیدیم که Fork تصادفی چیست. در ادامه میخواهیم به بررسی مفهوم هاردفورک و سافت فورک بپردازیم.
هارد فورک چیست ؟
فورکهای غیرتصادفی در بلاک چین را میتوان به دو دسته هارد فورک و سافت فورک تقسیم کرد. هارد فورک به نوعی از Fork گفته میشود که تغییرات انجام شده در آن با پروتکل قبلی شبکه بلاک چین سازگار نیست (Backward-incompatible) و به همین دلیل کاربرانی که از پروتکل قبلی استفاده میکنند قادر به تایید بلاکهای ارائه شده توسط پروتکل جدید نیستند. تغییراتی که در اثر هارد فورک ایجاد میشوند اساسی هستند و به همین دلیل ممکن است با مخالفت برخی از ماینرها روبهرو شوند.
در نتیجه Hard Fork، ممکن است بلاکهایی که قبلا نامعتبر بودن، معتبر شناخته شوند یا اینکه بلاکهای معتبر قبلی نامعتبر تلقی شوند. با این وجود باید توجه کرد که تغییرات اعمال شده در پروتکل برای هارد فورک، به هیچ عنوان در بلاکهای گذشته تاثیر ندارد و تنها برای بلاکهای جدیدی که قرار است ساخته شوند اعمال میشود.
در صورتی که ماینرها همگی پروتکل جدید را قبول داشته باشند، بلاک چین مسیر خود را از یک بلاک مشخص در بلاک چین با پروتکل جدید ادامه میدهد و هیچگونه زنجیره موازی ایجاد نمیشود. در صورتی که برخی از کاربران تغییرات جدید را قبول نداشته باشند، در این صورت دو دسته از کاربران هر کدام از پروتکل خود برای اضافه کردن تراکنشها استفاده میکنند که نتیجه آن ایجاد دو زنجیره موازی و یک کریپتوکارنسی جدید است. معمولا رمز ارز جدید به هولدرهای توکن زنجیره اصلی ایردراپ میشود و این یکی از دلایل اصلی فعالیت کاربران در شبکه اصلی پیش از Fork است.
هارد فورک چگونه انجام میشود ؟
در هارد فورک تغییرات اعمال شده در پروتکل با قوانین قبلی پروتکل سازگار نیست. فرض کنید گروهی از کاربران و توسعهدهندگان شبکه بیت کوین بخواهند پاداش استخراج هر بلاک را به دو برابر حالت فعلی برسانند. در این صورت ماینرهایی که با این تغییر موافق هستند، از نرمافزار جدید برای تائید تراکنشها استفاده میکنند. بلاکهای ارائه شده توسط ماینرهای جدید به دلیل رعابت نکردن شرط پاداش استخراج، توسط ماینرهای قدیمی تایید نمیشوند و همین طور بلاکهای ماینرهای قدیمی به دلیل تفاوت به وجود آمده توسط پروتکل جدید تایید نمیشود.
این مساله باعث میشود که هر دسته از ماینرها تنها بلاکهای تولید شده توسط ماینرهای همدسته را تائید کنند که خروجی آن ایجاد دو زنجیره موازی هم است. در صورتی که ماینرها بر روی تغییرات اعمال شده توافق نداشته باشند، دو زنجیره ایجاد شده به فعالیت خود ادامه میدهند و یک کریپتوکارنسی جدید ایجاد میشود. هارد فورک «دائو» (DAO) انجام شده در شبکه اتریوم منجر به ایجاد اتریوم کلاسیک شد که تاثیر مستقیمی بر قیمت اتریوم داشت. در صورتی که اکثریت کاربران با تغییرات موافق باشند، ماینرهای مخالف با شکست روبهرو میشوند و عملا تغییر مورد نظر به شبکه اعمال میشود.
انواع هاردفورک چیست ؟
در بخشهای قبلی در مورد اینکه کاربران ممکن است تغییرات مورد نظر هارد فورک را قبول داشته باشند یا نه بحث کردیم. از این منظر Hardfork به دو دسته «برنامهریزی شده» و «چالشی» تقسیم میشود. در حالی که اکثریت ماینرها با هاردفورکهای برنامهریزی شده موافق هستند اما هارد فورک چالشی همواره پتانسیل این را دارد که شبکه را به دو زنجیره تبدیل کند.
هارد فورک برنامه ریزی شده چیست ؟
هارد فورک برنامهریزی شده به دستهای از تغییرات اساسی در پروتکل گفته میشود که برنامه اعمال آن از قبل در مسیر برنامه پروژه گنجانده شده است. در ابتدای مسیر فعالیت بلاک چین امکان اعمال تمام ویژگیها به شبکه وجود ندارد و به همین دلیل بلاک چین فعالیت خود را با حداقل ویژگیها که امنیت شبکه را تضمین میکنند، شروع میکنند تا در طی زمان ایدههای مختلف برای توسعه را در شبکه اعمال کنند که این کار منجر به Hardfork در شبکه میشود.
معمولا این نوع هارد فورک مورد توافق اکثریت ماینرهای شیکه قرار میگیرد و تغییرات مورد نظر بر روی شبکه اعمال میشود. شبکه اتریوم در طی مسیر توسعه خود بارها و بارها از این نوع Hardfork استفاده کرده است. هارد فورک استانبول، هارد فورک برلین و هارد فورک لندن از معروفترین هاردفورکهای اعمال شده بر روی این شیکه است.
هاردفورک چالشی چیست ؟
هارد فورک چالشی بدون برنامهریزی قبلی و در اثر حادث شدن اتفاقات جدید در بلاک چین یا شورش ناگهانی تعدادی از ماینرهای اصلی پروژه ایجاد میشود. Hardfork چالشی معمولا منجر به دو دسته شدن ماینرها و ایجاد دو پروژه مجزا از هم میشود. از جمله معروفترین هاردفورکهای چالشی میتوان به Hardfork شبکه بیت کوین در سال 2017 و ایجاد رمز ارز بیت کوین کش اشاره کرد. هدف بخشی از ماینرهای بیت کوین از این کار ایجاد یک بلاک چین سریعتر از بیت کوین بود که به دلیل تضعیف امنیت شبکه، بسیاری از ماینرها با آن همراهی نکردند.
Hardfork اتریوم کلاسیک نیز معروفترین هاردفوک چالشی اتریوم است که پس از هک معروف دائو انجام شد. در حال حاضر و پس از تبدیل الگوریتم اجماع شبکه اتریوم به اثبات سهام نیز بخشی از ماینرهای قدیمی شبکه به دنبال Fork شبکه و ادامه فعالیت اتریوم با اثبات کار هستند. در صورتی که این اتفاق رخ بدهد، یک رمز ارز جدید نیز ایجاد میشود که بین دارندگان اتریوم توزیع خواهد شد. در صورت رخ دادن این اتفاق و تایید پروژه توسط تعداد قابل توجهی از ماینرها، بسیاری از صرافیهای معتبر از جمله صرافی ارز دیجیتال رابکس نیز از کوین جدید پشتیبانی خواهند کرد.
سافت فورک چیست ؟
سافت فورک نوعی از تغییر در پروتکل بلاک چین است که با قوانین تعریف شده فعلی سازگار است (Backward Compatible) و به همین دلیل مشکلات مربوط به Hardfork را در ارتباط با ایجاد دو بلاک چین مجزا ندارد. سازگار بودن سافت فورک با پروتکل فعلی به این معنی است که باوجود تغییر الگوریتم، همچنان ماینرهایی که از پروتکل قدیمی ار استفاده میکنند امکان شرکت در فعالیت اعتبارسنجی و تائید بلاکها را دارند. برای اعمال سافت فورک در شبکه نیاز است که اکثریت فول نودها با آن موافق باشند در غیر اینصورت ماینرها ممکن است دچار دو دستگی شوند.
برای درک بهتر مفهوم سافت فورک بهتر است آن را با یک مثال ساده توضبح دهیم. فرض کنید ماکزیمم اندازه هر بلاک در یک بلاک چین 10 مگابایت است و ماینرها میخواهند آن را به 5 مگابایت کاهش دهند. اگرچه این کار مقیاسپذیری شبکه را کاهش میدهد اما به منظور افزایش امنیت بلاک چین میتواند مفید و موثر باشد. در چنین شرایطی بلاکهای ایجاد شده توسط پروتکل جدید با پروتکل قدیمی نیز قابل تایید هستند زیرا اندازه بلاک زیر 5 مگابایت، زیر 10 مگابایت نیز هست و مشکلی برای ماینرهای قدیمی ایجاد نمیکند.
برعکس این اتفاق صادق نیست و بلاکهای ایجاد شده توسط پروتکل قدیمی با پروتکل جدید تایید نمیشود زیرا اندازه بلاکهای ایچاد شده از ماکزیم تعریف شده در پروتکل جدید بیشتر است. در چنین شرایطی، درصد کاربرانی که از هر کدام از پروتکلها استفاده میکنند اهمیت پیدا میکند. اگر تعداد ماینرها با پروتکل جدید بیش از 50 درصد باشد، ماینرهای قدیمی بلاکهای آنها را تایید و امنیت شبکه را تضمین میکنند اما خودشان نمیتوانند بلاک به شبکه اضافه کرده و به کسب درآمد از ارز دیجیتال بپردازند. این مساله باعث میشود به مرور آنها نیز از پروتکل جدید برای فعالیت استفاده کنند.
در صورتی که تعداد ماینرهای قدیمی بیشتر باشد، در این صورت بلاکهای هر دو دسته در بلاک چین قرار میگیرد که این مساله باعث میشود سافت فورک ارزش خود را از دست بدهد و ماینرهای با پروتکل جدید سود کمتری به دست آورند. (تعداد تراکنشهای موجود در بلاک آنها کمتر است و بنابراین کارمزد کمتری دریافت میشود.) به دلیل این مشکل معمولا سافت فورک زمانی عملیاتی میشود که توسعهدهندگان مطمئن باشند اکثریت کاربران با تغییرات اعمال شده موافق هستند.
«سگویت» (SegWit) معروفترین سافت فورک اعمال شده بر روی شبکه بیت کوین است. پیش از سگویت حجم زیادی از اندازه هر بلاک در شبکه بیت کوین توسط اطلاعات امضای تراکنشها پر میشد و این مساله باعث شده بود تعداد تراکنشهای قابل ثبت در این فرآیند کاهش و کارمزد تراکنشها افزایش یابد. در سافت فورک سگویت با ثابت نکهداشتن اندازه هر بلاک و تنها با خارج کردن هوشمندانه اطلاعات مربوط به امضای دیجیتال، مقیاسپذیری بیت کوین تا حد قابل توجهی افزایش یافت بدون آنکه تغییر انجام شده با قوانین قبلی ناسازگار باشد.
تفاوت هارد فورک و سافت فورک چیست ؟
در بخشهای قبلی به بررسی مفهوم هارد فورک و سافت فورک پرداختیم. مهمترین تفاوت هارد فورک و سافت فورک در نوع تغییراتی است که در پروتکل بلاک چین اعمال میشود. تغییرات اعمال شده در فرآیند Hardfork با پروتکل قبلی سازگار نیست و ممکن است منجر به ایجاد یک رمز ارز جدید شود. حال آنکه در سافت فورک تغییرات با پروتکل قبلی سازگار است و در صورت موافقت اکثریت ماینرها با تغییرات، به مرور کل کاربران از پروتکل جدید استفاده میکنند.
معمولا در فضای ارزهای دیجیتال بیشتر تغییرات از نوع Hardfork است زیرا اعمال تغییرات به شکلی که بر روی قوانین موجود بلاک چین اثرگذار نباشد، کاری بسیار سخت است و در بسیاری از موارد امکانپذیر نیست. با این حال، انجام سافت فورک در صورت امکان بهتر از Hardfork است زیرا این کار معمولا اثرات کمتری بر روی متغیرهای تحلیل بنیادی یک پروژه و قیمت ارزهای دیجیتال دارد.
جمعبندی
در این مقاله به بررسی مفهوم هارد فورک و سافت فورک پرداختیم و تفاوت بین آنها را بررسی کردیم. بیشتر پروژههای ارز دیجیتال برای اعمال تغییرات خود ازاین دو مفهوم استفاده میکنند. گاهی اوقات نیز وجود اختلاف بین دو دسته از ماینرها منجر به Fork بلاک چین و ایجاد دو رمز ارز میشود. هاردفورکهای ایجاد شده در بیت کوین اکثرا منجر به ایجاد رمز ارزهای جدید شدهاند اما هارد فورک در پروژههای قرارداد هوشمند مثل اتریوم و کاردانو بیشتر به منظور ارتقای قابلیتهای شبکه بوده است. در مقالات بعدی به بررسی مهمترین هاردفورکهای انجام شده در حوزه بلاک چین خواهیم پرداخت.
نظر خود را با ما به اشتراک بگذارید