BIP اختصار لعبارة Bitcoin Improvement Proposal. وهو مستند يصف حلًا تقنيًا أو إجراءً أو معلومات مهمة تتعلق بـBitcoin. يستطيع الآخرون دراسته والاعتراض عليه وربما استخدامه؛ ولا يؤدي نشره تلقائيًا إلى تغيير البرامج أو قواعد الشبكة.
تُعِدّ آنا دفعة على الحاسوب، لكنها تريد توقيعها بمحفظة عتادية من شركة أخرى. يجب أن يفهم البرنامجان البيانات المتبادلة بينهما. يعالج BIP 174 هذه المشكلة تحديدًا: فهو يصف PSBT، صيغة مشتركة لنقل معاملة لم تكتمل بعد والمعلومات اللازمة لتوقيعها. يستطيع المطورون اتباع مستند واحد بدل ابتكار صيغ غير متوافقة كلٌّ على حدة. وهذا مثال عملي على فائدة وجود BIP. [8]
تمثل الأرقام المختلفة أعمالًا مختلفة. يصف BIP39 إنشاء كلمات الاستعادة وتحويلها إلى seed، أي البيانات الأولية التي تُشتق منها مفاتيح المحفظة. ويصف BIP 141 تقنية SegWit، وهي تغيير في قواعد معالجة المعاملات بدأ تطبيقه بعد التفعيل في الشبكة. ويساعد BIP 174 المحافظ على تبادل معاملات للتوقيع دون تغيير صلاحية الكتل. أما BIP 50 فيوثّق أسباب حادثة مارس 2013 التي قسمت الشبكة مؤقتًا وكيف عولجت. إذن لا يقترح كل BIP قاعدة جديدة لـBitcoin. [6] [7] [8] [9]
وصف الحل وبرمجته واستخدامه خطوات منفصلة. يُسمّى الوصف مواصفة، وتُسمّى الشيفرة تنفيذًا برمجيًا. قد تجرّب محفظة مقترحًا ما زال مسودة، بينما لا يكون لمستند آخر أي برنامج مستخدم بعد. وعند تغيير قواعد صلاحية الكتل، توجد أيضًا مرحلة التفعيل: اللحظة التي تبدأ فيها البرامج المعنية بفرض القواعد. نشر المستند لا يحدّث عقدتك تلقائيًا، أي الحاسوب الذي يتحقق من قواعد الشبكة. [7] [10]
يساعد الرقم أساسًا على العثور على المستند الصحيح ومتابعة النقاش نفسه. ولا يعني الرقم الأكبر مقترحًا أفضل أو تحديثًا موصى به. فقد يبقى المستند المرقّم غير مكتمل أو يُترك جانبًا. وإذا أعلنت خدمة دعم BIP معين، فلا يزال عليك معرفة الوظيفة المقصودة وما إذا كان إصدار البرنامج المحدد يوفرها فعلًا. [2]
يدرس المؤلفون أولًا الأعمال السابقة ويناقشون الفكرة في Bitcoin Development Mailing List، وهي مناقشة علنية للمطورين عبر البريد الإلكتروني. قد تكشف الملاحظات مشكلة قبل كتابة مستند طويل. ثم يُقدَّم المقترح الناضج بما يكفي إلى المستودع المشترك bitcoin/bips على GitHub من خلال pull request، أي طلب لإدراجه. لا يختار المؤلفون الرقم بأنفسهم؛ بل يخصصه محرر بعد فحص الموضوع والتنسيق ومدى جاهزية المقترح. [1]
يهتم BIP Editors بالمستندات المنشورة: يفحصون النقاش السابق ووضوح النص والتنسيق والترخيص، ويخصصون الأرقام ويحافظون على السجلات. وهذا لا يمنحهم سلطة تحديد البرنامج الذي تستخدمه أو القواعد التي تقبلها عقدتك. وجود المستند في المستودع لا يضمن الأمان أو اتفاق المجتمع. أما الاستخدام الفعلي فتقرره المشاريع والمشاركون في الشبكة. [1]
إذا قال خبر إن BIP جديدًا حصل على الموافقة، فافتح المستند لتعرف ما الذي حدث. هل حصل على رقم فقط، أم أنهى المؤلفون عملهم، أم توجد وظيفة مدعومة تُستخدم بالفعل؟ بالنسبة للمحفظة، ابحث عن الأدلة في وثائقها وإصداراتها المنشورة؛ وعند تغيير قواعد الشبكة، تحقّق أيضًا من شروط التفعيل ومساره. بذلك تميّز بين مقترح مثير للاهتمام ووظيفة يمكنك استخدامها الآن. [10] [2]
يصف BIP 3، وعنوانه Updated BIP Process، الإجراء الحالي، وحالته Deployed. وقد حل محل BIP 2 وبسّط أنواع المستندات وحالاتها. لذلك قد تجد في المقالات القديمة Standards Track أو Final، وهي تسميات لا تطابق التقسيم الحالي. ارجع إلى الملف المحدث وتاريخ تعديلاته. وظيفة المستودع نشر المقترحات وحفظها، وليس التصويت على مستقبل Bitcoin. [1] [5]
يصف Specification قواعد تقنية تتيح بناء برامج متوافقة فيما بينها. وقبل اكتماله يتطلب أيضًا تنفيذًا مرجعيًا يعمل، أي برنامجًا يوضح كيفية تطبيق الحل، ومتجهات اختبار، أي أمثلة لمدخلات ونتائجها المتوقعة. ويقدم Informational معلومات أو تحليلًا أو إرشادات. أما Process فينظم طريقة العمل، مثل نشر مستندات BIP نفسها. وينتمي BIP 3 إلى هذه الفئة الأخيرة؛ فهو لا يعرّف صيغة جديدة لمعاملة Bitcoin. [1]
Draft يعني أن العمل ما زال جاريًا. ويعني Complete أن المؤلفين أنهوا العمل المخطط ويوصون بالتبني. ويشير Deployed إلى استخدام فعلي مثبت؛ وفي Process قد يعني تحقق rough consensus المطلوب، أي توافق واسع بعد النقاش ومعالجة الاعتراضات الموضوعية، وليس مجرد عدّ الأصوات. أما Closed فيشير إلى مادة تاريخية لم يعد يجري تطويرها أو الترويج لها أو استخدامها بصورة نشطة. لكنها تبقى في الأرشيف. وحتى Deployed لا يعني أن كل محفظة تدعم المقترح. [1]
تورد ترويسة المستند المؤلفين والنوع والحالة وتاريخ تخصيص الرقم والترخيص وروابط النقاش. ويسرد Requires مستندات BIP الأخرى اللازمة، وReplaces المقترحات المراد استبدالها، وProposed-Replacement خلفًا محتملًا. وبعد بلوغ حالة Complete تُسجّل التعديلات اللاحقة في Changelog، أي سجل التغييرات، مع التاريخ ورقم الإصدار. ويشير حقل Version في الترويسة إلى الإصدار الحالي للمستند. والتغيير غير المتوافق مع التصميم السابق ينبغي عادةً أن يحصل على BIP جديد، حتى لا يبدأ الرقم نفسه بالدلالة على شيء مختلف دون تنبيه. [1]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Soft Fork, قواعد الإجماع, Bitcoin Core, Bitcoin, Hard Fork, BIP 39. تشير إلى هذا المدخل أيضًا Soft Fork, حرب حجم الكتلة, Bitcoin Core, التعلّم عن بيتكوين.