توضیحاتی پیرامون هارد فورک(Hard Fork) و سافت فورک(Soft Fork)
به نظر می رسد فورک ها یکی از ویژگی های برجسته چشم انداز ارزهای رمزنگاری شده باشد. اما آنها چیستند؟ چه تفاوتی بین فورک سخت و فورک نرم وجود دارد؟
“فورک” ، از نظر برنامه نویسی ، یک کد منبع باز است. معمولاً کد فورک شده مشابه نسخه اصلی است ، اما با تغییراتی مهم ، و دو “prongs” به راحتی در کنار یکدیگر قرار دارند. گاهی اوقات از یک فورک برای آزمایش فرآیند استفاده می شود ، اما با ارزهای رمزپایه ، بیشتر برای اجرای یک تغییر اساسی یا ایجاد دارایی جدید با ویژگی های مشابه (اما نه برابر) اولیه استفاده می شود.
با داشتن یک کد منبع باز به طور گسترده توزیع شده ، هنگامی که همه گره ها اطلاعات مشابه را تکرار نمیکنند ، یک فورک می تواند به طور تصادفی اتفاق بیفتد. معمولاً این فورک ها شناسایی و برطرف می شوند و اکثر فورک های ارزهای رمزنگاری شده به دلیل اختلاف نظر در مورد خصوصیات تعبیه شده است.
یکی از مواردی که باید دربارهی فورک ها به خاطر داشته باشید این است که آنها “سابقه مشترک” دارند. سابقه معاملات در هر یک از زنجیره ها(قدیمی و جدید) قبل از انشعاب یکسان است.
هارد فورک
دو نوع اصلی فورک برنامه نویسی وجود دارد: سخت و نرم.
هارد فورک تغییر پروتکل است که نسخه های قدیمی را بی اعتبار می کند. اگر نسخه های قدیمی تر به کار خود ادامه دهند ، در نهایت با یک پروتکل متفاوت و با داده های متفاوت از نسخه جدیدتر به دست می آیند. این می تواند منجر به سردرگمی قابل توجه و خطای احتمالی شود.
با استفاده از بیت کوین ، یک هارد فورک برای تغییر پارامترهای مشخص مانند اندازه بلوک ، دشواری معمای رمزنگاری که باید حل شود، محدودیت های اطلاعات اضافی قابل افزودن و غیره ضروری است. تغییر در هر یک از این قوانین باعث می شود بلوک ها توسط پروتکل جدید پذیرفته شوند اما توسط نسخه های قدیمی رد شوند و می توانند به مشکلات جدی منجر شوند – احتمالاً حتی از دست دادن بودجه.
به عنوان مثال ، اگر محدودیت اندازه بلوک از 1 مگابایت به 4 مگابایت افزایش یابد ، یک بلوک 2 مگابایتی توسط گره هایی که نسخه جدید را اجرامی کنند پذیرفته می شود ، اما توسط گره هایی که نسخه قدیمی را اجرا می کنند ، رد می شود.
بگذارید بگوییم که این بلوک 2 مگابایتی توسط یک گره به روز شده تأیید می شود و به بلاکچین اضافه می شود. اگر بلاک بعدی توسط گره ای که نسخه قدیمی پروتکل را اجرا می کند تأیید شود ، چه می شود؟ سعی خواهد کرد بلوک خود را به بلاک چین اضافه کند ، اما متوجه خواهد شد که آخرین بلوک معتبر نیست. بنابراین ، آن بلوک را نادیده گرفته و اعتبار جدید خود را به مورد قبلی پیوست می کند. ناگهان دو بلاکچین دارید ، یکی با بلوک های نسخه قدیمی و جدید و دیگری فقط با بلوک های نسخه قدیمی. اینکه کدام زنجیره سریعتر رشد کند به این بستگی دارد که کدام گره ها بلوک های بعدی را تأیید کنند ، و در نتیجه می تواند انشعابات اضافی باشد. امکان پذیر است که این دو (یا بیشتر) زنجیره به طور نامحدود به طور موازی رشد کنند.
این یک هارد فورک است و خطرناک می باشد ، زیرا ممکن است بیت کوین های خرج شده در یک بلاک جدید دوباره در یک بلاک قدیمی خرج شوند (از آنجا که تریدرها ، کیف پول ها و کاربرانی که کد قبلی را اجرا می کنند ، هزینه کد جدید را تشخیص نمی دهند ، و آنها را فاقد اعتبار می دانند).
تنها راه حل این است که یک شعبه به نفع prongs دیگر رها شود ، که این امر شامل ضرر برخی از ماینرها است (معاملات خودشان از بین نمی روند، آنها فقط تخصیص می یابند). یا ، همه گره ها باید همزمان به نسخه جدیدتر روی بیاورند ، که دستیابی به آن در یک سیستم غیرمتمرکز و گسترده دشوار است.
سافت فورک
یک فورک نرم هنوز هم می تواند با نسخه های قدیمی کار کند.
اگر به عنوان مثال ، یک پروتکل به نوعی تغییر کند که قوانین را سخت تر کند ، یک تغییر را اعمال کند یا عملکردی را اضافه کند که به هیچ وجه بر ساختار تأثیر نگذارد ، در این صورت بلوک های نسخه جدید توسط گره های نسخه قدیمی پذیرفته می شوند. نه برعکس: نسخه جدیدتر بلوک های نسخه قدیمی را رد می کند.
در بیت کوین ، در حالت ایده آل ، ماینرهای نسخه قدیمی متوجه می شوند که بلاک های آنها رد شده و آنها را ارتقا می دهند. هرچه تعداد ماینرها بیشتر شود، زنجیره ای با بلوک های جدید بیشتر و طولانی تری را ایجاد می کند که باعث از دست رفتن بلوک های نسخه قدیمی می شود که منجر به ارتقا بیشتر ماینرها می شود و سیستم خود اصلاح می شود. از آنجا که بلوک های نسخه جدید توسط گره های قدیمی و گره های جدید ارتقا می یابند ، بلوک های نسخه جدید در نهایت برنده می شوند.
به عنوان مثال ، بگویید انجمن تصمیم گرفت اندازه بلوک را از حد فعلی 1 مگابایت به 0.5 مگابایت کاهش دهد. گره های نسخه جدید بلوک های 1 مگابایتی را رد می کنند و در بلوک قبلی ایجاد می شوند (اگر با نسخه به روز شده کد استخراج شود) ، که باعث فورک موقت می شود.
این یک فورک نرم است و قبلاً نیز چندین بار اتفاق افتاده است. در ابتدا ، بیت کوین محدودیت اندازه بلوک نداشت. معرفی حد 1 مگابایت از طریق فورک نرم انجام شد ، زیرا قانون جدید “سختگیرانه تر” از قانون قبلی بود. عملکرد هش پرداخت به اسکریپت ، که کد را بدون تغییر ساختار افزایش می دهد ، با موفقیت از طریق یک فورک نرم نیز اضافه شد. این نوع اصلاحات به طور کلی فقط به اکثر ماینرها برای ارتقا نیاز دارد که این امر امکان پذیرتر و مختل کننده تر است.
فورک های نرم خطر دو برابر هزینه ای را که گریبان گیر هارد فورک ها می شود ندارند ، زیرا تریدرها و کاربرانی که گره های قدیمی را اجرا می کنند بلوک های نسخه جدید و قدیمی را می خوانند.
دیدگاهتان را بنویسید