هارد فورک و سافت فورک چیست و چه تفاوتی با یکدیگر دارند؟

هارد فورک و سافت فورک چیست و چه تفاوتی با یکدیگر دارند؟

لینک صفحه دانیال حجاری

منظور از هارد فورک یا سافت فورک اعمال تغییر در پروتکل شبکه بلاک چین یک ارز دیجیتال است. اکنون Hard Fork و Soft Fork را مقایسه می‌کنیم.

وقتی پیامی مبنی بر آپدیت کردن اپلیکیشن موبایل بانک دریافت می‌کنید، به احتمال زیاد خیلی زود نسبت به دریافت به‌روزرسانی اقدام خواهید کرد. با توجه به اهمیت موضوع، حتی ممکن است گوشی را در وضعیت آپدیت خودکار در صورت وجود نسخه‌ای جدید از برنامه قرار بدهید، چرا که فرآیندی کاملا ضروری است. اگر ورژن تازه را دریافت نکنید، احتمال عدم امکان دریافت خدمات از سرویس‌دهنده افزایش پیدا می‌کند.

در رمز ارزهای متن باز، وضعیت متفاوت است. برای استفاده از بیت کوین و همچنین خرید و فروش آن، نیازمند خواندن کد منبع آن نیستید، اما داشتن حق انتخاب در این رابطه از اهمیت بالایی برخوردار است. در اینجا خبری از سلسله مراتب نبوده و هیچ بانکی نمی‌تواند به دلخواه، آپدیت‌ها و تغییرات مورد نظرش را اعمال کند. به همین دلیل پیاده‌سازی ویژگی‌های جدید در شبکه‌های مبتنی بر فناوری بلاک چین اغلب فرآیندی چالش برانگیز است. در اینجا به وسیله هارد یا سافت فورک به هدف خواهیم رسید.

در این مطلب درباره نحوه آپگرید شدن شبکه‌های رمز ارزها با وجود خاصیت عدم تمرکز آن‌ها، صحبت خواهیم کرد. غیر متمرکز بودن پلتفرم سبب می‌شود یک مقام و مرجع مرکزی و کنترل‌کننده وجود نداشته باشد، به همین دلیل گردانندگان شبکه می‌بایست درباره اعمال تغییرات تصمیم‌گیری کنند. به این منظور دو مکانیزم متفاوت یعنی سافت فورک و هارک فورک در دسترس قرار دارند.

مسئولیت تصمیم‌گیری در یک شبکه بلاک چینی بر عهده کیست؟

برای درک چگونگی کارکرد انشعاب‌های هارد فورک و سافت فورک ابتدا باید شرکت‌کنندگان درگیر در فرآیند تصمیم‌گیری (یا اداره) شبکه را بشناسید. در بیت کوین، به طور کلی می‌توانید بین سه دسته از شرکت‌کنندگان تمایز قائل شوید:

  • توسعه‌دهندگان: آن‌ها مسئول ایجاد و به‌روزرسانی کد هستند. هر کسی می‌تواند در این روند سهیم باشد، چرا که کد منبع بیت کوین متن باز است و عموم به آن دسترسی دارند. آن‌ها می‌توانند تغییراتی را برای بررسی توسط سایر توسعه‌دهندگان ارسال کنند.
  • ماینرها: آن‌ها وظیفه تامین امنیت شبکه را بر عهده دارند. ماینرها کد رمز ارز را اجرا و منابع پردازشی خود را صرف افزودن بلاک‌های جدید به زنجیره موجود از بلاک‌ها (بلاک چین) می‌کنند. در شبکه بیت کوین به عنوان نمونه، این کار از طریق الگوریتم اثبات کار (PoW –> Proof Of Work) صورت می‌گیرد. استخراج‌کنندگان به عنوان پاداش زحمات خود، رمز ارز مربوط به شبکه را دریافت خواهند کرد.
  • فول نودها: آن‌ها ستون فقرات شبکه ارز دیجیتال به شمار می‌روند. فول نود‌ها بلاک‌ها و تراکنش‌ها را دریافت، ارسال و اعتبارسنجی کرده و همیشه نسخه‌ای کامل از بلاک چین (کل پایگاه داده شبکه) را در خود نگهداری می‌کنند.

هر سه دسته در پیشبرد شبکه مشارکت دارند. اگرچه حضور لایت نودها (نظیر والت‌های ارز دیجیتال در موبایل و لپ تاپ) به مراتب گسترده‌تر است، اما نمی‌توان آن‌ها را واقعا مشارکت‌کننده خطاب کرد.

فورک بیت کوین

بین انواع شرکت‌کنندگان هم‌پوشانی وجود دارد. به عنوان نمونه یک توسعه‌دهنده می‌تواند در قالب یک فول نود نیز فعالیت کند. همچنین یک ماینر می‌تواند نسخه‌ای از بلاک چین را نگهداری کرده و یک فول نود نیز تلقی شود. مانعی برای فعالیت یک کاربر به عنوان توسعه‌دهنده، ماینر و فول نود وجود ندارد. بسیاری از افرادی که کاربران کریپتوکارنسی خطاب می‌شوند، هیچ یک از این نقش‌ها را بر عهده نداشته و تنها استفاده از نودهای لایت یا سرویس‌های متمرکز را انتخاب می‌کنند.

