هنگامی که برنامه ای را روی گوشی خود نصب می کنید، گاهی اوقات لازم است برنامه را به روز رسانی کنید تا به ویژگی های بیشتری دسترسی داشته باشید.
گاهی اوقات این به روز رسانیها، به طور خودکار و بدون اطلاع شما توسط توسعه دهنده برنامه یا تنظیمات تلفن همراه انجام می شود.
اما در ارزهای دیجیتال اوپن سورس یا منبع باز، همه چیز بسیار متفاوت است زیرا هیچ شخص ثالثی برای به روز رسانی کدهای بلاک چین وجود ندارد. در نتیجه، پیاده سازی ویژگی های جدید در شبکه های بلاک چین می تواند یک چالش باشد.
به روز رسانی نرم افزارها و پروتکل های طراحی شده در دنیای دیجیتال امری رایج است. بلاک چین به عنوان سیستمی برای ذخیره و ثبت اطلاعات کاربران به صورت غیر متمرکز، فعالیت خود را با استفاده از پروتکل ها و شرایط تعریف شده انجام می دهد.
تفاوت اصلی بلاک چین با سایر نرم افزارها این است که پروتکل طراحی شده برای آن توسط تمام گره های فعال در شبکه اجرا می شود. بنابراین، بهروزرسانی پروتکلها و قوانین بلاک چین به پذیرش آن توسط اکثر گرهها بستگی دارد.
کلمه فورک در بلاک چین به منظور اشاره به توسعه پروتکل و تغییر قوانین بلاک چین استفاده می شود. به طور کلی فورک به دو دسته اصلی سافت فورک (Soft Fork) و هارد فورک (Hard Fork) تقسیم می شود و هر یک از این روش ها می توانند شامل تغییرات در قسمت های مختلف الگوریتم باشند.
در این مقاله علاوه بر مرور کلی مفهوم فورک و چگونگی عملکرد آن در شبکهی بلاک چین، به بررسی تفاوت اصلی هارد فورک و سافت فورک میپردازیم.
فورک (Fork) چیست؟
کلمه فورک (Fork) در زبان انگلیسی به معنای چنگال است و استفاده از آن در مفهوم توسعه بلاک چین به دلیل نوع عملکردی است که فرآیند فورک دارد. در عملیات فورک یک بدنه اصلی وجود دارد که در انتها به چندین دندانه تبدیل می شود.
در اینجا بدنه استعاره از زنجیره اصلی بلاک چین است و دندانهها نیز به روندی که در طول توسعهی بلاک چین باعث ایجاد دو یا چند زنجیرهی دیگر میگردد اطلاق میشود.
عملیات فورک چگونه انجام میشود؟
فورک در شبکه بلاک چین زمانی رخ می دهد که ساختار کد اصلی تغییر کند. در واقع پروژه اصلی ادامه دارد اما اکنون از پروژه جدید که جهت دیگری دارد جدا شده است.
بگذارید با یک مثال ساده شروع کنیم؛
فرض کنید توسعه دهندگان یک وب سایت آموزشی، در مورد موضوعات مورد علاقه کاربران خود و نحوه ادامه کار با یکدیگر اختلاف نظر دارند. در همین حین یکی از اعضای تیم تصمیم میگیرد محتوای آموزشی وب سایت را در دامنهی دیگری کپی کند، و اصطلاحا یک و سایت جدید بسازد. پس از این که وب سایت جدیدی توسط یکی از اعضا ساخته شد، ممکن است از محتوای قبلی استفاده کند ولی در ادامهی راه، و در آینده، از محتوای جدید و متفاوتی برای وب سایت خود استفاده خواهد کرد.
در یک فورک، پروژه ها بر اساس یک پلت فرم مشترک ایجاد می شوند که تاریخچه مشترکی دارند. توجه داشته باشید که عمل فورک اغلب در پروژه های اوپن سورس اتفاق می افتد.
ساختار فورک چگونه تعیین میشود؟
در بلاک چین قوانینی برای ثبت اطلاعات و تراکنش ها در دفتر کل توزیع شده در نظر گرفته می شود که این قوانین به عنوان کدهای برنامه نویسی در نرم افزار ماینرها گنجانده شده است. قوانین بلاک چین به صورت غیر متمرکز نوشته شده تا امنیت بلاک چین تضمین شود و فضای ایدهآل فعالیت کاربران فراهم گردد. با این حال، این قوانین همواره در معرض تغییر و توسعه هستند.
از جمله مهمترین قوانین تعیین شده برای بلاک چین، میتوان به مواردی مانند متغیرهایی مانند تابع هش، سختی شبکه، تعداد کل توکن های هر پروژه، نحوه ایجاد رمزارز جدید، و اطلاعات داخل هر بلوک اشاره کرد.
سافت فورک (Soft Fork) چیست؟
سافت فورک همان طور که از اسمش پیداست یک به روز رسانی نرم افزاری کوچک است که بخش های اساسی بلاک چین را تغییر نمی دهد. در واقع سافت فورک تنها یک آپدیت جدید از نسخه قبلی با ویژگی های متفاوت و کاربردی تر است.
به بیان دیگر سافت فورک بلاک چین قدیمی را متقاعد می کند که قوانین جدید را بپذیرد. بنابراین، هم بلوک های به روز شده و هم بلوک های تراکنش قدیمی را شامل می شود.
هارد فورک (Hard Fork) چیست؟
هارد فورک یک پیکربندی جدید در گره های شبکه بلاک چین یا ارزهای دیجیتال است که با پروتکل بلاک چین قبلی خود ناسازگار است بنابراین باعث ایجاد دو شبکه مجزا که به صورت موازی کار می کنند می شود.
به بیان سادهتر هارد فورک یک بهروزرسانی جدید در نرمافزار است که میتوانند به رفع نقصهای امنیتی در پروتکلها، معرفی ویژگیهای جدید یا عملکرد بهتر، و تغییر پاداشهای استخراج یا کارمزد تراکنشها و همچنین سرعت و مقیاس بلاک چین اعتبارسنجی تراکنش کمک کنند.
هم ترین ویژگی هارد ورک این است که فرآیند هارد فورک ها می تواند به بلاک چین های کوچک کمک کند تا تراکنش های مخربی را که در آن کاربران هک می شوند و دارایی هایشان به سرقت میبرد جلوگیری کرده و معکوس سازد.
تفاوت سافت فورک و هارد فورک
به صورت کلی هارد فورک و سافت فورک تفاوت چندانی با یکدیگر ندارد و در ساختار کلی به شدت شبیه به هم عمل میکنند. با این حال سازگاری یا عدم سازگاری با نسخههای قدیمی زنجیرههای بلاکچین، از مهم ترین تفاوت های سافت فورک و هارد فورک است که در ادامه به آن پرداختهایم.
در حقیقت تفاوت عمده بین هارد فورک و سافت فورک مربوط به Backward Compatibility است. این اصطلاح به توانایی یک سیستم نرم افزاری برای استفاده از رابط ها و داده های نسخه های قبلی سیستم اشاره دارد.
حتی در شرایطی که نرم افزار به روشی جدید پیاده سازی یا به روز رسانی شود، با استفاده از روش سافت فورک، زنجیره همچنان شامل داده هایی از مدل قدیمی است.
این در حالی است که در هارد فورک اگر زبان را تغییر دهید، دیگر نمیدانید که دادهها در زبان قبلی چه بوده است. زیرا هارد فورک شبکه را به دو قسمت تقسیم می کند؛ یکی قبل از فورک و دیگری بعد آن.
از آنجایی که در هارد فورک هیچ گونه سازگاری با دادههای و اطلاعات قدیمی وجود ندارد، پس از فورک، دو بخش شبکه هرگز قادر به تعامل مجدد نخواهند بود.
به بیان دیگر، در فرآیند کلی Fork، پس از هر فورک نسخه قدیمی آن ارز باقی میماند. اما در سافت فورک از نسخه قدیم تنها یک بلاکچین معتبر باقی میماند ولی در هارد فورک نسخه قدیم و جدید هر دو در کنار هم و به صورت موازی به کار خود ادامه میدهند.