با ظهور فناوری بلاکچین، رمزنگاریها به یکی از جنبههای کلیدی در دنیای دیجیتال تبدیل شدهاند. این فناوری بهعنوان پایگاه دادهای غیرمتمرکز و منبع باز، امکان ثبت و تأیید تراکنشها را بهصورت امن و شفاف فراهم میآورد. یکی از جنبههای مهم در توسعه و بهروزرسانی بلاکچینها، تغییرات اساسی در پروتکلهای شبکه است که تحت عنوان «فورک» (Fork) شناخته میشود. فورکها میتوانند به دو دسته اصلی تقسیم شوند: هارد فورک (Hard Fork) و سافت فورک (Soft Fork). این مقاله به بررسی دقیق این دو نوع فورک، دلایل وقوع آنها و تأثیرات آنها بر شبکههای بلاکچین میپردازد.
مفهوم بلاکچین
بلاکچین بهعنوان یک پایگاه داده توزیعشده و غیرمتمرکز عمل میکند که هر بلوک از دادهها تنها پس از تأیید بلوک قبلی معتبر میشود. این فناوری بهواسطهی تأییدات مکرر توسط نودها، امنیت و یکپارچگی شبکه را تضمین میکند. نودها، که در واقع ماشینهایی هستند که تراکنشها را اعتبارسنجی میکنند، نسخهای از بلاکچین را در اختیار دارند و اطمینان مییابند که تراکنشهای جدید با تاریخچهی بلاکچین مغایرت ندارند.
هارد فورک چیست؟
هارد فورک بهعنوان یک تغییر اساسی و دائمی در پروتکل بلاکچین تعریف میشود که منجر به جداسازی بلاکچین به دو نسخه مجزا میشود. در این حالت، برخی نودها به توافق نمیرسند و دو نسخه متفاوت از شبکه بهطور جداگانه اجرا میشود. بهعبارت دیگر، هارد فورک تغییراتی در قوانین شبکه ایجاد میکند که باعث میشود نسخه قدیمی دیگر نسخه جدید را معتبر نبیند.
تعریف و ویژگیها
هارد فورک به تغییراتی اشاره دارد که بهطور کلی نیاز به ارتقاء همه نودها به نسخه جدید پروتکل دارد و معمولاً با جداسازی زنجیره و ایجاد یک زنجیره جدید همراه است. در این فرآیند، کاربران که توکنهای خود را در زنجیره قدیمی دارند، بهطور معمول توکنهای معادل در زنجیره جدید دریافت میکنند، زیرا هر دو زنجیره تاریخچه مشابهی دارند.
دلایل وقوع هارد فورک
هارد فورکها میتوانند به دلایل مختلفی رخ دهند:
- افزودن قابلیتهای جدید: برای معرفی ویژگیهای جدید به شبکه.
- اصلاح خطرات امنیتی: برای حل مشکلات امنیتی و آسیبپذیریهای موجود.
- حل اختلافات درونجامعهای: برای رفع اختلافات بین اعضای جامعه رمزنگاری.
- بازگشت تراکنشها: در مواردی که نیاز به برگشت تراکنشهای اشتباه باشد.
آسیبپذیریها و مشکلات
هارد فورکها ممکن است به مشکلاتی از جمله:
- حمله ۵۱ درصدی: جایی که گروهی از ماینرها بیش از ۵۱ درصد قدرت محاسباتی را در اختیار دارند و میتوانند تاریخچه بلاکچین را تغییر دهند.
- حملات تکرار یا Replay Attakcs: جایی که یک موجودیت مخرب تراکنشها را در زنجیره فورکشده تکرار میکند و باعث اعتبار دادن به تراکنشهای تکراری میشود.
سافت فورک چیست؟
سافت فورک تغییراتی در نرمافزار بلاکچین است که با نسخههای قدیمیتر سازگار است و باعث میشود نودهای قدیمی همچنان نسخه جدید را معتبر ببینند. بهطور معمول بهعنوان یک بهروزرسانی ایمنتر در نظر گرفته میشود و امکان افزودن ویژگیهای جدید را بدون تغییر قوانین پایهای بلاکچین فراهم میآورد.
تعریف و ویژگیها
سافت فورک تغییرات کمتری نسبت به هارد فورک ایجاد میکند و نودهایی که بهروزرسانی نکردهاند، همچنان قادر به اعتبارسنجی تراکنشها و حفظ سازگاری با نسخه جدید خواهند بود. این بهروزرسانی معمولاً در سطح برنامهنویسی صورت میگیرد و بهبودهای جزئی را به شبکه اضافه میکند.
مقایسه با هارد فورک
سافت فورک مشابه بهروزرسانی سیستمعامل یک دستگاه است که برنامههای موجود با نسخه جدید سیستمعامل سازگارند. در مقابل، هارد فورک معادل تغییر کامل سیستمعامل است که باعث میشود برنامههای قبلی با نسخه جدید سازگار نباشند.
انواع هاردفورک و سافت فورک
انواع هاردفورک (Hard Fork)
هاردفورک به تغییری اشاره دارد که با نسخههای قبلی شبکه سازگار نیست و تمام شرکتکنندگان شبکه، برای ماندن در شبکه و استفاده از آن، باید به نسخه جدید مهاجرت کنند.
این تغییر معمولاً باعث ایجاد دو بلاکچین مستقل میشود که هرکدام دارای تاریخچهای مشابه تا نقطه فورک و سپس مسیری جداگانه هستند. انواع مهم هاردفورک عبارتاند از:
- هاردفورکهای برنامهریزیشده (Planned Hard Fork): این نوع هاردفورکها از پیش برنامهریزیشدهاند و به هدف بهروزرسانی پروتکل اجرا میشوند.
جامعه کاربران و توسعهدهندگان عموماً از تغییرات آگاه هستند و بهطور هماهنگ به نسخه جدید مهاجرت میکنند.- مثال: هاردفورکهای اتریوم برای بهروزرسانیهای بزرگ مانند Ethereum 2.0.
- هاردفورکهای بحثبرانگیز (Contentious Hard Fork): این نوع هاردفورک زمانی رخ میدهد که اختلاف نظر در جامعه توسعهدهندگان یا کاربران درباره تغییرات در پروتکل وجود دارد.
در این حالت، برخی از کاربران به پروتکل جدید مهاجرت میکنند و برخی دیگر نسخه قدیمی را ادامه میدهند، که باعث ایجاد دو زنجیره موازی میشود.- مثال: هاردفورک بیتکوین کش (Bitcoin Cash) از بیتکوین به دلیل اختلافات بر سر اندازه بلوک.
- هاردفورکهای اضطراری (Emergency Hard Fork): این هاردفورکها زمانی انجام میشوند که شبکه با مشکلی جدی مواجه شود که نیاز به اصلاح فوری دارد، مانند باگهای بزرگ یا تهدیدات امنیتی که اگر اصلاح نشوند، میتوانند کل شبکه را تحت تاثیر قرار دهند.
- مثال: هاردفورک اتریوم پس از هک DAO برای بازیابی وجوه بهسرقترفته.
انواع سافتفورک (Soft Fork)
سافتفورک تغییری در پروتکل است که با نسخههای قبلی سازگار است.
این تغییرات اجازه میدهد که نودهایی که به نسخه جدید بهروزرسانی نشدهاند، همچنان بتوانند به فعالیت در شبکه ادامه دهند، ولی ممکن است برخی قابلیتهای جدید در دسترس آنها نباشد. انواع مهم سافتفورک عبارتاند از:
- سافتفورکهای امنیتی (Security Soft Fork): این نوع سافتفورکها با هدف افزایش امنیت شبکه ایجاد میشوند و معمولاً تغییرات جزئی در نحوه پردازش تراکنشها یا قوانین بلاک دارند.
- مثال: اعمال محدودیت بر سایز یا نوع تراکنشها برای مقابله با حملات امنیتی.
- سافتفورکهای بهروزرسانی عملکرد (Performance Upgrade Soft Fork): این سافتفورکها با هدف بهبود کارایی شبکه و افزایش سرعت یا کاهش هزینههای تراکنش ایجاد میشوند.
- مثال: بهبودهای پروتکل در شبکه بیتکوین برای کاهش زمان تایید تراکنش.
- سافتفورکهای اضافه کردن قابلیتهای جدید (Feature Addition Soft Fork): این سافتفورکها به شبکه ویژگیهای جدیدی اضافه میکنند که با نسخههای قبلی سازگارند. کاربران میتوانند از این ویژگیها استفاده کنند، اما لزومی به ارتقا برای استفاده از شبکه ندارند.
- مثال: سافتفورک SegWit در بیتکوین که راهحلی برای افزایش ظرفیت و سرعت تراکنشها ارائه داد.
تفاوت هاردفورک و سافتفورک
- سازگاری با نسخههای قبلی: سافتفورک با نسخههای قبلی سازگار است، اما هاردفورک ناسازگار بوده و باعث جدا شدن زنجیرهها میشود.
- نیاز به بهروزرسانی نودها: در هاردفورک تمامی نودها باید به نسخه جدید مهاجرت کنند، ولی در سافتفورک نودهای قدیمی همچنان میتوانند به فعالیت خود ادامه دهند.
- پیامدها: هاردفورک در صورت عدم توافق منجر به ایجاد دو بلاکچین مستقل میشود، ولی سافتفورک باعث چنین انشقاقی نمیشود.
مثالهای تاریخی هارد فورک
هارد فورک SegWit2x و Bitcoin Cash
هارد فورک SegWit2x، که بهمنظور مقیاسپذیری بیتکوین پیشنهاد شده بود، به دلیل مخالفتهای گسترده و نگرانیها دربارهی تمرکزگرایی، به ایجاد Bitcoin Cash منجر شد. Bitcoin Cash با اندازه بلوکهای هشت مگابایتی و هزینههای تراکنش پایینتر، هدف بهبود مقیاسپذیری را دنبال میکرد.
هک DAO و فورک اتر
هک DAO در سال ۲۰۱۶ باعث ایجاد یک هارد فورک در شبکه اتریوم شد که تاریخچه شبکه را به قبل از حمله برگرداند و وجوه سرقتشده را به سرمایهگذاران بازگرداند. این فورک منجر به ایجاد Ethereum Classic (ETC) شد، که به نسخه اصلی بلاکچین اتریوم پیش از هارد فورک تعلق دارد.
جنگ هَش: ABC در برابر SV
Bitcoin Cash پس از فورک اولیه به دو شبکه Bitcoin Cash ABC و Bitcoin Cash SV تقسیم شد. این تقسیم به دلیل اختلافات در توسعه فناوری و افزایش اندازه بلوکها به وقوع پیوست. این جنگ هَش شامل درگیریهای شدید میان ماینرها و منابع مالی بود که نهایتاً Bitcoin Cash ABC موفق به پیروزی شد.
نتیجهگیری
هارد فورک و سافت فورک دو ابزار کلیدی در توسعه و بهبود بلاکچینها هستند. هارد فورکها تغییرات عمدهای ایجاد میکنند که ممکن است به جداسازی شبکه منجر شود، در حالی که سافت فورکها تغییرات ملایمتری را ارائه میدهند که با نسخههای قدیمیتر سازگار است. درک این تفاوتها و تأثیرات آنها برای کاربران و توسعهدهندگان رمزنگاری اهمیت زیادی دارد و میتواند به مدیریت بهتر شبکهها و پیشگیری از مشکلات امنیتی کمک کند.
سوالات متداول
هارد فورک و سافت فورک چه تفاوتهایی دارند؟
هارد فورک تغییرات عمده و غیرقابل برگشتی در پروتکل بلاکچین ایجاد میکند که نیاز به بهروزرسانی کامل نودها دارد، در حالی که سافت فورک تغییرات کوچکتر و سازگار با نسخههای قبلی است.
چرا هارد فورکها ایجاد میشوند؟
هارد فورکها به دلایل مختلفی از جمله افزودن قابلیتهای جدید، اصلاح مشکلات امنیتی، حل اختلافات درونجامعهای یا برگشت تراکنشها ایجاد میشوند.
آیا سافت فورکها میتوانند باعث مشکلات امنیتی شوند؟
سافت فورکها معمولاً بهدلیل سازگاری با نسخههای قبلی، مشکلات امنیتی کمتری ایجاد میکنند. اما در صورت ناتوانی در تطابق نودها با نسخه جدید، ممکن است مشکلاتی پیش آید.
چه آسیبپذیریهایی ممکن است با هارد فورکها به وجود آید؟
هارد فورکها ممکن است منجر به حملات ۵۱ درصدی و حملات تکرار شوند که امنیت شبکه را به خطر میاندازند.
چرا Bitcoin Cash از Bitcoin جدا شد؟
Bitcoin Cash بهدلیل اختلافات در اندازه بلوکها و رویکردهای مقیاسپذیری از Bitcoin جدا شد. این جدایی بهدلیل عدم توافق در مورد بهبود شبکه بیتکوین بود.