طبق توضیحات بالا، توسعه‌دهندگان و ماینرها باید برای اعمال تغییر یا افزودن قابلیت‌های جدید از طریق هارد فورک یا سافت فورک تصمیم‌گیری کنند. توسعه‌دهنده‌ها کد را ایجاد کرده و بدون آن‌ها، نرم افزاری برای اجرا وجود نخواهد داشت. بدون حضور این دسته شرکت‌کنندگان نمی‌توان باگ‌ها را برطرف یا قابلیت‌هایی جدید اضافه کرد. ماینرها از شبکه محافظت می‌کنند. اگر رقابت سالمی بر سر استخراج وجود نداشته باشد، زنجیره مورد دستبرد قرار گرفته یا حتی به طور کامل متوقف خواهد شد.

اگر دو دسته از کاربران نام برده تصمیم به اعمال فشار روی اعضای شبکه به منظور پیروی از خواسته‌هایشان کنند، مشکلاتی بروز خواهند کرد. برای بسیاری، قدرت اصلی در فول نودها متمرکز شده و کاربران قادر به انتخاب نرم افزار برای اجرا هستند.

توسعه‌دهندگان به زور وارد خانه کاربران نشده و شما را برای عملی کردن هارد فورک یا سافت فورک مورد نظرشان با اسلحه تهدید نمی‌کنند! اگر ماینرها بقیه را به ترک کردن شبکه در صورت عدم قبول حرف‌هایشان تهدید کنند، کاربران به احتمال زیاد مسیر خروج (عدم قبول) را در پیش خواهند گرفت.

در نظر داشته باشید ماینرها اربابان قدرت نبوده و در عمل، سرویس‌دهنده محسوب می‌شوند. اگر کاربران تصمیم به ترک شبکه بگیرند، رمز ارز ارزشش را از دست خواهد داد. این اتفاق به طور مستقیم روی استخراج‌کننده اثر منفی می‌گذارد، چرا که دارایی بی‌ارزش‌تری به ازای زحمتی مشابه دریافت می‌کند. عدم توجه به توسعه‌دهندگان در مقایسه با ماینرها به مراتب برای کاربران راحت‌تر است.

همانطور که مشاهده می‌کنید، نرم افزار اختصاص نیست. می‌توان ویرایش‌های مورد نظر را اعمال و از ورژنی دلخواه استفاده کرد. اگر دیگران نیز نسخه دست‌کاری شده شما را اجرا کنند، قادر به برقراری ارتباط با یکدیگر خواهید بود.

قبل از شروع صحبت درباره هارد و سافت فورک درباره دو مفهوم دیگر توضیحی کوتاه ارائه می‌کنیم. درک آن‌ها به عنوان پیش نیاز ضروری است. سپس بیشتر دلایل انشعاب را بررسی خواهیم کرد.

  • پروتکل بلاک چین: کدی که قوانین مربوط به اتصال، ماینینگ و تراکنش‌ها را مشخص می‌کند.
  • فورک: زمانی که ورژنی از پروتکل، متفاوت با پروتکل اصلی، ایجاد می‌شود.

چرا باید پروتکل شبکه یک ارز دیجیتال را به‌روزرسانی کرد؟

پیش از بررسی سافت و هارد فورک باید به یک پرسش مهم پاسخ بدهیم؛ چه نیازی به آپدیت کردن پروتکل وجود دارد؟

هارد فورک

رفع ریسک‌های امنیتی ورژن قدیمی

از آن جایی که رمز ارزها، اختراعی تازه به شمار می‌روند، در مقایسه با ارزهای عادی، در ابتدای مسیر رشد قرار دارند. به عنوان نمونه دلاری که امروز مشاهده می‌کنید، کاغذ‌ها، رنگ‌ها، فونت‌ها، لایه‌های امنیتی و تغییرات ریز و درشت زیادی را از زمان تولد تجربه کرد و به شکل امروزی رسید. به همین دلیل جعل دلار دشوارتر شده است. به شکلی مشابه، یافتن همه ریسک‌های امنیتی مرتبط با ارزهای دیجیتال و برطرف کردن آن‌ها، به زمان نیاز دارد. با هارد فورک یا سافت فورک می‌توان به ورژنی بهتر، عاری از مشکلات پروتکل قبلی، دست پیدا کرد.

افزودن قابلیتی جدید با هارد فورک

دلیل رسیدن به ویندوز 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 دریافت کرد.

هارد فورک یا سافت فورک ؛ کدام گزینه بهتری است؟

هر کدام هدفی متفاوت را دنبال می‌کنند، به همین دلیل یکی نیست به دیگری برتر نیست. هارد فورک ستیزه‌جو بوده و یک جامعه را به دو بخش تقسیم می‌کند، هر چند هارد فورک‌هایی که با برنامه‌ریزی صحیح پیاده می‌شوند، اجازه می‌دهند آزادانه نرم افزار را با خشنودی همه کاربران دست‌کاری کنید.

سافت فورک‌ها تلاش می‌کنند با وجود اختلاف‌ها، اتحاد حفظ شود. مهمترین تفاوت در اینجا، محدود شدن در اعمال تغییر است؛ تا زمانی که تغییرات جدید با قوانین قبلی ناسازگاری نداشته باشند، قادر به دست‌کاری خواهید بود.

منابع:

برچسب‌ها:

افزودن نظر