این راهنمای آموزشی در مورد فورکها به رایجترین سئوالات پاسخ میدهد. فورک چیست؟علت ایجاد آن چیست؟ چرا اتفاق میافتد؟ اهمیت آن چقدر است؟
فورکها یک پدیده رایج در محاسبات نرم افزاری هستند که یک دوره تخصصی را برای درک بسیاری از مطالب ارائه میدهند. به منظور درک کامل مفهوم فورک ابتدا باید نگاهی به تعریف بیت کوین بعنوان پیشگام اکو سیستم ارزهای دیجیتال و تکنولوژی آن انداخت.
بیت کوین:
بیت کوین یک شبکه ارز و پرداخت است که تراکنشهای آن بصورت همتا به همتا و غیر متمرکز انجام میگیرد. مکانیسم اصلی پروتکل بیت کوین از یک گروه از کدهای محاسباتی تشکیل شده است. این کدها بعنوان نقشهای از پیش تعیین شده برای این شبکه بکار میروند. بیت کوین منبع باز است؛ بدین جهت کدهای محاسباتی اصلی رایگان و در دسترس عموم قرارگرفته تا افراد آنها را بازدید کرده و مورد استفاده قرار دهند. (این صفحه راهنمای اصطلاحات رایج ارزهای دیجیتال است.)
فورک چیست؟
بلاک چین بیت کوین یک دفتر کل توزیع شده است که بلاکهایی از داده ها را میسازند. این بلاک ها همواره در حال رشد و تشکیل یک زنجیره واحد از بلاک ها (بلاک چین) هستند.
از آنجائی که بیت کوین یک شبکه غیر متمرکز است؛ تمام سهامداران یا اکثریت قریب به اتفاق آنان در شبکه باید بر روی یک مجموعه متداول از قوانین، بمنظور اعتبار بخشیدن به تراکنشها موافقت نمایند. یک فورک زمانی بوجود میآید که یک سیستم بلاک چین به دو بخش تقسیم میشود.
انشعاب توافقی:
بیت کوین یک شبکه غیر متمرکز و توزیع شده است. یک فورک زمانی ایجاد می شود که استخراج کنندگان یک بلاک را همزمان پیدا نمایند. در نتیجه بلاک به دو بخش تقسیم می شود. هر چند که این یک فورک موقتی است و زنجیره ای است که بصورت خودکار زنجیرههای بعدی را پیدا نموده و بلندترین زنجیره تایید شده را تشکیل میدهد. پس از آن زنجیره کوتاهتر شبکه را ترک می کند.
دو تغییر در قوانین اصلی پروتکل:
این دو تغییر محسوس و ماندگار در کدهای اصلی بوسیله برنامه نویسان است.
این تغییر میتواند بعلت:
- افزودن ویژگی های جدید برای افزایش قابلیت های شبکه
- تغییر یک قانون مرکزی(مانند افزایش اندازه یک بلاک)
فورک ها در یک گروه ایجاد میشوند. (تقسیم به دو بخش مجزا اما بصورت موقت) اما نکته قابل تامل اینجاست که وقتی فرد درباره فورکها صحبت می کند آنها را به دو گروه تقسیم می نمایدکه این یک تغییر در قوانین اصلی پروتکل است.
فورکها درون این طبقه پایا هستند و شرکت کنندگان باید درون شبکه نرم افزار بیت کوین خود را ترقی دهند. بنابراین تغییرات جدید در داخل نرم افزار جدید آنها باید یکپارچه گردد.
تغییر در قوانین اصلی پروتکل داخل سه گروه جامع تقسیم بندی میشود که عبارتند از:
سافت فورک ها:
یک سافت فورک نرم افزاری است که سوابق سازگار با نسخههای قدیمیتر را ترفیع میدهد. این بدان معنی است که شرکت کنندگانی که نرم افزار جدید خود را ارتقاء نبخشیدند، هنوز قادربه شرکت در تراکنش های معتبر و تایید شده هستند. اجرای سافت فورک برای همه شرکت کنندگان بسیار راحتتر است. زیرا آنان تنها باید این نرم افزار را ارتقا بخشند. تمامی شرکت کنندگان چه آنهایی که این نرم افزار را بروزرسانی میکنند و چه کسانی که به شناخت بلوک های جدید ادامه میدهند، نرم افزار خود را با شبکه هماهنگ میسازند.
یک مثال از سافت فورک:
این مثال می تواند وضع قانون جدیدی باشد که منجر به تغییر سایز بلاک از اندازه کنونی خود گردد. (از KB 1000 به KB 1800)
شرکت کنندگانی که هنوز نرم افزار خود را ارتقا ندادهاند نیز میتوانند تراکنشهای تایید شده جدید را مشاهده نمایند. اما وقتی استخراج کنندگان با نرم افزار ارتقا یافته سعی در استخراج بلاکهای جدید میکنند؛ بلاکهای آنان توسط شبکه پذیرفته نمیشود. بنابراین سافت فورکها در این موارد یک مکانسیم ارتقا تدریجی را نشان میدهند تا استخراج کنندگان را تشویق به استفاده از آن نمایند و خطرات احتمالی را کاهش دهند.
مدلهای سابق سافت فورک ها:
- :BIP66سافت فورکی برای اعتبار بخشیدن به صحت بیت کوین است.
- :P2SH سافت فورکی که قادر است چندین روش صحت سنجی بیت کوین را در شبکه نمایش دهد.
هارد فورک: هارد فورکها نرم افزاری هستند که باید ارتقا یابند. زیرا با نسخه های قدیمیتر سازگار نیستند. تمامی سهامداران باید نرم افزار قدیمی خود را به نرم افزار جدید ارتقا دهند تا تراکنشهای جدید برای آنان تایید شده و بتوانند به مشارکت ادامه دهند؛ تازمانی که مجموع بیت کوین های موجود به ۲۱ میلیون برسد. سهامدارانی که نرم افزار خود را ارتقا ندهند از شبکه جدا شده و نمیتوانند تراکنش های جدید خود را تایید کنند. نتایج این تفکیک یک انشعاب ماندگار از بلاک چین است. تا زمانی که سهامداران با استخراج بلاک از زنجیره حمایت میکنند دو زنجیره بطور همزمان وجود دارد.(این صفحه رهنمونهایی درموردتایید تراکنشهای ارزهای دیجیتال است.)
هارد فورک ها میتوانند سازگار یا ناسازگار باشند:
هارد فورک سازگار (برنانه ریزی شده):
پروتکلی ارتقایی است که محل آن از پیش برروی نقشه پروژه مشخص شده است. زمانی که این پروتکل ارتقا مییابد؛ قابلیت ها و خصوصیات بلاک چین بالا رفته و تمامی انجمنهای بلاک چین توسط برنامهنویسان اصلی هدایت میشود. در این مرحله زنجیره قبلی به زنجیره جدید تغییر مییابدکه باید یک تغییر در پایه کد اصلی بوجود آید در نتیجه زنجیره قبلی از بین میرود؛زیرا کوین جدیدی را ایجاد نمیکند.
مثالهایی از هارد فورک های سازگار:
بیزانتیوم اتریوم: فاز اول طرح ارتقا دو مرحلهای اتریوم، هارد فورک بیزانتیوم است که در اکتبر ۲۰۱۷ اجرایی شد. این ارتقا از بلاک چین اتریوم سبب افزایش مقیاس پذیری و هماهنگی تراکنشهای خصوصی میشود.
مونرو Monero : در ژانویه ۲۰۱۷ مونرو برای ارتقا شبکه خود با کمک اجرای طرحی بنام معاملات محرمانه حلقه (RCT) موجب بالا بردن حریم خصوصی کاربران و افزایش امنیت میشود.
هارد فورکهای ناسازگار: هارد فورک ناسازگار باعث بروز اختلافاتی در درون شبکه بیت کوین میشود که نتیجه آن ایجاد یک زنجیرهی جدید( با دور نمایی بهتر) است. تغییرات عمده در کدگذاری سبب ایجاد بیتکوین کش میشود. بیت کوین همچنین بین دو هارد فورک قرار دارد. (این صفحه اطلاعاتی در مورد هارد فورک های بیت کوین مانند بیت کوین گلد و Segwit2x میدهد).
نمونه هایی از هارد فورکهای ناسازگار:
بیت کوین کش: بیت کوین کش یک هارد فورک هماهنگ کننده است که مقیاس پذیری بیت کوین را بواسطه افزایش اندازه بلوک از اندازه فعلی آن(یک مگا بایت به ۸ مگا بایت) افزایش می دهد. این مقیاسپذیری به تراکنشهای بیشتری اجازه پردازش میدهد؛ بنابراین سبب کاهش هزینه پرداخت برای کاربران شده و اختلالات شبکه بیت کوین را به حداقل میرساند. در نتیجه هارد فورک ارز دیجیتال جدیدی بنام بیت کوین کش تولید میکند.
اتریوم کلاسیک: اتریوم هارد فورکی دارد که یک هک را با شکست مواجه میکند. این هارد فورک در یکی از برنامه های کاربردی بنام سازمان توسعه مستقل(DAO) رخ میدهد هرچند به علت حفظ ماهیت تغییرپذیری این شبکه تعداد کمی از کاربران با تغییرات بلاک چین در شبکه مواجه میشوند. برنامه نویسان اصلی اتریوم و اکثر کاربران این شبکه مایلند به این هارد فورک دسترسی پیدا کنند. تعداد کمی از کاربران فورک خود را ارتقا نمیدهند و در زنجیره بلوک قدیمی خود بنام اتریوم کلاسیک میماند. نکته مهمی که وجود دارد این است که تا زمانی که زنجیره جدید دستخوش تغییرات زیادی است کاربران اتریوم اصلی را حفظ میکنند.در حالیکه کاربران کمی از زنجیره قدیمی بنام اتریوم کلاسیک حمایت میکنند.
کوین های Spin- off : از آنجایی که پروتکل بیت کوین بصورت منبع باز است ؛ همه افراد میتوانند کد اصلی را مشاهده نموده و تغییراتی در آن ایجاد کنندکه سبب تولید کوین جدید با مشخصات جدید میشود. بعنوان مثال لایت کوین یکی از فورک های بیت کوین است که از تغییر پایه کد(Codebase) بیت کوین ایجاد میشود. ویژگی هایی که در بیت کوین تغییر مییابند عبارتند از:
- تراکنشهای لایت کوین در دو و نیم دقیقه انجام میگیرد، در حالیکه این زمان برای بیت کوین ده دقیقه است. (تقریبا چهار برابر سریعتر از بیت کوین)
- تغییر اجماع الگوریتم: بیت کوین SHA256 به الگوریتم بهتری بنام Scrypto تغییر مییابد. (همه ارزهای دیجیتال از الگوریتم خاصی برای فعالیت استفاده میکنند).
- عرضه کوین ثابت: عرضه ۸۴ میلیون کوین بجای ۲۱ میلیون کوین در بیت کوین
نمونههایی از کوین هایی که با بیت کوین ها متفاوتند (برگرفته شده از بیت کوین) عبارتند از:
- Namecoin
- Peercoin
- Litecoin
- Dogecoin
- Auroracoin (AUR)