هنگامی که شما با درخواست به روز رسانی اپلیکیشن بانکی در تلفن همراه خود روبهرو میشوید، بلافاصله و بدون اتلاف وقت اقدام به به روز رسانی میکنید. حتی شاید تلفن همراه شما به صورت خودکار این کار را انجام دهد. طی شدن این روند بسیار ضروری بوده و اگر آخرین نسخه نرم افزار مذکور را نصب نکنید، ممکن است از دسترسی به خدمات بانک مورد نظر خود محروم شوید.
چیستی فورک
به دلیل نوظهور بودن تکنولوژی بلاک چین، ممکن است در این فناوری مسائلی به وجود بیاید که نیاز به رسیدگی داشته باشند. در دنیای رمزنگاری شده همه چیز متفاوت است. ماهیت غیر متمرکز ارزهای دیجیتال و بلاک چین و نبود هیچ سلسله مراتب و سیستم واسطه سبب شده است که به روز رسانی در ارزهای رمزنگاری شده به صورت کاملا متفاوت شکل بگیرد.
اجرای ویژگیهای جدید در شبکههای بلاک چین میتواند یک چالش باشد که به وسیله الگوریتم اجماع حل میشود. هر گونه تغییر در شبکه ارزهای دیجیتال از مسائل امنیتی گرفته تا تغییرات سیستمی مهم، به نوعی رای از طرف همه اعضای این سیستم غیرمتمرکز نیاز دارد. اگر چه انتقادات فراوانی به ماهیت بسیاری از این تغییرات وارد شده است اما باید این نکته را در نظر گرفت که تغییرات اعمال شده روی پروتکل و همچنین سیستم رای گیری آن بخشی از غیر متمرکز بودن سیستم بلاک چین را تشکیل میدهند. برای اعمال این تغییرات روی پروتکل، توسعهدهندگان تاریخی تعیین کرده و به اعضا زمان میدهند که درباره این موضوع بحث کرده و یا نظر خود را اعلام کنند. هنگامی که زمان اعمال تغییر فرا میرسد، بلاک چین وارد فرایندی به نام فورک (Fork) میشود. در حقیقت فورک به انشعاب، آپدیت یا به روزرسانی نرم افزاری گفته میشود که منشا آن پروژه های برنامه نویسی است و برنامه نویس با ایجاد تغییراتی در کد منبع یک پروژه، به تولد برنامهای جدید از دل برنامه قبلی کمک میکند. پدیده فورک در حوزه ارزهای دیجیتال و بلاک چین زمانی که شبکه به دو بخش تقسیم شود، اتفاق میفتد.
تصمیمگیری در شبکه بلاک چین
برای درک بیشتر مفهوم هارد فورک، ابتدا باید کسانی که در شبکه بلاک چین تصمیمگیری میکنند را بهتر بشناسیم.
در ارز دیجیتال بیت کوین تفاوت بین سه گروه اعضای شبکه به نام توسعه دهندگان (developers)، ماینرها(miners) و کاربران فول نود(Full node users) به وضوح قابل تشخیص است. این افراد مهمترین نقش را در شبکه این ارز دیجیتال به عهده دارند. لایت نودها(Lightweight Node) هم که در حقیقت همان کیف پولهای نصب شده روی تلفنهای هوشمند، لپ تاپها و… هستند، برای سهولت کاربران در استفاده از فول نودها ساخته شدهاند. تعاریف این چهار گروه به شرح ذیل است:
1- توسعه دهندگان: توسعه دهندگان مسئول ایجاد و به روزرسانی کد هستند و به صورت داوطلبانه نرم افزار ارزهای دیجیتال و قابلیتهای آن را ارتقا میدهند.
2- استخراج کنندگان: ماینرها یا استخراج کنندگان همان کسانی هستند که حفظ امنیت شبکه را بر عهده دارند. آنها با استفاده از قدرت پردازش فوقالعاده دستگاههای خود، تراکنشهای ارزهای دیجیتال را با استفاده از الگوریتم اثبات کار(Proof of work) تایید کرده و بلاک جدید را به بلاک چین اضافه میکنند. به محض اضافه شدن یک بلاک به بلاک چین، مقداری ارز دیجیتال به عنوان پاداش به استخراج کنندگان تعلق میگیرد.
3- کاربران فول نود: هر دستگاهی که به شبکهی بیت کوین متصل میشود را نود (Node) مینامند و نودهایی که مستقیماً به بلاک چین بیت کوین وصل شده و تمام قوانین بیت کوین را میپذیرند، فول نود نام دارند. مهمترین نرمافزار ارتباطی بین فول نودهای بیت کوین که ستون فقرات شبکه این ارز دیجیتال هستند، هسته بیت کوین ( Bitcoin Core ) نام دارد و کد منبع (Source Code) آن در سایت github قرار دارد.
لازم به ذکر است که یک کاربر میتواند به صورت همزمان توسعه دهنده، کاربر فول نود یا ماینر باشد. هیچ محدودیتی برای کاربران به منظور قرار گرفتن در هر دسته وجود ندارد. اما در این بین نقش بسیار مهم توسعه دهندگان و ماینرها در شبکه ارزهای دیجیتال موضوع قابل توجهی است. توسعه دهندگان وظیفه ایجاد کدها را به عهده دارند و بدون آنها نرم افزاری وجود نخواهد داشت، همچنین کسی قادر نخواهد بود باگها را برطرف کرده یا ویژگیهای جدیدی ارائه دهد. ماینرها نیز به امنیت شبکه کمک میکنند. بدون رقابت ماینرها برای اضافه کردن بلاک جدید به بلاک چین، بلاک چین ارزهای دیجیتال کامل نخواهند شد. از طرفی نقش فول نودها در شبکه هم به اندازه دو دسته قبلی مهم است. برخی معتقدند این گروه قدرت واقعی شبکه را در اختیار دارند.
فورک چه زمانی رخ میدهد؟
فورک زمانی صورت میگیرد که نرم افزار به کپی یا اصلاح نیاز داشته باشد. روند انجام آن به ترتیبی است که پروژه اصلی به راه خود ادامه میدهد ولی در عین حال با نسخه جدید تفاوتهایی نیز دارد. برای درک بهتر این موضوع فرض کنید که تیم تولید محتوای یک سایت برای ادامه روند کار خود اختلاف نظر پیدا کردهاند. ممکن است قسمتی از این تیم، وب سایت را به یک دامنه جدید منتقل کرده و به مرور زمان محتواهای متفاوتی را در این وب سایت قرار دهند. درست مانند یک جاده که در طول مسیر خود به دو راه متفاوت تقسیم میشود، هر دوی این پروژهها روی یک پایه مشخص ساخته شده و تاریخچه مشترکی دارند، اما در طول مسیر خود به اهداف مختلف نزدیکتر میشوند.
توجه داشته باشید که این نوع اتفاقات مخصوص پروژههای منبع باز بوده و مدتها قبل از خلق بیت کوین یا اتریوم وجود داشتهاند. اما مفهوم هاردفورک و سافت فورک مخصوص فضای بلاک چین است. جالب است بدانید که علی رغم داشتن نامهای مشابه و اهداف مشترک، هارد فورک و سافت فورک ارزهای دیجیتال تفاوتهای چشمگیری با هم دارند.
هارد فورک چیست؟
هارد فورکها در حقیقت به روز رسانی نرم فزارهای Backward Compatibility هستند. Backward Compatibility که گاهی به آن Backward Compatible ،Backwards Compatible یا Downward Compatibility نیز گفته میشود، به یک سختافزار یا نرمافزاری اشاره دارد که بدون هیچ مشکلی میتواند از نسخههای قدیمیتر سیستم و یا سیستمهای دیگر استفاده کند. در این نوع هارد فورک، نودهای جدید قادر خواهند بود تنها با کسانی که با ورژن جدید کار میکنند ارتباط برقرار کنند. بنابراین بلاک چین شکافته شده و به دو شبکه مجزا تقسیم میشود که یکی با قوانین قدیمی و دیگری با قوانین جدید کار میکند.
پس از این اتفاق دو شبکه به صورت موازی به فعالیت خود ادامه میدهند. هر دو به تولید بلاک جدید ادامه داده و میزبان تراکنشها هستند، با این تفاوت که روی همان بلاک چین کار نمیکنند. تمام نودهایی که تا قبل از هاردفورک بر بستر یک بلاک چین فعالیت میکردند، پس از هارد فورک بلاکها و تراکنشهای متفاوتی خواهند داشت.
به دلیل وجود تاریخچه مشترک، اگر یک کاربر قبل از هارد فورک سکهای در اختیار داشته باشد، پس از هارد فورک نیز سکه او روی هر دو شبکه وجود خواهد داشت. فرض کنید که شما قبل از شکل گیری هارد فورک در بلاک شماره 600,000، پنج بیت کوین داشتید. شما میتوانید 5 سکه خود را در زنجیره قبلی و در بلاک شماره 600,001 خرج کنید ولی قادر نخواهید بود آنها را در بلاک شماره 600,001 در بلاک چین جدید خرج کنید. اما با در نظر گرفتن این موضوع که کریپتوگرافی شبکه تغییر نکرده است، کلیدهای خصوصی شما هنوز 5 سکه را در شبکه جدید نگه میدارد.
ظهور بیت کوین کش در سایه هارد فورک
از معروفترین هاردفورکهای انجام شده میتوان به هاردفورک بیت کوین در سال 2017 اشاره کرد که طی آن این ارز دیجیتال به دو ارز بیت کوین و بیت کوین کش تقسیم شد. این هارد فورک پس از اینکه بحث و گفتگوهای زیادی بر سر مسئله مقیاسپذیری بیت کوین صورت گرفت و انتقادات زیادی به آن وارد شد صورت گرفت. طرفداران بیت کوین کش خواهان افزایش اندازه بلاک این ارز دیجیتال بوده و طرفداران بیت کوین مخالف این تغییر بودند.
برخی معتقدند که افزایش اندازه بلاک به اصلاح قوانین این ارز دیجیتال نیاز خواهد داشت. این اتفاق قبل از وقوع سافت فورک سگ ویت (SegWit) بود و در آن زمان نودها تنها قادر بودند بلاکهای کوچکتر از 1 مگابایت را بپذیرند. اگر بلاکی با حجم 2 مگابایت تشکیل میشد، حتی در صورت معتبر شناخته شدن آن، بلاک مذکور توسط سایر نودها رد میشد. تنها نودهایی که نرم افزار خود را تغییر داده بودند میتوانستند بلاکهای بزرگتر از 1 مگا بایت را بپذیرند.
سافت فورک چیست؟
سافت فورک هم مانند هارد فورک نوعی به روز رسانی در نرم افزارهای Backward Compatibility است. با این تفاوت که نودهای به روز رسانی شده هنوز هم میتوانند با نودهایی که به روز رسانی نشدهاند ارتباط برقرار کنند. در واقع آنچه معمولا در یک سافت فورک اتفاق میافتد، اضافه شدن قانونی است که با قوانین قدیمی تداخلی ندارد.
این بدان معناست که شرکت کنندگانی که نرم افزار خود را به روز رسانی نکردهاند نیز میتوانند تراکنشها را اعتبار سنجی یا آنها را تایید کنند. پروسه پیادهسازی سافت فورک از هارد فورک سادهتر است به این دلیل که لزوما تمام افراد اقدام به به روزرسانی نرم افزار خود نمیکنند. از طرفی همه شرکت کنندگان بلاکهای جدید را تشخیص میدهند و عملکرد آنها با شبکه سازگار است. بنابراین میتوان گفت سافت فورک یک مکانیسم ارتقا تدریجی است که با محدود کردن قابلیتها برای کسانی که نرم افزار خود را به روز رسانی نکردهاند، آنها را به آپدیت نرم افزار خود تشویق میکند.
برای مثال اگر در سافت فورک انجام شده سایز بلاکها از 1 مگابایت به 800 کیلو بایت برسد، نودهایی که نرم افزار خود را آپدیت نکردهاند در سافت فورک میتوانند تراکنشهای جدید را ببینند. اما اگر ماینری که نرم افزار خود را به روز رسانی نکرده است بخواهد بلاک جدیدی را ثبت کند، بلاک او توسط شبکه رد میشود. بنابراین عدم به روز رسانی نرم افزار در سافت فورک ارتباط شما را به طور خودکار با شبکه قطع نمیکند و شما هنوز هم میتوانید با نودهایی که قوانین جدید را نپذیرفتهاند ارتباط برقرار کنید اما برخی اطلاعاتی که به دست شما میرسد فیلتر میشود.
سافت فورک سگویت
سافت فورک سگویت که پس از هارد فورک بیت کوین شکل گرفت یکی از بهترین نمونه سافت فورکهای انجام شده در ارزهای دیجیتال است. سگویت (SegWit) که کوتاهشدهی عبارت Segregated Witness است، در واقع یک طرح بهبود بیت کوین است که در راستای رفع دو مشکل عمده اجرا و پیادهسازی شد. هدف این سافت فورک، در درجه اول فراهم آوردن شرایطی برای محافظت از انعطافپذیری (Malleability) تراکنشها و در گام بعدی افزایش ظرفیت بلاک (Block Capacity) در شبکه بلاک چین بیت کوین است. افراد در این آپدیت قالب بندی قوانین را زیر پا نمیگذارند و هنوز هم میتوانند بلاکها و تراکنشها را تایید کنند. با گذشت بیش از دو سال از پیادهسازی سگویت تمامی نودها به روز رسانی نشدهاند و هیچ فوریتی برای این تغییر وجود ندارد.
هارد فورک یا سافت فورک؛ کدام بهتر است؟
اصولا هارد فورک و سافت فورک هر کدام برای رسیدن به اهداف مختلفی ارائه شدهاند. هارد فورکهای جنجالی میتوانند اعضای جامعه را به دو گروه مختلف تقسیم کنند ولی اگر به صورت برنامهریزی شده صورت بگیرند، با اصلاح نرم افزار میتوانند تمامی افراد حاضر در شبکه را بر سر میز توافق بنشانند.
اما سافت فورکها گزینه انعطاف پذیرتری هستند. این بدان معنی است که شما از یک سری محدودیت ها برای ادامه کار با نرم افزار خود روبه رو هستید، اما این موضوع هیچ مغایرتی با قوانین قبلی ندارد. بنابراین اگر فورک شکل گرفته از انعطاف کافی برخوردار باشد دیگر نگرانی برای متلاشی شدن شبکه وجود نخواهد داشت.
نتیجهگیری
هارد فورک و سافت فورک از اهمیت فوقالعادهای برای دست یافتن به موفقیت طولانی مدت شبکههای بلاک چین برخوردارند. آنها این امکان را فراهم میسازند که سیستمهای غیرمتمرکز علی رغم فقدان یک مقام مرکزی، تغییرات لازم را ایجاد کرده و پیشرفت کنند.
فورکها سبب میشوند که بلاک چینها و ارزهای دیجیتال همزمان با توسعه خود، از ویژگیهای جدید نیز بهرهمند شوند. بدون آنها پروتکلها با همان قوانین همیشگی خود کار کرده و به روز رسانی نخواهند شد.
منبع: academy.binance.com