فورک در بلاکچین؛ ۰ تا ۱۰۰ هارد فورک و سافت فورک در ارز دیجیتال
فورک بلاکچین (Blockchain Fork)، همان چیزی است که وقتی جامعه توسعهدهندگان یک شبکه بلاکچینی، ایدههای جدیدی ارائه میدهند یا برای عملکرد بهتر شبکه نیاز به تغییر کد آن دارند، اتفاق میافتد. بسیاری از ارزهای دیجیتال که امروز وجود دارند، از این طریق شروع به فعالیت کردند و فورک یک رمزارز دیگر هستند؛ به عنوان مثال، بیتکوین کش یک فورک از شبکه بیتکوین است. در ادامه این مقاله از صرافی ارز دیجیتال ایرانیکارت توضیح خواهیم داد که فورک در بلاکچین چیست؟ چگونه کار میکند؟ چه انواعی دارد؟ و چرا برای بلاکچینها مهم است؟
فورک Fork چیست؟
«فورک» (Fork) در معنای لغوی به معنای چنگال است. این اصطلاح در دنیای برنامهنویسی به معنی انشعاب جدیدی از یک برنامه با کدی جدید و بر مبنای کد قبلی است. به عبارت دیگر، هنگامی عدهای از برنامهنویسان بخواهند یک برنامه را ارتقا دهند یا ویژگیهای جدیدی به آن اضافه کنند، یک انشعاب یا فورک جدید در کد منبع آن راهاندازی میکنند. در دنیای ارزهای دیجیتال نیز فورک تقریبا به صورتی مشابه تفسیر میشود و کاربردی مشابه دارد.
همانطور که احتمالا میدانید، ارزهای دیجیتال بر مبنای یک برنامه کامپیوتری و یک پایگاهداده عظیم به نام بلاکچین (Blockchain) کار میکنند. این برنامه کامپیوتری طبق اصول و قوانینی خاص به دادههای بلاکچین دسترسی پیدا کرده و از آنها برای تایید تراکنشها استفاده میکند. به عنوان برخی از قوانینی که در پروتکل شبکه بیتکوین وجود دارند، میتوان به این موارد اشاره کرد: زمان ایجاد هر بلاک جدید، ۱۰ دقیقه است یا این که تعداد کل بیتکوینها، محدود به ۲۱ میلیون واحد BTC تعیین شده است.
فورک بلاکچین چرا ممکن است اتفاق بیفتد؟
تا وقتی همه چیز بهخوبی عمل کند و همه از نحوه عملکرد یک ارز دیجیتال راضی باشند، صحبتی از فورک به میان نمیآید. در مقابل، وقتی مشکلی از جمله هکشدن یا مواردی از این قبیل، در آن ارز دیجیتال رخ دهد که نارضایتی کاربران از عملکرد آن را به دنبال داشته باشد، ایجاد یک فورک جدید، یکی از راهحلهای پیشنهادی است.
به عنوان مثال، در سال ۲۰۱۷، مناقشهای در جامعه بیتکوین بر سر مشکل زمان تراکنشها و کارمزد آنها شکل گرفت؛ در نهایت عدهای از توسعهدهندگان، فورک جدیدی از بیتکوین ایجاد کردند که با افزایش سایز بلاکها باعث کاهش زمان تایید تراکنشها و کارمزد آنها شد. این فورک جدید، «بیتکوین کش» (Bitcoin Cash) نام گرفت.
به عبارت سادهتر، میتوان گفت که فورکها به هدف ارتقای شبکه یک ارز دیجیتال ایجاد میشوند. برای ایجاد یک فورک جدید، کد منبع فعلی یک ارز دیجیتال مورد بازبینی قرار گرفته و مشکلات آن برطرف میشود یا ویژگیهای جدیدی به آن اضافه خواهد شد. سپس کد نهایی به صورت یک فورک جدید از آن ارز دیجیتال، اعلام موجودیت میکند.
بلاکچین موردنیاز در هر فورک جدید، یک نسخه از بلاکچین اصلی (قبل از زمان فورک شدن) را کپی میگیرد. سپس تراکنشهای جدید بعد از تاریخ فورک را در شبکه جدید ارتقا یافته، دنبال میکند. در نظر داشته باشید که فورکها همیشه منجر به ایجاد یک رمزارز جدید نمیشوند؛ برخی از آنها همان شبکه قبلی را ارتقا داده و دنبال میکنند (بلاکچین جدیدی ایجاد نمیشود)، برخی دیگر نیز منجر به ایجاد یک رمزارز جدید با یک شبکه بلاکچینی جدید خواهند شد.
انواع فورک در شبکه
فورکها در بلاکچین به طور کلی به دو نوع: «سافت فورک» (SOFT FORK) و «هارد فورک» (HARD FORK) تقسیم میشوند. تفاوت میان این دو فورک در سازگارپذیری آنها با بلاکچین منشأ است.
هارد فورک
هارد فورک در بلاکچین یک ارز دیجیتال، یک ارتقا از نرمافزار پروتکل آن ارز دیجیتال است که به طور دائم شبکه بلاکچینی آن را به دو زنجیره جداگانه تقسیم میکند؛ این امر طوری اتفاق میافتد که گرهها در نسخه جدید پروتکل نتوانند نسخه قدیمیتر بلاکچین را بپذیرند. از آنجایی که هارد فورک، یک شبکه بلاکچین مجزا ایجاد میکند که از شبکه قبلی جدا شده است؛ بنابراین یک توکن ارز دیجیتال جدید صادر و در بلاکچین جدید استفاده میشود.
از نظر فنی، بعد از رویداد هارد فورک در یک بلاکچین، شبکه همه گرهها را مجبور میکند تا با جدیدترین نسخه پروتکل مطابقت داشته و آن را ارتقا دهند. با این حال، برخی همان شبکه قدیمی را ادامه میدهند؛ این عدم توافق باعث میشود که پروتکل ارتقا یافته به طور دائم از نسخه قبلی جدا شود. هارد فورک، قوانین جدید الگوریتمها و ساختارهای پایگاهداده را برای بلاکچین جدید به شدت تغییر میدهد. این حالت ارتقا را میتوان به دو نوع اصلی زیر دستهبندی کرد:
هارد فورک های برنامه ریزی شده (Planned Hard Forks)
در یک هارد فورک برنامهریزی شده، شرکتکنندگان به طور داوطلبانه به ارتقای شبکه میپردازند تا از قوانین بلاکچین و نقشه راه اولیه آن پیروی کنند. کسانی که ارتقا نمیدهند با بلاکچین قدیمی میمانند و از آن استفاده میکنند که اغلب شرکتکنندههای بسیار کمتری دارد. به عبارت دیگر، میتوان گفت که یک هارد فورک برنامهریزی شده از قبل برای آن آمادگی وجود دارد؛ به عنوان یک نمونه از این نوع هارد فورک، میتوان به ارتقای اتریوم از نسخه اثبات کار قبلی خود به نسخه اثبات سهام امروزی آن اشاره کرد.
هارد فورک بحث برانگیز (Controversial Hard Fork)
هارد فورک بحثبرانگیز به علت اختلاف نظر میان اعضای شبکه اتفاق میافتد و موجب میشود که بخشی از شرکتکنندگان، زنجیره جدیدی که از نظر خودشان بهتر است را با تغییرات زیادی در کد قبلی ایجاد کنند. در یک هارد فورک بحثبرانگیز، شبکه بلاکچین تقسیم شده به دو بلاکچین مختلف ناسازگار تقسیم میشود که هر کدام جامعه و نقشه راه خود را دارند. هارد فورک بیتکوین کش از شبکه بیتکوین، نوعی هارد فورک بحثبرانگیز است.
مزایا و معایب هارد فورک ها
فواید زیادی برای هارد فورکها در نظر گرفته شده است که برخی از آنها عبارتاند از:
- احتمالا مسائل امنیتی را بهبود بخشد.
- میتواند عملکرد شبکه شامل مواردی نظیر افزایش سایز بلاک و مکانیزم اجماع را ارتقا دهد.
- ممکن است پاداش استخراج ارز دیجیتال و نحوه عملکرد ماینرها را تغییر دهد.
- هارد فورک همچنین میتواند به برخی از شرکتکنندگان در یک جامعه بلاکچین این فرصت را بدهد که اگر دیدگاه متفاوتی برای پروژه بلاکچین خود دارند، راه خود را جدا کنند.
با این حال، هارد فورک معایبی از جمله موارد زیر را نیز دارد:
- با ایجاد یک ارز دیجیتال جدید و مشابه، سردرگمی در میان سرمایهگذاران به وجود میآید.
- از آنجایی که پس از یک هارد فورک، هکرهای بیشتری از نقاط ضعف شبکه بلاکچین اصلی آگاه میشوند، ممکن است شبکه دوباره مورد حمله ۵۱ درصدی واقع شود.
- نسخه قدیمی بلاکچین که احتمالا پس از هارد فورک همچنان وجود خواهد داشت، حاوی نقصهایی (امنیتی یا عملکردی) که هارد فورک برای رفع آنها طراحی شده بود، باقی میماند.
سافت فورک
سافت فورک در بلاکچین یک رمزارز، ارتقا یا آپدیتی از شبکه است که سازگار با زنجیره قبلی انجام میشود. به عبارت دیگر، مشابه بهروزرسانیهایی که اغلب در گوشیهای هوشمند اتفاق میافتد، سافت فورک را میتوان بهعنوان یک ارتقای جزئی از نرمافزار بلاکچین در نظر گرفت؛ اگر این بهروزرسانیها فوراً دانلود نشوند، عملکرد گوشی معمولاً همچنان معتبر است. سافت فورکها در بلاکچین نیز به روشی مشابه عمل میکنند.
این نوع ارتقا به گرههایی که نسخه قبلی بلاکچین را اجرا میکنند، اجازه میدهد تا با گرههای دیگر، هرچند با برخی محدودیتها در عملکرد، تعامل داشته باشند؛ بر خلاف هارد فورکها، سافت فورکها یک ارز دیجیتال جدید تولید نمیکنند. با این حال، شبکه میتواند بهآرامی به قوانین جدید مجهز شود و ارز دیجیتال در درازمدت پایدارتر شود. سافت فورکها نیز معمولا در دو حالت زیر اجرا میشوند:
سافت فورک فعال شده توسط کاربر (UASF)
مفهوم سافت فورک فعال شده توسط کاربر (User Activated Soft Fork)، بعد از آپدیت شبکه بیتکوین در بهروزرسانی «سگویت» (SegWit) به وجود آمد. این حالت از سافت فورک به ارتقایی اشاره دارد که توسط «گرههای کامل» (Full Nodes) اجرا میشود. یک UASF به پشتیبانی و هماهنگی زیادی در پروتکل شبکه و شرکتکنندهها نیاز دارد.
سافت فورک فعال شده توسط ماینر (MASF)
سافت فورک فعال شده توسط ماینر (Miner Activated Soft Fork)، آپدیتی است که مانند سافت فورک UASF، یک تغییر یا انتقال از شبکه به مجموعه جدیدی از قوانین اجماع ایجاد میکند. تفاوت بین MASF و UASF در این است که MASF توسط ماینرها (نه فقط گرههای کامل) و با استفاده از قدرت هش آنها فعال میشود.
هارد فورک و سافت فورک چه تفاوتی با همدیگر دارند؟
زمانی یک سافت فورک ایجاد میشود، شرکتکنندهها در شبکه که همچنان با نسخه اصلی بلاکچین منشأ کار میکنند، نیازی به ارتقا نرمافزار خود ندارند؛ زیرا سافت فورکها با نسخه قدیمی بلاکچین منشأ سازگار هستند و ادامه آن را دنبال میکنند. با جزئیات بیشتر، در سافت فورکها انشعاب جدیدی از بلاکچین اصلی ایجاد نمیشود، بلکه فقط ارتقا مییابد؛ بنابراین ارز دیجیتال جدیدی هم ایجاد نمیشود. برای درک سادهتر سافت فورکها، میتوانید به سازگارپذیری فایل نسخه نهایی نرمافزار Word با نسخههای قدیمیتر آن فکر کنید.
این در حالی است که هارد فورکها با بلاکچین اصلی ارز دیجیتال منشأ، سازگاری ندارند و اگر شرکتکنندهها بخواهند در هارد فورک جدید فعالیت کنند، باید نسخه نرمافزار خود را به نرمافزار هارد فورک جدید ارتقا دهند. در واقع، هارد فورکها ارز دیجیتال را به دو انشعاب: یکی ادامه بلاکچین قبلی و دومی، بلاکچین یک ارز دیجیتال جدید تقسیم میکنند.
ویژگی | هارد فورک | سافت فورک |
سازگاری با زنجیره و قوانین قبلی | خیر | بله |
ایجاد اختلال در شبکه | قابلتوجه | حداقل |
موارد استفاده | ایجاد تغییرات عمده در بلاکچین، ایجاد ارزهای دیجیتال جدید | معرفی ویژگیهای اختیاری، رفع اشکلات |
نتیجه فورک | دو زنجیره با هم وجود دارند و رشد میکنند | زنجیره ارتقا یافته ادامه مییابد و دیگری از بین میرود |
فورک موقت به چه معناست؟
علاوه بر هارد فورک و سافت فورک، یک نوع انشعاب در شبکههای بلاکچینی وجود دارد که به آن «فورک موقت» (Temporary Fork) میگویند. فورک موقت که فقط در بلاکچینهای اثبات کار (PoW)، مانند بلاکچین بیتکوین، اتفاق میافتد، زمانی رخ میدهد که یک بلاک همزمان توسط چند ماینر مجزا استخراج میشود؛ یعنی چند ماینر به طور همزمان عدد نانس (Nonce) آن بلاک را کشف میکنند.
از آنجایی که هر کدام از ماینرها، یک زنجیره بلاک جدید به آن بلاک استخراج شده اضافه میکند، به صورت موقت چند فورک در بلاکچین ظاهر میشود؛ فورکهای ایجاد شده موقت هستند، زیرا تا زمانی اهمیت دارند که طولانیترین زنجیره برنده و بهعنوان بلاکچین اصلی در نظر گرفته میشود. سپس دیگر زنجیرههای کوتاهتر رها و یتیم تلقی میشوند.
فورک چه تأثیراتی در بازار ارز دیجیتال دارد؟
تاثیر هارد فورک و سافت فورک روی ارز دیجیتال فورک شده، بسته به شرایط میتواند متفاوت باشد. هارد فورکها میتوانند منجر به افزایش تکهتکهشدن و سردرگمی در جامعه شوند، به خصوص اگر چندین فورک ایجاد شود. همچنین ممکن است منجر به از دست دادن اعتماد کاربرانی شود که برای ارتقا و پذیرش زنجیره جدید مردد هستند. سپس نوسان قیمت و عدم اطمینان در بازار آن ارز دیجیتال ایجاد شود.
در مجموع میتوان گفت که تاثیر فورکها به شرایط خاص پیرامون به روز رسانی بستگی دارد؛ در حالی که هر دو نوع فورک پتانسیل ایجاد تغییرات قابل توجه در بلاکچین را دارند، برنامهریزی دقیق و مرحله به مرحله، میتواند به حداقل رساندن اثرات منفی و تضمین ایجاد یک ارتقای مفید کمک کند.
چرا پروتکل های ارزهای دیجیتال نیاز به تغییرات و بهروزرسانی دارد؟
همانطور که بالاتر اشاره شد، تا زمانی در شبکه یک ارز دیجیتال همه چیز خوب پیش برود، نیازی به ایجاد فورک یا بهروزرسانی نیست. اما در صورت وجود برخی مسائل نظیر هکشدن، مشکلات امنیتی، نیاز به افزایش مقیاسپذیری و بهبود عملکرد شبکه، لازم است که رمزارز موردنظر به ارتقای خود بپردازد. به طور کلی، تغییرات و بهروزرسانیها به دلایلی از جمله موارد زیر رخ میدهند:
- برای رفع موانع امنیتی
- تلاش برای حفظ یک کد موجود که قابل جایگزین نیست
- تلاش برای بازگرداندن تراکنشها در زمان باطل کردن یک هک در شبکه
- افزودن قابلیتها یا ویژگیهای جدید
- حل تعارض و اختلافنظرهای بین توسعهدهندگان
- تغییر ساختار کارمزدهای شبکه (فی شبکه)
- بازنگری پاداش استخراج در شبکههای PoW
فورک های شبکه های مختلف
تاکنون هارد فورکها و سافت فورکهای زیادی در تاریخچه بازار رمزارزهای مختلف اتفاق افتاده است، در این بخش به معرفی برخی از آنها میپردازیم.
سگویت (2017)
سگویت (SegWit) یکی از شناختهشدهترین فورکهای شبکه بیتکوین است که به هدف اصلی افزایش ظرفیت بلاکها صورت گرفت؛ این ارتقا اجازه میدهد که تراکنشهای بیشتری در یک بلاک قرار گیرند، بدون اینکه قوانین قبلی نقض شوند. همچنین ارتقای سگویت یک نوع آدرس جدید (Bech32) در شبکه بیتکوین ایجاد کرد که گرههای کامل از آدرسهای قدیمی بیتکوین (P2SH) میتوانستند به آدرسهای جدید Bech32 تراکنش انجام دهند.
بیتکوین کش (آگوست 2017)
آپدیت سگویت در ابتدا به عنوان یک سافت فورک معرفی شد، اما به دلیل برخی اختلافات در بین توسعهدهندگان و شرکتکنندگان شبکه در مورد اجرای آن، به هارد فورک تبدیل شد و منجر به راهاندازی یک ارز دیجیتال جدید به نام بیتکوین کش (BCH) شد. به همین خاطر است که بیتکوین کش را نمونه کاملی از یک هارد فورک بحثبرانگیز میدانند. جدایی شبکه بیتکوین کش از زنجیره اصلی بیتکوین در یکم آگوست 2017 در بلاک شماره 478٬558 انجام شد.
بیت کوین اس وی (Bitcoin SV)
یک سال بعد از ایجاد بیتکوین کش، این فورک از شبکه بیتکوین با هارد فورک خود مواجه شد که در حال حاضر با نام بیتکوین SV (Bitcoin Satoshi Vision) شناخته میشود. از آنجایی که بیتکوین اس وی، هارد فورک، هارد فورک شبکه بیتکوین است، به عنوان هارد فورک فرعی بیتکوین شناخته میشود.
سافت فورک تپ روت (نوامبر 2021)
ارتقای تپ روت (Taproot) در شبکه بیتکوین ماهیتی فنی دارد، اما پیامدهای آن برای کاربران عادی این شبکه به راحتی قابل درک است؛ این آپدیت با افزودن امضاهای رمزنگاری جدید و بهبود سازگاری با زنجیره جانبی لایتنینگ (Lightning network)، مزایا و عملکردهای جدیدی به بلاکچین بیتکوین اضافه میکند. تپ روت یک ارتقای سافت فورک محسوب میشود، زیرا گرههای کامل که شبکه بیتکوین را اجرا میکنند، گزینه استفاده از تپ روت را دارند، اما الزامی نیست که نرمافزار خود را با کد تپ روت بهروز کنند.
فورک های اتریوم
مانند بیتکوین، اتریوم نیز پس از عرضه شدن، دستخوش چندین ارتقا شده است. بسیاری از تغییرات اتریوم هارد فورک و برخی نیز سافت فورک بودهاند. به عنوان مثال، ارتقای اتریوم 2.0 را میتوان به عنوان یکی از مهمترین آپدیتها در تاریخ ارزهای دیجیتال و بلاکچین در نظر گرفت که خود شامل چند مرحله ارتقای سافت فورک و هارد فورک میشود.
بیکن چین (دسامبر 2020): آغاز اتریوم ۲.۰
فورک بیکن چین (Beacon Chain)، اولین مورد از یک سری ارتقای چندگانه است که برای تغییر مکانیسم اجماع پروتکل اتریوم از اثبات کار به اثبات سهام (PoS) طراحی شده است. بیزانس (Byzantium)، قسطنطنیه (Constantinople)، استانبول (Istanbul)، برلین (Berlin)، لندن (London) و مرج (Merge) نیز برخی دیگر آپدیتهای سافت فورک اتریوم محسوب میشوند که عملکرد شبکه آن را تقویت بخشیدند.
هارد فورکهای اتریوم
معروفترین هارد فورکهای شبکه اتریوم عبارتاند از:
- فرانتیر (Frontier) در 30 جولای 2015
- فرانتیر تاوینگ (Frontier Thawing) در سپتامبر 2015
- هومستد (Homestead) در مارس 2016
- هارد فورک اتریوم کلاسیک (Ethereum Classic) در جولای 2016
هارد فورک کاردانو
کاردانو نیز چند مرحله آپدیت در نقشه راه خود دارد که عملکرد شبکه را ارتقا میدهند. طبق آخرین نسخه از نقشه راه کاردانو، ۵ فاز اصلی به نامهای بایرون (Byron)، شلی (Shelley)، گوگن (Goguen)، باشو (Basho) و ولتر (Voltaire) وجود دارند که هر کدام به نوعی شبکه کاردانو را تقویت میکنند. برای اجرای دقیق فازهای ارتقای کاردانو، هارد فورکهایی در شبکه این ارز دیجیتال ایجاد میشوند که برخی از آنها عبارتاند از:
- هارد فورک مری (Mary)
- هارد فورک آلونزو (Alonzo)
- هارد فورک واسیل (Vasil)
هاردفورک و سافت فورک؛ راهی برای عملکرد بهتر شبکه
در این آموزش به طور کامل به معرفی هارد فورک و انواع بروزرسانیهای بلاکچینی پرداختیم؛ توضیح دادیم که هارد فورک به تغییر اساسی در پروتکل یک شبکه بلاکچین اشاره دارد که به طور موثر منجر به دو شاخهشدن میشود: یکی از پروتکل قبلی و دیگری از نسخه جدید پیروی میکند. این در حالی است که سافت فورک، دو شاخه شدن شبکه بلاکچینی را به دنبال ندارد، بلکه همان نسخه قبلی با تغییراتی جزئي به رشد خود ادامه میدهد.