تشير أحداث هارد فورك (Hard fork) وسوفت فورك (soft fork) إلى عملية تنفيذ تغييرات جديدة على كود مشروع البلوكتشين، فما الفرق بين هارد فورك وسوفت فورك؟
ما هي الفورك fork؟
الفورك أو التهديد منها، سمة ثابتة في مشهد العملات المشفرة؛ لذلك علينا أن نعرف في البداية ما هي الشوكة (أو الفورك)؟ ولماذا هي أشياء مهمة؟ وما الفرق بين الشوكة الصلبة (hard fork) والشوكة اللينة (soft fork)؟
الفورك في مصطلحات البرمجة، هو تعديل كود مفتوح المصدر. عادةً ما يكون الكود المتشعب (المعدل) مشابهاً للشفرة الأصلية، ولكن مع تعديلات مهمة، وكلاهما يتعايشان بشكل مريح. تُستخدم الشوكة أحياناً لاختبار عملية ما، ولكن مع العملات المشفرة، غالباً ما تُستخدم لتنفيذ تغيير أساسي أو لإنشاء أصل جديد بخصائص مماثلة (ولكن ليست متساوية) مقارنة بالأصل.
ليست كل الشوكات مقصودة. باستخدام قاعدة بيانات مفتوحة المصدر وموزعة على نطاق واسع، يمكن أن يحدث الانقسام عن طريق الخطأ عندما لا تقوم جميع العقد بتكرار نفس المعلومات. عادة، يتم تحديد هذه الأنواع من الشوكات العرضية وحلها. تحدث غالبية العملات المشفرة بسبب الخلافات حول الخصائص المضمنة.
شيء واحد يجب أن تضعه في الاعتبار مع الشوكات، وهو أن لديها “تاريخاً مشتركاً”. فسجل المعاملات على كل من السلاسل (القديمة والجديدة) يكون مطابقاً قبل الانقسام، لكن بعد الانقسام يحدث اختلاف. هناك نوعان رئيسيان من شوكات البرمجة: شوكة صلبة، وشوكة لينة. هنا نشرح الفرق بين هارد فورك وسوفت فورك.
الفرق بين هارد فورك وسوفت فورك
يمكن تصنيف الشوكات على أنها عرضية أو متعمدة. تحدث الشوكة العرضية عندما يعثر اثنان أو أكثر من عمال المناجم على كتلة في نفس الوقت تقريباً. يتم حل الشوكة عند إضافة الكتلة (الكتل) اللاحقة وتصبح إحدى السلاسل أطول من البديل (البدائل). تتخلى الشبكة عن الكتل التي ليست في السلسلة الأطول (تسمى الكتل المعزولة).
يمكن تصنيف الشوكات المقصودة التي تعدل قواعد البلوكتشين على النحو التالي:
شوكة صلبة (هارد فورك)
الهارد فورك هو تغيير في القاعدة بحيث يرى البرنامج الذي يقوم بالتحقق من الصحة وفقاً للقواعد القديمة أن الكتل المنتجة وفقاً للقواعد الجديدة غير صالحة. في حالة الانقسام الكلي، فإن جميع العقد التي تهدف إلى العمل وفقاً للقواعد الجديدة تحتاج إلى ترقية برامجها. إذا استمرت مجموعة من العقد في استخدام البرنامج القديم بينما تستخدم العقد الأخرى البرنامج الجديد، فقد يحدث انقسام دائم.
الهارد فورك هو تغيير في بروتوكول البلوكتشين يجعل الإصدارات القديمة غير صالحة. إذا استمرت الإصدارات الأقدم في العمل، فسينتهي بها الأمر ببروتوكول مختلف وببيانات مختلفة عن الإصدار الأحدث. يمكن أن يؤدي هذا إلى ارتباك كبير وأخطاء محتملة.
مع البيتكوين، سيكون من الضروري إنشاء هارد فورك لتغيير محددات التعريف مثل حجم الكتلة، وخوارزمية صعوبة التعدين، وحدود المعلومات الإضافية التي يمكن إضافتها، وما إلى ذلك. قد يؤدي التغيير في أي من هذه القواعد إلى قبول الكتل من قبل بروتوكول جديد ولكن رفضته الإصدارات القديمة، ويمكن أن يؤدي إلى مشاكل خطيرة قد تصل حتى إلى فقدان الأموال.
على سبيل المثال، إذا تمت زيادة حد حجم الكتلة من 1 ميغابايت إلى 4 ميغابايت (مثال على عملية هارد فورك)، فسيتم قبول كتلة بحجم 2 ميغابايت بواسطة العقد التي تقوم بتشغيل الإصدار الجديد، ولكن سيتم رفضها بواسطة العقد التي تقوم بتشغيل الإصدار الأقدم.
لنفترض أنه تم التحقق من صحة هذه الكتلة التي يبلغ حجمها 2 ميغابايت بواسطة عقدة محدثة وإضافتها إلى البلوكتشين. ماذا لو تم التحقق من صحة الكتلة التالية بواسطة عقدة تقوم بتشغيل إصدار أقدم من البروتوكول؟ سيحاول إضافة كتلته إلى البلوكتشين، لكنه سيكتشف أن أحدث كتلة غير صالحة. لذلك، سوف يتجاهل تلك الكتلة ويرفق التحقق الجديد الخاص به بالسابق.
هنا، سيصبح لدينا فجأة نوعان من سلاسل الكتل، أحدهما يحتوي على كل من كتل الإصدارات الأقدم والأحدث، والآخر يحتوي على كتل الإصدار الأقدم فقط. تعتمد السلسلة التي تنمو بشكل أسرع على العقد التي يتم التحقق من صحة الكتل التالية، وقد ينتهي الأمر بوقوع انقسامات إضافية. من الممكن أن تنمو السلسلتان (أو أكثر) بالتوازي إلى أجل غير مسمى.
هذا مثال على الشوكة الصلبة، ومن المحتمل أن تكون فوضوية. هي تمثل عملية محفوفة بالمخاطر، لأنه من الممكن أن يتم إنفاق عملات البيتكوين التي يتم إنفاقها في كتلة جديدة مرة أخرى على كتلة قديمة (نظراً لأن التجار والمحافظ والمستخدمين الذين يقومون بتشغيل الكود السابق لن يكتشفوا الإنفاق على الكود الجديد، والذي يعتبرونه غير صالح).
الحل الوحيد هو التخلي عن أحد الفروع لصالح الآخر، الأمر الذي ينطوي على خسارة بعض عمال المناجم (لن تضيع المعاملات نفسها، بل سيتم إعادة تخصيصها فقط). أو ستحتاج جميع العقد إلى التبديل إلى الإصدار الأحدث في نفس الوقت، وهو أمر يصعب تحقيقه في نظام لامركزي واسع الانتشار.
أو سيحدث في النهاية انقسام البيتكوين نفسه مثلما حدث سابقاً وأظهر لنا بيتكوين كاش.
الشوكة اللينة (سوفت فورك)
الشوكة اللينة هي في الأساس عكس الهارد فورك، حيث تظل التغييرات التي تم تنفيذها حديثاً متوافقة مع الإصدارات القديمة.
على سبيل المثال، إذا تم تغيير البروتوكول بطريقة تشدد القواعد أو تنفذ تغييراً تجميلياً أو تضيف وظيفة لا تؤثر على بنية البلوكتشين بأي شكل من الأشكال، فسيتم قبول كتل الإصدار الجديد من خلال عقد الإصدار القديم. لكن ليس العكس، فالإصدار الأحدث “الأكثر إحكاماً” سيرفض كتل الإصدار القديم.
في عملة البيتكوين، سيدرك عمال المناجم من الإصدار القديم أنه تم رفض كتلهم وسيضطرون إلى الترقية. مع قيام المزيد من المعدنين بالترقية إلى أحدث إصدار، تصبح السلسلة ذات الكتل الجديدة في الغالب هي الأطول، مما يؤدي بدوره إلى زيادة كمية كتل الإصدار القديم اليتيمة التي يتم إنشاؤها ويتسبب في ترقية المزيد من المعدنين.
تضمن هذه العملية قيام النظام بالتصحيح الذاتي؛ نظراً لأنه يتم قبول كتل الإصدار الجديد من قبل كل من العقد القديمة والمحدثة، فإن كتل الإصدار الجديد تفوز في النهاية.
على سبيل المثال، لنفترض أن المجتمع قرر تقليل حجم الكتلة إلى 0.5 ميغابايت من الحد النظري الحالي البالغ 4 ميغابايت. سترفض عقد الإصدار الجديد الكتل بالحد القديم وستبني على الكتلة السابقة (إذا تم تعدينها) بإصدار محدث من الكود، مما قد يتسبب في انقسام مؤقت.
هذه شوكة ناعمة، وقد حدث بالفعل عدة مرات. في البداية، لم يكن لدى البيتكوين حد لحجم الكتلة. تم تقديم حد 1 ميغابايت من خلال شوكة ناعمة؛ لأن القاعدة الجديدة كانت أكثر صرامة من القاعدة القديمة.
تمت أيضاً إضافة وظيفة تجزئة الدفع مقابل البرنامج النصي، والتي تعمل على تحسين الكود دون تغيير الهيكل، من خلال تفرع بسيط. يتطلب هذا النوع من التعديل عموماً ترقية غالبية عمال المناجم فقط، مما يجعله أكثر جدوى وأقل اضطراباً.
لا تحمل الشوكات اللينة مخاطر الإنفاق المزدوج التي تصيب الهارد فورك، حيث سيقرأ التجار والمستخدمون الذين يشغلون العقد القديمة كلاً من الإصدارات الجديدة والقديمة.
إخلاء المسؤولية: الآراء والتحليلات والأخبار الواردة لا تعكس رأي بت شين. لا ينبغي اعتبار أي من المعلومات التي تقرأها على موقع بت شين بمثابة نصيحة استثمارية، ولا تصادق بت شين على أي مشروع قد يتم ذكره أو ربطه في هذه المقالة. يجب اعتبار شراء وتداول العملات المشفرة نشاطًا عالي المخاطر. ويرجى بذل المجهود الواجب قبل اتخاذ أي إجراء يتعلق بالمحتوى المذكور ضمن هذا التقرير. لا تتحمل بت شين أي مسؤولية في حالة خسارة الأموال في تداول العملات المشفرة.