آنچه در این مقاله خواهید خواند
منظور از هارد فورک یا سافت فورک اعمال تغییر در شبکه بلاک چین یک ارز دیجیتال است، اما این دو تفاوت های مهمی با یکدیگر دارند. در ادامه قصد داریم به مقایسه Hard Fork و Soft Fork بپردازیم.
مقدمهای بر فورکها در شبکههای بلاک چین
وقتی پیامی مبنی بر آپدیت کردن اپلیکیشن موبایل بانک دریافت میکنید، به احتمال زیاد خیلی زود نسبت به دریافت بهروزرسانی اقدام خواهید کرد. با توجه به اهمیت موضوع، حتی ممکن است گوشی را در وضعیت آپدیت خودکار در صورت وجود نسخهای جدید از برنامه قرار بدهید، چرا که فرآیندی کاملا ضروری است. اگر ورژن تازه را دریافت نکنید، احتمال عدم امکان دریافت خدمات از سرویسدهنده افزایش پیدا میکند.
در رمز ارزهای متن باز، وضعیت متفاوت است. برای استفاده از بیت کوین و همچنین خرید و فروش آن، نیازمند خواندن کد منبع آن نیستید، اما داشتن حق انتخاب در این رابطه از اهمیت بالایی برخوردار است. در اینجا خبری از سلسله مراتب نبوده و هیچ بانکی نمیتواند به دلخواه، آپدیتها و تغییرات مورد نظرش را اعمال کند. به همین دلیل پیادهسازی ویژگیهای جدید در شبکههای مبتنی بر فناوری بلاک چین اغلب فرآیندی چالش برانگیز است. در اینجا به وسیله هارد یا سافت فورک به هدف خواهیم رسید.
در این مطلب درباره نحوه آپگرید شدن شبکههای رمز ارزها با وجود خاصیت عدم تمرکز آنها، صحبت خواهیم کرد. غیر متمرکز بودن پلتفرم سبب میشود یک مقام و مرجع مرکزی و کنترلکننده وجود نداشته باشد، به همین دلیل گردانندگان شبکه میبایست درباره اعمال تغییرات تصمیمگیری کنند. به این منظور دو مکانیزم متفاوت یعنی سافت فورک و هارک فورک در دسترس قرار دارند.
مسئولیت تصمیمگیری در یک شبکه بلاک چینی بر عهده کیست؟
برای درک چگونگی کارکرد انشعابهای هارد فورک و سافت فورک ابتدا باید شرکتکنندگان درگیر در فرآیند تصمیمگیری (یا اداره) شبکه را بشناسید. در بیت کوین، به طور کلی میتوانید بین سه دسته از شرکتکنندگان تمایز قائل شوید:
- توسعهدهندگان: آنها مسئول ایجاد و بهروزرسانی کد هستند. هر کسی میتواند در این روند سهیم باشد، چرا که کد منبع بیت کوین متن باز است و عموم به آن دسترسی دارند. آنها میتوانند تغییراتی را برای بررسی توسط سایر توسعهدهندگان ارسال کنند.
- ماینرها: آنها وظیفه تامین امنیت شبکه را بر عهده دارند. ماینرها کد رمز ارز را اجرا و منابع پردازشی خود را صرف افزودن بلاکهای جدید به زنجیره موجود از بلاکها (بلاک چین) میکنند. در شبکه بیت کوین به عنوان نمونه، این کار از طریق الگوریتم اثبات کار (PoW) صورت میگیرد. استخراجکنندگان به عنوان پاداش زحمات خود، رمز ارز مربوط به شبکه را دریافت خواهند کرد.
- فول نودها: آنها ستون فقرات شبکه ارز دیجیتال به شمار میروند. فول نودها بلاکها و تراکنشها را دریافت، ارسال و اعتبارسنجی کرده و همیشه نسخهای کامل از بلاک چین (کل پایگاه داده شبکه) را در خود نگهداری میکنند.
هر سه دسته در پیشبرد شبکه مشارکت دارند. اگرچه حضور لایت نودها (نظیر والتهای ارز دیجیتال در موبایل و لپ تاپ) به مراتب گستردهتر است، اما نمیتوان آنها را واقعا مشارکتکننده خطاب کرد.
بین انواع شرکتکنندگان همپوشانی وجود دارد. به عنوان نمونه یک توسعهدهنده میتواند در قالب یک فول نود نیز فعالیت کند. همچنین یک ماینر میتواند نسخهای از بلاک چین را نگهداری کرده و یک فول نود نیز تلقی شود. مانعی برای فعالیت یک کاربر به عنوان توسعهدهنده، ماینر و فول نود وجود ندارد. بسیاری از افرادی که کاربران کریپتوکارنسی خطاب میشوند، هیچ یک از این نقشها را بر عهده نداشته و تنها استفاده از نودهای لایت یا سرویسهای متمرکز را انتخاب میکنند.
طبق توضیحات بالا، توسعهدهندگان و ماینرها باید برای اعمال تغییر یا افزودن قابلیتهای جدید از طریق هارد فورک یا سافت فورک تصمیمگیری کنند. توسعهدهندهها کد را ایجاد کرده و بدون آنها، نرم افزاری برای اجرا وجود نخواهد داشت. بدون حضور این دسته شرکتکنندگان نمیتوان باگها را برطرف یا قابلیتهایی جدید اضافه کرد. ماینرها از شبکه محافظت میکنند. اگر رقابت سالمی بر سر استخراج وجود نداشته باشد، زنجیره مورد دستبرد قرار گرفته یا حتی به طور کامل متوقف خواهد شد.
اگر دو دسته از کاربران نام برده تصمیم به اعمال فشار روی اعضای شبکه به منظور پیروی از خواستههایشان کنند، مشکلاتی بروز خواهند کرد. برای بسیاری، قدرت اصلی در فول نودها متمرکز شده و کاربران قادر به انتخاب نرم افزار برای اجرا هستند.
توسعهدهندگان به زور وارد خانه کاربران نشده و شما را برای عملی کردن هارد فورک یا سافت فورک مورد نظرشان با اسلحه تهدید نمیکنند! اگر ماینرها بقیه را به ترک کردن شبکه در صورت عدم قبول حرفهایشان تهدید کنند، کاربران به احتمال زیاد مسیر خروج (عدم قبول) را در پیش خواهند گرفت.
در نظر داشته باشید ماینرها اربابان قدرت نبوده و در عمل، سرویسدهنده محسوب میشوند. اگر کاربران تصمیم به ترک شبکه بگیرند، رمز ارز ارزشش را از دست خواهد داد. این اتفاق به طور مستقیم روی استخراجکننده اثر منفی میگذارد، چرا که دارایی بیارزشتری به ازای زحمتی مشابه دریافت میکند. عدم توجه به توسعهدهندگان در مقایسه با ماینرها به مراتب برای کاربران راحتتر است.
همانطور که مشاهده میکنید، نرم افزار اختصاص نیست. میتوان ویرایشهای مورد نظر را اعمال و از ورژنی دلخواه استفاده کرد. اگر دیگران نیز نسخه دستکاری شده شما را اجرا کنند، قادر به برقراری ارتباط با یکدیگر خواهید بود.
قبل از شروع صحبت درباره هارد و سافت فورک درباره دو مفهوم دیگر توضیحی کوتاه ارائه میکنیم. درک آنها به عنوان پیش نیاز ضروری است. سپس بیشتر دلایل انشعاب را بررسی خواهیم کرد.
- پروتکل بلاک چین: کدی که قوانین مربوط به اتصال، ماینینگ و تراکنشها را مشخص میکند.
- فورک: زمانی که ورژنی از پروتکل، متفاوت با پروتکل اصلی، ایجاد میشود.
چرا باید پروتکل شبکه یک ارز دیجیتال را بهروزرسانی کرد؟
پیش از بررسی سافت و هارد فورک باید به یک پرسش مهم پاسخ بدهیم؛ چه نیازی برای بروز کردن پروتکل وجود دارد؟
رفع ریسکهای امنیتی ورژن قدیمی
از آن جایی که رمز ارزها، اختراعی تازه به شمار میروند، در مقایسه با ارزهای عادی، در ابتدای مسیر رشد قرار دارند. به عنوان نمونه دلاری که امروز مشاهده میکنید، کاغذها، رنگها، فونتها، لایههای امنیتی و تغییرات ریز و درشت زیادی را از زمان تولد تجربه کرد و به شکل امروزی رسید. به همین دلیل جعل دلار دشوارتر شده است. به شکلی مشابه، یافتن همه ریسکهای امنیتی مرتبط با ارزهای دیجیتال و برطرف کردن آنها، به زمان نیاز دارد. با هارد فورک یا سافت فورک میتوان به ورژنی بهتر، عاری از مشکلات پروتکل قبلی، دست پیدا کرد.
افزودن قابلیتی جدید با هارد فورک
دلیل رسیدن به ویندوز 10 به عنوان محبوبترین سیستم عامل نزد کاربران عادی، نیاز اولین سیستم عامل شرکت مایکروسافت به توسعه بود. هر تکنولوژی باید به مرور زمان، بر اساس نیازهای روز، ارتقا پیدا کند. فناوری بلاک چین عمر زیادی نداشته و کد آن نیازمند توسعه مستمر است. از آن جایی که بلاک چین متن باز است، توسعهدهندگان از سراسر دنیا میتوانند روی کد منبع کار کرده و پیشنهادهای خود به منظور بهبود را به انجمن پشتیبان ارائه کنند. اگر یک قابلیت به اندازه کافی خوب باشد، به ورژن بعدی اضافه خواهد شد.
معکوس کردن معاملات
پلیس ممکن است فردی که اقدام به چاپ و استفاده از اسکناسهای تقلبی کرده است را دستگیر کند، اما به سختی قادر به بازگرداندن پول افراد دریافتکننده اسکناسها خواهد بود. در دنیای کریپتوکارنسی، میتوان ضرر را به لطف سافت یا هارد فورک در صورت بروز این دسته اتفاقات به حداقل رساند.
وقتی انجمن توسعهدهنده و نگهداریکننده یک رمز ارز به وجود باگ امنیتی پی برد، آنها میتوانند تمام معاملات انجام شده از یک تاریخ مشخص به بعد را غیر موجود اعلام کنند، انگار این تراکنشها هرگز انجام نشدهاند! به این ترتیب آرزوی مسافرت در زمان و برگشت به گذشته برآورده خواهد شد!
برای افراد درستکار، این فرآیند معکوس کردن به معنی اجبار برای انجام مجدد تراکنشها است. برای افراد سواستفادهکننده از شبکه در زمان وجود رخنه، معکوس کردن به معنی دشوار شدن (نه غیر ممکن شدن) سرقت است.
یک فورک یا انشعاب چیست؟
وقتی نرم افزار کپی و دستکاری میشود، یک انشعاب نرم افزاری به وقوع میپیوندد. بعد از این رخداد، پروژه اورجینال و اولیه همچنان برقرار است، اما از نسخه جدید، که در مسیری متفاوت حرکت میکند، جدا شده است.
تصور کنید افراد تیم تولیدکننده محتوا در یک وب سایت درباره چگونگی پیشبرد کار اختلاف نظر دارند. در این شرایط ممکن است نیمی از اعضا، وب سایت را روی دامینی متفاوت تکرار کرده و در ادامه، محتواهای متفاوتی روی آن منتشر کنند. اکنون انشعابی از وب سایت اولیه ایجاد شده است.
پروژهها زمینه یکسان و تاریخچه مشابهی دارند. درست شبیه به جادهای که بعد از طی چند کیلومتر از آن، به دو شاخه تقسیم میشود، بعد از یک بازه زمانی، دو پروژه نیز مسیری جداگانه در پیش خواهند گرفت. طی یک هارد فورک و سافت فورک چنین چیزی رخ میدهد، اما این دو تفاوتی اساسی با یکدیگر دارند.
در پروژههای متن باز ایجاد انشعابهایی از نسخه اولیه به وفور رخ میدهد. به عبارتی این مفهوم قبل از زمان ظهور بلاک چین، بیت کوین و اتریوم، وجود داشته است. با این حال، تمایز بین هارد فورک و سافت فورک تقریبا مختص به حوزه بلاک چین است.
سافت فورک چیست؟
همانطور که بر اساس توضیحات تا اینجا متوجه شدهاید، منظور از فورک، اعمال تغییر در پروتکل است. برای یادآوری، پروتکل، مجموعه قوانینی است که کارکرد شبکه را مشخص میکند.
تغییر در سافت فورک، پیش – سازگار (Backward-Compatible) است. برای درک بهتر، قوانین مربوط به عبور و مرور خودروها را در نظر بگیرید. طبق قوانین قبلی ایالات متحده آمریکا، حداقل و حداکثر سرعت در بزرگراهها به ترتیب 30 مایل و 60 مایل بود. دولت روزی تصمیم گرفت کمترین و بیشترین سرعت مجاز برای حرکت در بزرگراهها را به 40 مایل و 70 مایل افزایش بدهد. چه اتفاقی بعد از اتخاذ این تصمیم رخ داد؟ برای بیشتر رانندگان، که متوسط سرعت آنها 55 مایل بوده، هیچ چیزی تغییر نکرد. آنها مجاز به رانندگی بوده و قانون جدید را زیر پا نمیگذارند. اگر شما پیش از این، با سرعت 30 مایل بر ساعت در بزرگراهها حرکت میکردید، باید بعد از اعمال قانون تازه، بیشتر پدال گاز را فشار بدهید!
به شکلی مشابه، اجباری برای آپگرید کردن نسخه بلاک چین به سافت فورک (تغییر جدید) وجود نداشته و میتوان مثل قبل به فعالیت در شبکه ادامه داد، مگر این که بخواهید عملی خلاف قوانین جدید انجام بدهید.
همانطور که گفتیم سافت فورک آپدیتی پیش – سازگار است، به این معنی که نودهای بهروز شده همچنان قادر به برقراری ارتباط با گرههای قدیمی هستند. در اینجا ویژگیها و قوانینی سازگار با مجموعه قوانین قدیمی، اضافه شدهاند.
به عنوان نمونه، برای کاهش ابعاد بلاک میتوان از سافت فورک استفاده کرد. برای درک بهتر، بیت کوین را در نظر بگیرید. اگرچه محدودیتی درباره اندازه یک بلاک وجود دارد، اما میتوان آن را به اندازه دلخواه کوچک درست کرد. به عبارتی تنها سقف مشخص شده و کف تعیین نشده است. اگر میخواهید بلاکهایی کوچکتر از ابعادی مشخص دریافت کنید، میبایست موارد بزرگتر را رد کنید.
با چنین کاری به طور خودکار از شبکه جدا نشده و همچنان میتوانید با نودهایی که از این قوانین تازه پیروی نمیکنند، ارتباط برقرار کنید. البته باید بخشی از اطلاعات ارسال شده توسط آنها را حین دریافت فیلتر کنید.
به عنوان یک سافت فورک معروف در تاریخچه رمز ارزها میتوان به سگویت (SegWit) بیت کوین اشاره کرد که مدتی بعد از هارد فورک بیت کوین کش رخ داد. آپدیت SegWit فرمت بلاکها و تراکنشها را به شکلی هوشمندانه تغییر داد. از آن جایی که فرمت تازه قوانین قبلی را نقض نمیکرد، نودهای قدیمی همچنان میتوانستند بلاکها و تراکنشها را اعتبارسنجی کنند، هر چند آنها را درک نمیکردند! برخی فیلدها تنها در صورت دریافت آپدیت جدید قابل خواندن بودند.
با گذشت دو سال از آپدیت SegWit، همچنان تمام نودها بهروزرسانی نشدهاند. اگرچه گرهها با دریافت بهروزرسانی نام برده، به یک سری مزایا دسترسی پیدا میکنند، اما اجباری به این منظور وجود ندارد، چرا که با یک سافت فورک رو به رو هستیم.
هاردفورک چیست؟
مثال سرعت حرکت در بزرگراهها را در نظر بگیرید. یک هارد فورک در اینجا به معنی ایجاد یک دنیای موازی جدید است. این دنیا بزرگراهها و رانندگان متفاوتی دارد؛ اگر در شهر «نیویورک» یک «راننده» خودروی «جیپ» داشت، اکنون یک «راننده کش» با خودروی «جیپ کش» در شهر «نیویورک کش» نیز خواهیم داشت. دو راننده با خودروی گوناگون، اکنون در دو دنیای متفاوت زندگی میکنند. در نظر داشته باشید راننده شهر نیویورک کش قادر به ملاقات فرد شبیه به خود در نیویورک یا یافتن کار در این شهر نیست، چرا که مسیری متصلکننده بین دو جهان وجود ندارد. هارد فورک از این نظر تفاوتی مهم با سافت فورک دارد.
به دنیای کریپتوکارنسی برمیگردیم. بعد از یک هارد فورک ورژن قبلی و جدید کاملا از یکدیگر جدا خواهند شد. بعد از آن، هیچ گزینه ارتباطی یا معاملهای بینشان وجود ندارد. معمولا نسخه تازه متولد شده تاریخچه کل معاملات را به ارث میبرد. بعد از جداسازی، هر بخش تاریخچه معاملات منحصربهفرد خود را رقم خواهد زد.
هارد فورکها، آپدیتهای نرم افزاری پیش – ناسازگار (Backward-Incompatible) محسوب میشوند. به طور معمول، وقتی یک سری نودها ویژگیها و قوانینی ناسازگار با قوانین نودهای قدیمی اضافه میکنند، چنین انشعابی پدیدار میشود. گرههای جدید بعد از هارد فورک تنها قادر به ارتباط با نودهای اجراکننده ورژن تازه خواهند بود. در نتیجه، بلاک چین تقسیم شده و دو شبکه مجزا تشکیل میشود. در یک نیمه قوانین قبلی برقرار بوده و در دیگری، قوانین تازه وضع شده دنبال میشوند.
در تصویر بالا، گرهها بعد از آپدیت، آبی میشوند. گرههای قدیمی با رنگ زرد به خاطر ناسازگار بودن بهروزرسانی با قوانین خود، آنها را رد میکنند. سپس نودهای آبی اقدام به برقراری ارتباط با یکدیگر و ایجاد شبکهای مجزا خواهند کرد. در نتیجه با دو شبکه موازی رو به رو هستیم.
هر دو نتورک تراکنشها و بلاکهای جدید ایجاد میکنند، اما فعالیتشان روی یک بلاک چین نیست. تا زمان ظهور انشعاب، همه نودها بلاک چینی مشابه دارند (تاریخچه باقی خواهد ماند)، اما بعد از هارد فورک بلاکها و تراکنشهایی جداگانه خواهند داشت.
به خاطر تاریخچه یکسان دو قسمت، اگر قبل از انشعاب کوینهایی را در اختیار داشته باشید، آنها در هر دو تکرار خواهند شد. تصور کنید در زمان هارد فورک در بلاک 600,000، 5 بیت کوین در اختیار دارید. میتوانید این 5 بیت کوین را در زنجیره قدیمی در بلاک 600,001 خرج کنید، اما آنها در بلاک 600,001 زنجیره جدید خرج نشدهاند. اگر رمزنگاری تغییر نکرده باشد، کلیدهای خصوصی شما همچنان در شبکه جدید به پنج BTC اشاره میکنند.
به عنوان یکی از مهمترین هارد فورکها در تاریخچه رمز ارزها میتوان به تقسیم شبکه بزرگترین ارز دیجیتال دنیا، بیت کوین، در سال 2017 اشاره کرد. بعد از این اتفاق، بیت کوین کش متولد شد. بعد از این که شرکتکنندگان شبکه درباره بهترین روش به منظور بهبود مقیاسپذیری به توافق نرسیدند، انشعاب جدید ظاهر شد. طرفداران بیت کوین کش تمایل به افزایش اندازه بلاکها داشته و طرفداران بیت کوین با این تغییر مخالفت میکردند.
اما چرا تولد بیت کوین کش یک هارد فورک محسوب میشود؟ افزایش اندازه بلاک نیازمند دستکاری قوانین و تغییر پروتکل بود، به طوری که نودهای قدیمی، بلاکهای بزرگتر از 1 مگابایت را رد میکردند. بعد از تولد بیت کوین کش (BCH)، هر کاربری که قبل از انشعاب تعدادی BTC داشت، به همان تعداد BCH دریافت کرد.
نتایج احتمالی هاردفورک ؛ پس از هارد فورک چه اتفاقی میافتد؟
همانطور که متوجه شدید، هاردفورک یک نوع بروزرسانی در شبکههای مبتنی بر فناوری زنجیره بلوکی است. پس از اتخاذ تصمیم برای اعمال یک تغییر از این نوع و در ادامه پیادهسازی آن، اگر همه گرهها پیروی کرده و ورژن جدید را روی دستگاه خود سوار کنند، همهچیز به خوبی پیش رفته و مشکلی بروز نخواهد کرد. به این ترتیب نودها همانند قبل خواهند توانست با یکدیگر ارتباط برقرار کنند.
با توجه به پیش – ناسازگار بودن تحولات در هاردفورک، اگر یک عضو مایل به قبول آنها نباشد، باید کنارهگیری کند، چون پیامهایش دیگر توسط سایر اعضا مفهوم نخواهد بود. اما اگر تعداد مخالفان قابل توجه باشد، قادر خواهند بود با تشکیل یک کامیونیتی جدید، شبکهای جدید منطبق با قوانین مورد نظرشان ایجاد کنند. پس اجرای یک هاردفورک لزوما سبب تولد بلاک چینی جدید نمیشود، مگر این که تعداد زیادی از عضوها بخواهند مسیری متفاوت در پیش بگیرند.
آیا هاردفورک روی قیمت ارز دیجیتال تاثیر دارد؟
احتمال تاثیرگذاری یک آپگرید روی قیمت رمز ارز اختصاصی پروژه در دست بروزرسانی، به گستردگی و اهمیت آن بستگی دارد. از طرفی باید مثبت یا منفی بودن آن را در نظر گرفت، چون ممکن است اجرای آن بهجای تلاش برای افزودن قابلیتی جدید یا توسعه بستر، برای رفع یک باگ مهم و آسیبزا بوده باشد. پس هاردفورک لزوما سبب افزایش قیمت نشده و ممکن است بهخاطر آن قیمت ارز دیجیتال مورد نظر کاهش پیدا کند.
به عنوان مثال آپگرید بزرگ مرج شبکه اتریوم را در نظر بگیرید. این یک اتفاق بسیار مهم بود و بدون شک منتظر نوسان قیمت اتریوم در نتیجه اجرایش بودیم. اگرچه تغییر الگوریتم اجماع این بلاک چین از PoW به PoS سبب خروج تعداد زیادی اعتبارسنج شد (یک رویداد بد)، اما زمینه را برای ورود تعداد بسیار بیشتری گره فراهم کرد. به همین دلیل در مجموع تغییر بسیار مثبتی بود، و رشد قیمت ارز دیجیتال ETH را سبب شد.
به سال 2016 برمیگردیم، زمانی که اجرای یک هاردفورک در پروژه اتریوم، سبب تولد اتریوم کلاسیک شد. علت اجرای این آپگرید تلاش برای برگرداندن سرمایه بیشمار قربانی هک پروتکل The DAO بود (یک رویداد بد). به همین دلیل حتی در صورت عدم تصمیم گروهی از ماینرها برای مخالفت با این تصمیم و پیروی آنها، همچنان قیمت ETH سقوط میکرد.
سخن پایانی ؛ هارد فورک بهتر است یا سافت فورک؟
هر کدام هدفی متفاوت را دنبال میکنند، به همین دلیل یکی نیست به دیگری برتر نیست. هارد فورک ستیزهجو بوده و یک جامعه را به دو بخش تقسیم میکند، هر چند هارد فورکهایی که با برنامهریزی صحیح پیاده میشوند، اجازه میدهند آزادانه نرم افزار را با خشنودی همه کاربران دستکاری کنید.
سافت فورکها تلاش میکنند با وجود اختلافها، اتحاد حفظ شود. مهمترین تفاوت در اینجا، محدود شدن در اعمال تغییر است؛ تا زمانی که تغییرات جدید با قوانین قبلی ناسازگاری نداشته باشند، قادر به دستکاری خواهید بود.
تهیه شده در بیت 24