فورک چیست – تفاوت هارد فورک و سافت فورک بلاکچین
فورک (Fork) در بلاکچین عبارت است از ایجاد تغییرات و افزودن ویژگی جدید به بلاکچین. پیاده سازی یک ویژگی جدید در شبکه های بلاکچین بسیار چالش برانگیز است. چون به خاطر نبود یک قدرت مرکزی، نمی توان تمام نودها (Node) را وادار به استفاده از ویژگی جدید کرد. بنابراین تغییرات باید به گونه ای باشد که نودهایی که از ویژگی جدید استفاده نمیکنند نیز بتوانند در شبکه به خوبی فعالیت کنند. از طرفی گاهی اوقات تغییرات به گونه ای است که همزیستی مسالمت آمیز نودهای قدیمی و نودهای جدید امکانپذیر نیست و لازم می شود که همه نودها به اجبار از ویژگی جدید استفاده کنند.
سافت فورک ها جهت پیاده سازی عملکردهای جدید و ارتقا یافته، بیشتر در بلاک چین بیت کوین و اتریوم استفاده شده است.
در این مقاله شما را با انواع فورک در بلاکچین اعم از هارد فورک (Hard Fork) و سافت فورک (Soft Fork) آشنا خواهیم کرد و چند مثال ار فورک های انجام شده در بلاکچین را بررسی خواهیم کرد.
اجزای تشکیل دهنده شبکه بلاکچین
برای درک نحوه عملکرد فورک، ابتدا باید با موجودیت های بلاکچین آشنا شویم. برخی از این موجودیت ها مشارکت کننده و تاثیرگذار در پروسه تصمیم گیری در شبکه بلاکچین هستند و برخی فقط از خدمات شبکه استفاده می کنند و تأثیرگذاری خاصی ندارند. اجزای تشکیل دهنده شبکه بلاکچین را می توان به 4 گروه تقسیم بندی کرد:
- توسعه دهندگان (Developers)
- ماینرها (Miners)
- فول نودها (Full Nodes)
- لایت نودها (Light Nodes)
توسعه دهندگان (Developers)
توسعه دهندگان مسئول توسعه و بروزرسانی کدها در بلاکچین هستند. بدون آنها، شما هیچ نرم افزاری برای اجرا و هیچ شخصی برای رفع اشکالات یا افزودن ویژگی های جدید به بلاکچین نخواهید داشت. سورس کد کوین ها در شبکه بلاکچین در دسترس عموم (Public) بوده و هرکسی می تواند در روند بهبود سورس کد پروژه مشارکت داشته باشد. بنابراین توسعه دهندگان می توانند تغییراتی را پیشنهاد دهند تا سایر توسعه دهندگان مرور و بررسی کنند. توسعه دهندگان اعضای قدرتمندی در شبکه هستند.
ماینرها (Miners)
ماینرها (استخراج کنندگان) تأمین کننده امنیت شبکه بلاکچین هستند و شبکه را ایمن می کنند. بدون رقابت سالم در استخراج، بلاکچین ممکن است ربوده (Hijack) یا متوقف (Halt) شود. زمانی که یک بلوک جدید توسط یک ماینر خرابکار تولید می شود، سیستم به این توافق میرسد که این بلوک معتبر نیست و خیلی زود سایر ماینرها این بلوک نامعتبر (Orphan Block) را رها می کنند.
ماینرها کد رمز ارزها را اجرا می کنند و منابع خود را صرف افزودن بلاک های جدید به بلاک چین میکنند. به عنوان مثال، در شبکه بیت کوین، آنها این کار را از طریق پروتکل اثبات کار (Proof of Work) انجام می دهند. آنها به خاطر کارهایی که برای افزودن هر بلاک به بلاک چین انجام میدهند از شبکه، پاداش (Reward) دریافت می کنند.
فول نود (Full Node)
فول نودها ستون فقرات شبکه هستند. آنها تأیید کننده بلاک ها و تراکنش های شبکه و ارسال و دریافت کننده تراکنش ها هستند و همچنین نگهدارنده یک نسخه کامل از بلاک چین هستند. لازم به ذکر است که یک فول نود بیتکوین می تواند همزمان توسعه دهنده یا ماینر نیز باشد.
لایت نود (Light Node)
برخی موجودیت ها در شبکه بلاکچین فقط استفاده کننده از خدمات هستند و مشارکتی در شبکه ندارند. کیف پول هایی که روی گوشی و لپ تاپ نصب می شوند (Wallet) با اینکه به طور گسترده مورد استفاده قرار میگیرند ولی نمی توان آنها را به عنوان مشارکت کننده در نظر گرفت و صرفاً یک لایت نود هستند.
فورک چیست؟
پروتکل شبکه بلاکچین اختصاصی نیست. بلکه اوپن سورس (Open Source) است و شما می توانید هر ویرایشی که می خواهید روی آن انجام دهید. بنابراین می توان پروتکل شبکه بلاکچین را تغییر داد و یک شبکه بلاکچین جدید (فورک) ایجاد کرد.
انواع فورک در بلاکچین
فورک در بلاکچین دو نوع دارد:
- سافت فورک (Soft Fork)
- هارد فورک (Hard Fork)
سافت فورک (Soft Fork)
سافت فورک یعنی بروزرسانی نرم افزاری و اعمال تغییرات روی پروتکل های شبکه بلاکچین به صورتیکه سازگاری با ورژن های قبلی (Backwards Compatible) حفظ شود. یعنی همه نودها چه بروزرسانی شده باشند چه نه، همچنان بلاک های جدید را تشخیص داده و سازگاری خودشان را با شبکه حفظ خواهند کرد. نودهایی که نرم افزار آنها بروزرسانی نشده است، هنوز قادر به شرکت در تأیید تراکنش ها خواهند بود. چون بلاک های جدید برای نودهای قدیمی نیز معتبر خواهد بود. ولی تراکنش های معتبر قبلی (بلاک های قبلی) دیگر معتبر نخواهند بود.
نکته ای که باید به آن توجه شود این است که عملکرد یک نود آپگرید نشده تحت تأثیر قرار می گیرد. ماینرهای آپگرید نشده سعی می کنند بلاک های جدیدی را استخراج کنند ولی بلاک های آنها توسط شبکه رد می شود. بنابراین، سافت فورک یک مکانیزم بروزرسانی تدریجی است. گره هایی که هنوز ارتقا پیدا نکرده اند برای اینکه عملکرد آنها کاهش پیدا نکند، این انگیزه را پیدا میکنند که به نسخه جدید بروزرسانی کنند. پیاده سازی سافت فورک ساده تر است زیرا کافی است اکثریت گره ها، ارتقای نرم افزاری انجام دهند و اکثریت ماینرها مجاب شوند تا از قوانین جدید پیروی کنند.
انواع سافت فورک
Miner Activated Soft Fork (MASF) : اغلب ماینرها آپگرید شده و مجاب به رعایت قوانین جدید می شوند.
User Activated Soft Fork (UASF) : نودها خودشان بدون حمایت ماینرها، رعایت قوانین جدید را اجباری می کنند.
هارد فورک (Hard Fork)
به تغییر پروتکل یا واگرایی از ورژن قبلی بلاکچین، هارد فورک گفته می شود. هارد فورک بروزرسانی نرم افزاری است که در آن سازگاری با نسخه های قبلی وجود ندارد. یعنی گره ها برای این که بتوانند در شبکه فعالیت کنند و تراکنش های جدید را تأیید کنند، مجبور هستند از نسخه نرم افزاری جدید استفاده کنند. در هارد فورک همه گره ها مجاب به رعایت قوانین جدید هستند و باید آپگرید شوند. گره های آپگرید نشده، از شبکه کنار گذاشته می شوند و نمی توانند تراکنش های جدید را تایید کنند.
این جداسازی منجر به یک واگرایی دائمی و تشکیل دو زنجیره اصلی و زنجیره فرعی در بلاکچین می شود. تازمانیکه که پشتیبانی در زنجیره فرعی، صورت بگیرد (ماینرها در آن زنجیره فعالیت داشته باشند) هر دو زنجیره اصلی و فرعی به طور همزمان وجود خواهند داشت (مثل اتریوم کلاسیک و بیت کوین کش)
انواع هارد فورک
- برنامه ریزی شده (Planned Hard Fork)
- جنجالی (Contentious Hard Fork)
هارد فورک برنامه ریزی شده
این نوع فورک، یک ارتقاء پروتکل است که قبلاً توسط تیم توسعه دهنده اعلام شده است. معمولاً قبل از انجام این نوع هارد فورک، اجماع بالایی از توسعه دهندگان پروژه و جامعه لازم است. ارز مونرو (Monero) یکی از هارد فورک های برنامه ریزی شده بلاکچین است که در January 2017 انجام شد.
هارد فورک جنجالی
این نوع هارد فورک زمانی اتفاق می افتد که ذینفعان مختلف پروژه با یک اختلاف نظر بزرگ روبرو هستند. هارد فورک های بحث برانگیز (جنجالی) معمولاً به این دلیل اتفاق می افتد که بخشی از جامعه معتقدند تغییرات عمده در کد ارزهای رمزنگاری شده، بلاک چین را تقویت می کند. یک مورد معروف از این نوع هارد فورک، بیت کوین کش است.
مزایا و کاربرد فورک در بلاکچین
وجود امکان فورک در بلاکچین، اجازه می دهد تا ارزهای جدید از طریق فورک، ویژگی های خوب ارزهای دیگر را در یک جا تجمیع کنند. برای مثال، داج کوین (Dogecoin) یک فورک از لاکیکوین (Luckycoin) است که خود آن نیز یک فورک از لایت کوین (Litecoin) است و لایت کوین هم یک فورک از بیتکوین (Bitcoin) است. به این ترتیب داج کوین به واسطه وجود امکان فورک در بلاکچین توانسته است ویژگی های خوب را به صورت انتخابی در خودش جمع کند.
ویژگی های خوبی که داج کوین از شبکه های دیگر به ارث برده عبارتند از:
- تشکیل بلوک 1 دقیقه ای از Luckycoin
- الگوریتم استخراج Scrypt (کارآمدتر از SHA-256 بیت کوین) را از Litecoin
- اندازه بلوک 1 مگابایتی را از Bitcoin
چند مثال از فورک بلاکچین
تغییر سایز بلاک بیت کوین (سافت فورک)
یک مثال از یک سافت فورک، این است که مثلا در قانون جدید اندازه بلوک از 1 مگابایت فعلی (1000 کیلوبایت) به 800 کیلوبایت تغییر کند.
اضافه شدن P2SH به بیت کوین (سافت فورک)
P2SH (pay-to-script hash ) یک سافت فورک که آدرس های چند امضاء (multi-signature addresses) را در شبکه بیتکوین امکانپذیر می سازد.
اتریوم کلاسیک (هارد فورک)
اتریوم کلاسیک (Ethereum Classic) یک پلتفرم اوپن سورس مبتنی بر بلاکچین است که استفاده از قرارداد هوشمند را امکانپذیر ساخته و یک زبان برنامه نویسی کامل (تورینگ کامل) دارد. در یکی از دائو (DAO) های اتریوم یک هک صورت گرفت. هرچند اقلیتی از جامعه از نظر فلسفی با تغییر بلاکچین مخالف بودند تا به هر قیمتی که شده ماهیت تغییرناپذیر بودن (immutability) شبکه بلاکچین محفوظ بماند، ولی از آنجا که وسعت این هک بسیار بزرگ بود، اتریوم برای خنثی کردن اثرات این هک، یک هارد فورک در شبکه انجام داد.
از آنجا که توسعه دهندگان اصلی اتریوم و اکثریت جامعه اتریوم با هارد فورک پیش رفتند، نماد اصلی اتریوم که ETH بود به این گروه تعلق پیدا کرد و آنها با همان نماد اصیل اتریوم شناخته شدند ولی اقلیتی که عقب ایستادند و بدون ارتقای نرم افزار همچنان به استخراج ادامه دادند، امروزه تحت عنوان اتریوم کلاسیک با نماد ETC شناخته می شوند.
بیت کوین کش (هارد فورک)
بیتکوین بروزرسانی های متعددی داشته که هر کدام یک فورک محسوب می شوند. بیت کوین کش (Bitcoin Cash) که گاهی اوقات با نام Bcash نیز شناخته می شود، یک اسپین آف (Spin-Off) یا آلت کوین (Altcoin) است که در سال 2017 از طریق هارد فورک از بیت کوین ایجاد شد و بیت کوین به دو ارز تقسیم شد:
- Bitcoin Cash (BCH)
- Bitcoin (BTC)
مزایای بیت کوین کش (BCH) نسبت به بیت کوین (BTC):
- هزینه انتقال کمتر است. بنابراین معاملات با آن (به جای BTC) موجب صرفه جویی پول شما می شود.
- انتقال سریع تر است. بنابراین، لازم نیست 10 دقیقه برای تأیید تراکنش بیت کوین منتظر بمانید!
- مقیاس پذیری بیشتری دارد. یعنی در هر ثانیه تراکنش های بیشتری قابل انجام است. بنابراین در مقایسه با بیتکوین، تعداد افراد بیشتری می توانند به طور همزمان از آن استفاده کنند.
نتیجه گیری
گاهی اوقات دلیل فورک شبکه، عدم توافق تیم توسعه در اعمال یک بروزرسانی جدید است. برای مثال، دلیل این که بیت کوین مجبور به ایجاد بیت کوین کش شد این بود که توسعه دهندگان بیت کوین می خواستند تغییرات مهمی در بیت کوین ایجاد کنند ولی نتوانستند در مورد این تغییرات به توافق برسند. بنابراین، گروه کوچکی از این توسعه دهندگان، بیت کوین را فورک کردند تا تغییرات جدید را اعمال کرده نسخه جدیدی از بیت کوین به نام بیت کوین کش ایجاد کنند.
اجرایی کردن فورک در شبکه بلاکچین فرآیند بسیار حساسی است. اگر توسعه دهندگان یک بلاکچین، کاربران را مجبور کنند تا از خواسته آنها پیروی کنند، پایان آن چندان جالب نخواهد بود. یکی از پارامترهای انتخاب شدن یک شبکه بلاکچین توسط کاربران، همین موضوع است. به این معنی که کاربران اختیار دارند تا بلاکچین مورد نظر خود را انتخاب کنند. توسعه دهندگان نمی توانند آنها را مجبور به استفاده و مشارکت در شبکه بلاکچین خود کنند. اگر مردم تصمیم بگیرند که از شبکه بلاکچین استفاده نکنند، ارزش کوین (Coin) آن شبکه پایین می آید. از دست رفتن ارزش کوین، مستقیماً روی سود ماینرها تأثیر می گذارد (ارزش پاداش آنها کمتر می شود) و با فراری شدن ماینرها از شبکه، امنیت شبکه پایین آمده و مرگ آن شبکه بلاکچین قطعی خواهد بود.
درباره مجید شبیری
کارشناس ارشد فناوری اطلاعات از دانشگاه صنعتی امیرکبیر. مدیر و مؤسس "علوم نوین امیرکبیر"، متخصص برنامه نویسی، شبکه، لینوکس و امنیت. از سال 84 همزمان با شروع تحصیلات دانشگاهی، وارد حوزه تخصصی مهندسی نرم افزار شدم و اکنون مشغول تحقیق، توسعه و آموزش در حوزه بلاک چین هستم و معتقدم بلاکچین به زودی فضای کسب و کارها را منقلب خواهد کرد.
نوشته های بیشتر از مجید شبیری
دیدگاهتان را بنویسید