الشوكة الناعمة هي انتقال منسق من مجموعة الصلاحية V (القديمة) إلى مجموعتها الفرعية V (جديدة). يحدد التنشيط الكتلة التي تفرض عليها العقد الكاملة المحدثة القيد. يمكن أن تعمل إشارات المُعدِّن على تنسيق الاستعداد، ولكن يتم تحديد الصلاحية من خلال قاعدة يتم تشغيلها في العقد؛ التصميم والتنفيذ والنشر والتنشيط والاعتماد ليسوا نفس الشيء.
لنضع علامة V(old) على جميع الكتل المقبولة بموجب القواعد قبل الترقية. التغيير عبارة عن شوكة ناعمة فقط إذا كانت V (جديدة) تقع داخل V (قديمة): سترفض العقدة الجديدة الفئة التالية من الكتل، لكن الكتلة المطابقة للقواعد الجديدة ستجتاز أيضًا عمليات التحقق القديمة. يشير الاسم إلى توافق قواعد الصلاحية، وليس الحجم أو الأمان أو التوافق الاجتماعي للتغيير. تؤدي زيادة الحد المرئي للعقدة القديمة أو السماح بإنفاق غير صالح سابقًا إلى توسيع المجمع وعادة ما يتطلب شوكة صلبة. [دليل مطوري البيتكوين - تغييرات قاعدة الإجماع] [Bitcoin Optech - تنشيط الشوكة الناعمة]
يمكن للعقدة الكاملة القديمة الاستمرار في متابعة السلسلة لأن عمال المناجم المحدثين يقومون بشكل روتيني بإنشاء كتل تتعرف عليها. لكنه لا يتحقق من الشرط المضافة. إذا انتهك فرع به المزيد من العمل القاعدة الجديدة، فيمكن للعقدة القديمة قبولها، بينما ترفضها العقدة المحدثة. يجب على أولئك الذين يحتاجون إلى ضمان جديد تحديث برنامج التحقق الخاص بهم؛ إن قدرة المحفظة على قبول الدفع وتوافق التنسيق والتحقق الكامل من الإجماع هي أشياء مختلفة. [دليل مطور البيتكوين - تغييرات قاعدة الإجماع] [BIP 341 - نشر Taproot]
أنشأت Bitcoin مجموعات فرعية باستخدام عدة تقنيات. حظر BIP66 توقيعات DER غير الصارمة التي قبلتها القواعد القديمة. أضاف BIP65 وBIP112 شروطًا إلى أكواد تشغيل NOP التي اعتبرها المترجم القديم بمثابة عدم القيام بأي شيء ناجح. أعطى SegWit وTaproot معنى للإصدارات المحجوزة من برنامج الشاهد، الذي تعتبره العقدة القديمة أنه يمكن لأي شخص إنفاقه. وفي الوقت نفسه، يجب أن يمنع التصميم التحايل على عنصر التحكم الجديد؛ لذلك التزمت SegWit ببيانات الشهود عبر Coinbase وحافظت على قواعد الكتلة الأساسية القديمة. [BIP 66 - توقيعات DER الصارمة] [BIP 65 - التحقق من وقت التحقق] [BIP 112 - التحقق من التحقق من التسلسل] [BIP 141 - الشاهد المنفصل] [BIP 341 - نشر الجذر الرئيسي]
قد تحتوي التعليمات البرمجية على قاعدة غير نشطة قبل وقت طويل من دخولها حيز التنفيذ على الشبكة الرئيسية. BIP والتنفيذ الذي تم التحقق منه لا يمثلان عمليات نشر، ومعلمات النشر ليست مقفلة، والقفل فقط يخطط للتنفيذ المستقبلي، والحالة النشطة فقط تعني التحقق من الكتلة المحددة. تحسب كل عقدة الحالة من أسلاف فرعها الخاص. قد تؤدي إعادة التنظيم عند الحدود إلى إعادة حسابها، وقد تبدأ البرامج ذات المعلمات المختلفة في فرض قواعد غير متوافقة. [BIP 9 - بتات الإصدار مع مهلة وتأخير] [Bitcoin Core - versionbits.cpp]
يقوم BIP9 بتعيين اسم وإصدار البت ووقت البدء والمهلة للنشر. يقوم متغير الشبكة الرئيسية الأصلي بتقييم الفترات بعد 2,016 كتلة: بعد 1,916 كتلة إشارة على الأقل، أي 95%، تنتقل من STARTED إلى LOCKED_IN، وتنتظر فترة واحدة ثم تصبح نشطة؛ وإلا فقد ينتهي الأمر بالفشل. التسلسل الكامل هو محدد، وبدء، وLOCKED_IN، ونشط، وفشل. تعتمد حالة الكتلة على أسلافها، وليس على nVersion الخاص بها، ولم تعد الإشارة بعد القفل تغير النتيجة. [BIP 9 — بتات الإصدار مع المهلة والتأخير]
تشير Versionbits إلى جاهزية المُعدِّن وتنسيق عملية الانتقال؛ إنهم لا يمنحون عمال المناجم ملكية دائمة للإجماع. يستخدم BIP8 الارتفاعات ومع lockinontimeout يمكنه فرض الإشارة في النافذة الأخيرة. من ناحية أخرى، أمر BIP148 العقد المشاركة برفض كتل الإشارات غير SegWit؛ خفض BIP91 عتبة التعدين للتنسيق مع هذا الضغط. يمكن أن يؤدي التنشيط الإلزامي إلى تقسيم السلسلة إذا تباينت العقد ومعدل التجزئة والاعتماد الاقتصادي، وبالتالي فإن طريقة التنشيط تعتبر بمثابة حل وسط أمني. [BIP 8 - بتات الإصدار مع قفل حسب الارتفاع] [BIP 148 - التنشيط الإلزامي لـ SegWit] [BIP 91 - الحد الأدنى لـ SegWit MASF] [Bitcoin Optech - تنشيط الشوكة الناعمة]
تم تنشيط P2SH ضمن BIP16 في عام 2012 من خلال إشارات قاعدة العملات والحد الزمني. استخدم BIP34 إصدار الكتلة وعتبة الارتفاع الإلزامي في قاعدة العملات. تم تشغيل نفس إجراء الأعداد الصحيحة بشكل صارم لـ DER في BIP66 وCHECKLOCKTIMEVERIFY في BIP65، ولكنه استهلك قيم الإصدار ولم يتمكن من إجراء عمليات نشر متزامنة. لذلك قدم BIP9 بتات مستقلة. تم بعد ذلك تنشيط BIP68 وBIP112 وBIP113 معًا كوقت قفل نسبي وملف CSV على ارتفاع 419,328 في عام 2016. [BIP 16 - الدفع مقابل تجزئة البرنامج النصي] [BIP 34 - الكتلة v2، الارتفاع في قاعدة العملات] [BIP 65 - CHECKLOCKTIMEVERIFY] [BIP 66 - توقيعات DER الصارمة] [BIP 112 - التحقق من التسلسلالتحقق]
تم تفعيل SegWit على 481,824 في أغسطس 2017. ترى العقدة القديمة معاملة بدون بيانات الشهود وتعتبر الشاهد v0 بمثابة إمكانية إنفاق أي شخص؛ شاهد التحقق المحدث وملخص التوقيع الجديد وقواعد مكافحة القابلية للطرق. إن التزام Merkle بمشاهدة البيانات في مخرجات قاعدة العملات يمنع القائم بالتعدين من تغيير البيانات أو حذفها دون اكتشافها. أدت فواتير الوزن إلى زيادة السعة الفعالة دون أن تتجاوز الكتلة الأساسية المرئية للعقدة القديمة الحد القديم وهو ميغابايت واحد. [BIP 141 — شاهد منفصل]
يشهد BIP341 وBIP342 الإصدار 1 من برنامج المسار الرئيسي ومسار البرنامج النصي مع توقيعات Schnorr وTapscript. تعامل العقدة القديمة مرة أخرى البرنامج المحجوز على أنه يمكن لأي شخص إنفاقه: يتم الاحتفاظ بالمجموعة الفرعية، بينما لا يتم الاحتفاظ بالتحقق الكامل. استخدمت الشبكة الرئيسية تجربة BIP9 السريعة المعدلة بحد أدنى 1,815 من 2,016 كتلة، أو 90%، وحد أدنى لارتفاع التنشيط يبلغ 709,632. تم تفعيل Taproot فيه بتاريخ 14 نوفمبر 2021؛ قواعد Taproot وكيفية تفعيلها هما سؤالان منفصلان للتدقيق. [BIP 341 - نشر Taproot] [BIP 342 - Tapscript] [ملاحظات إصدار Bitcoin Core 0.21.1 - نشر Taproot]
عندما تم تنشيط BIP66 في يوليو 2015، أشار بعض القائمين بالتعدين إلى الإصدار الجديد لكنهم لم يتحققوا بشكل كافٍ من صحة الكتلة الأصلية التي كانوا يقومون بالتعدين عليها. لقد قاموا بتوسيع الكتلة غير الصالحة وإنشاء فرع غير صالح مكون من ستة كتل في 4 يوليو؛ وتبع ذلك حادثة أخرى أقصر في اليوم التالي. تم رفض عقد التحقق المحدثة كلا الفرعين. رقم الإصدار أو البت هو مطالبة من قبل القائم بالتعدين، وليس دليلاً على أنه قام بنفسه بالتحقق من القالب والأصول والمعاملات. [BIP 66 - توقيعات DER الصارمة] [Bitcoin.org - تنبيه شوكة سلسلة BIP66 لشهر يوليو 2015]
في الحالة النشطة، ترفض العقد المحدثة الكتلة المخالفة بغض النظر عن مشاركة معدل التجزئة؛ ويعتمد نشوء تقسيم دائم على عمل الفروع واستخدامها الاقتصادي. إن مجرد إزالة التقييد سيؤدي إلى إعادة تمكين الكتل غير الصالحة اليوم، وبالتالي فهو شوكة صلبة؛ يمكن استبدال المعلمات أو التعليمات البرمجية بإصدار منسق قبل التنشيط. يتحقق المشغل من نسخته الخاصة، أو getdeploymentinfo أو getblockchaininfo، والمعلمات الدقيقة، وارتفاع التنشيط والسجلات. لا يمكن للرسم البياني للإشارة ولا تسمية المستكشف أن يحل محل التحقق المحلي. [دليل مطور Bitcoin - تغييرات قاعدة الإجماع] [Bitcoin Core - versionbits.cpp] [ملاحظات إصدار Bitcoin Core 0.21.1 - نشر Taproot]
للحصول على صورة أوضح، اقرأ هذا المدخل مع قواعد الإجماع, BIP (Bitcoin Improvement Proposal), SegWit, Taproot, Hard Fork, Bitcoin. تشير إلى هذا المدخل أيضًا Hard Fork, BIP (Bitcoin Improvement Proposal), قواعد الإجماع, Reorg.