المشكلة الأساسية: وراء الثنائية، التحقق من الثقة

عندما يقوم معظم الناس بتنزيل Bitcoin Core، تنتهي تفاعلاتهم مع نظام البناء ببضع نقرات. يحصلون على الملف التنفيذي للبرنامج، يتحققون من التوقيع (نأمل!)، ويبدؤون تشغيل عقدة بيتكوين. ما يرونه على الفور هو البرنامج قيد التشغيل. وما لا يرونه هو نظام البناء والعمليات الموسعة التي أنتجت ذلك البرنامج. نظام بناء يمثل مبادئ بيتكوين من اللامركزية والشفافية والتحقق.

وراء ذلك التنزيل يكمن سنوات من العمل الهندسي المصمم للإجابة على سؤال بسيط: «لماذا يجب على أحد أن يثق في هذا البرنامج؟» الجواب هو: لا يجب عليك ذلك. يجب أن تكون قادرًا على التحقق.

في وقت تتصدر فيه هجمات سلسلة إمداد البرمجيات العناوين العالمية، من حزم npm المخترقة، والمكتبات الخلفية، وخوادم CI المارقة، يقف عملية بناء Bitcoin Core كمشروع هادئ من الانضباط. قد تبدو طرقه بطيئة ومعقدة مقارنة براحة «الدفع للنشر»، لكن هذا هو الهدف. الأمان ليس مريحًا.

لفهم نظام بناء Bitcoin Core، يجب أن نفهم:

  • فلسفة نظام بناء Bitcoin Core
  • البناء القابل لإعادة الإنتاج
  • تقليل الاعتمادات
  • عدم وجود تحديثات تلقائية
  • التكامل المستمر
  • التكيف المستمر

فلسفة نظام بناء Bitcoin Core

عندما يتعلق الأمر بلامركزية بيتكوين، يركز معظم الناس على المعدنين، والعُقد، والمطورين. لكن اللامركزية لا تتوقف عند المشاركين في البروتوكول. إنها تمتد إلى طريقة بناء وتوزيع البرنامج نفسه.

مبدأ في نظام بيتكوين هو «لا تثق، بل تحقق». تشغيل عقدتك الخاصة هو فعل من التحقق، حيث تتحقق من كل كتلة ومعاملة وفقًا لقواعد الإجماع. لكن نظام البناء يمنحك فرصة أخرى للتحقق، على مستوى البرنامج. بيتكوين هو مال بدون وسطاء موثوق بهم، وBitcoin Core يعمل ليكون برنامجًا بدون بناة موثوق بهم. يبذل نظام البناء جهودًا كبيرة لضمان أن أي شخص، في أي مكان، يمكنه إعادة إنشاء نفس الملفات الثنائية التي تظهر على موقع bitcoincore.org بشكل مستقل.

تعود هذه الفلسفة إلى مقال كين ثومبسون عام 1984 تأملات في الثقة والثقة، الذي حذر من أن حتى شفرة المصدر النظيفة لا يمكن الوثوق بها إذا كانت المترجم الذي بنى ذلك البرنامج نفسه مخترقًا. أخذ مطورو بيتكوين تلك الدروس على محمل الجد. على حد قول مايكل فورد (فانكويك) من مساهمي Bitcoin Core:

«البناء القابل لإعادة الإنتاج حاسم، لأنه لا ينبغي لأي مستخدم لبرامجنا أن يضطر إلى الثقة فيما يوجد بداخله، بل يجب أن يكون قابلًا للتحقق بشكل مستقل دائمًا.»

تصريح يمثل هدفًا تقنيًا وجزءًا من روح بيتكوين.

في عالم الأمان، يتحدث الناس عن «أسطح الهجوم». يعامل نظام بناء Bitcoin Core عملية البناء نفسها كأسطح هجوم يجب تقليلها والدفاع عنها.

البناء القابل لإعادة الإنتاج: التحقق من الأساس

تبدأ عملية إصدار Bitcoin Core من قاعدة الشفرة مفتوحة المصدر على GitHub. كل تغيير علني. كل طلب سحب يُراجع. لكن الرحلة من الشفرة القابلة للقراءة إلى البرنامج الثنائي القابل للتشغيل تتضمن المترجمات، والمكتبات الخارجية، وأنظمة التشغيل التي يمكن أن تكون ذاتها نقاط اختراق أو أبواب خلفية أو أخطاء.

«الأطراف الثالثة الموثوقة هي ثغرات أمنية» – نيك سزابو (2001)

لمعالجة هذه المخاوف، قام مهندسو Bitcoin Core بتصميم خط أنابيب عملية بناء باستخدام Guix، وهو مدير حزم مصمم لإنشاء بيئات برمجية قابلة لإعادة الإنتاج والحتمية.

عندما يتم وضع علامة على إصدار جديد من Bitcoin Core، يبني عدة مساهمين مستقلين الملفات الثنائية من الصفر باستخدام Guix. يعمل كل منشئ في بيئة معزولة تضمن أدوات متطابقة، وإصدارات مترجم، ومكتبات نظام. إذا أنتج جميع البناؤون مخرجات متطابقة، فإنهم يعرفون أن البناء حتمي.

ثم يوقع المساهمون بشكل تشفيري الملفات الثنائية الناتجة وينشرون تلك التواقيع على مستودع GitHub منفصل يسمى ‘guix.sigs’ الذي يسرد تلك الشهادات لكل إصدار من Bitcoin Core. بعض البناؤون هم مطورو Bitcoin Core، لكن ذلك ليس شرطًا، حيث أن عملية الشهادة مفتوحة للجميع من الجمهور. في الواقع، يساهم العديد من غير المطورين بشكل منتظم بتوقيعات.

تُعرف هذه العملية بالبناء القابل لإعادة الإنتاج، وهي مضاد لـ «الثقة والثقة». تعني أن أي شخص يمكنه أخذ الشفرة مفتوحة المصدر، وبيئة Guix نفسها، ويؤكد بشكل مستقل أن الملف الثنائي الرسمي يتطابق مع ما بناه بنفسه. بينما يمكن للبناء القابل لإعادة الإنتاج التحقق من أن البرنامج هو تمثيل حقيقي لشفرة المصدر، فإن صحة البرنامج تعتمد على عمليات الاختبار والمراجعة الشاملة.

معظم الناس لن يقوموا أبدًا بعملية تجميع كاملة أو يفحصوا ملفات Guix أو يقارنوا تجزئات البناء. لا يحتاجون لذلك. وجود تلك البنية التحتية، والأشخاص الذين يحافظون عليها، يمنح كل مستخدم أساسًا من الثقة المكتسبة.

الملفات الثنائية الرسمية على bitcoincore.org ليست مجرد «منتجة بواسطة محافظي Bitcoin Core». إنها تقاطع مخرجات العديد من البنائين المستقلين. ما تقوم بتنزيله هو ما بناه وحقق الآخرون أصالته.

إنها التحقق من الأسفل للأعلى.

تقليل الاعتمادات: أقل ما يمكن الوثوق به

القدرة على إعادة الإنتاج جانب واحد من المعادلة. الجانب الآخر هو تقليل ما يحتاج إلى إعادة إنتاجه. ليس شفرة Bitcoin Core هي الوحيدة التي تُشغل عند تشغيل Bitcoin Core. يعتمد Bitcoin Core أيضًا على شفرة ومكتبات خارجية من طرف ثالث لتسريع التطوير والإنتاجية.

على مدى العقد الماضي، قام مطورو Bitcoin Core تدريجيًا بإزالة تلك الاعتمادات غير الضرورية وأحيانًا المشكلات، مثل OpenSSL وMiniUPnP. سواء كانت مكتبة خارجية أو أداة، فإن هذه الاعتمادات تضيف تعقيدًا أو تفرض افتراضات مخفية. تتخلص مشاريع مثل Boost وLibevent، التي كانت أساسية في الشفرة، تدريجيًا أو تستبدل بأخرى أبسط وأكثر استقلالية.

لماذا؟ لأن كل اعتماد ترثه هو خطر محتمل على سلسلة الإمداد. هو رمز لم تكتبه أنت، ولا تراجعه، ولا يمكنك السيطرة عليه بالكامل. تقليل الاعتمادات يجعل نظام البناء أخف، وأكثر أمانًا، وأسهل في التحقق.

سلطت شركة Brink مؤخرًا الضوء على هذا الجهد في منشورها «تقليل الاعتمادات»[1]، مشيرة إلى أن الأمر لا يقتصر على البساطة، بل يتعلق بالحفاظ على أمان المشروع واستقلاليته. كل اعتماد تم إزالته هو طرف خارجي أقل يجب أن يثق به المشروع، وأقل احتمال لوجود باب خلفي.

الهدف النهائي هو إنتاج ملفات ثنائية ثابتة بالكامل: برامج تنفيذية تحتوي على كل ما يلزمها للتشغيل، بدون اعتماد على مكتبات ديناميكية أو وقت تشغيل. هذا الاكتفاء الذاتي يعني عدم الاعتماد على مكتبات خارجية قد تختلف من نظام تشغيل لآخر.

في عالم تتزايد فيه برمجيات أكثر وزنًا وأكثر اعتمادًا على أنظمة حزم مركزية، يتحرك Bitcoin Core في الاتجاه المعاكس: نحو التقليل والاستقلالية.

عدم وجود تحديثات تلقائية

في معظم البرمجيات الحديثة، يُحجب المستخدمون عن قرارات تحديث إصدار البرنامج أو قرار التحديث من عدمه. تقوم التطبيقات بتثبيت تحديثات تلقائية وهادئة في الخلفية لأحدث الإصدارات. على الرغم من أن ذلك مريح، إلا أنه يتعارض مع فلسفة Bitcoin Core.

لم يتضمن Bitcoin Core أبدًا تحديثات تلقائية، وقال المطورون إنه لن يفعل ذلك أبدًا. التحديثات التلقائية تركز السلطة. تخلق مجموعة واحدة يمكنها دفع (رمز خبيث محتمل) إلى كل عقدة على الشبكة. هذا هو بالضبط نوع السيطرة المركزية التي بُنيت بيتكوين لتجنبها. من خلال مطالبة المستخدمين بتنزيل، والتحقق، وتثبيت الإصدارات الجديدة يدويًا، يعزز Bitcoin Core المسؤولية الفردية والموافقة القابلة للتحقق.

نظام البناء وعدم وجود تحديثات تلقائية هما نصفا مبدأ واحد. فقط مشغل العقدة يقرر ما يشغل ويمكنه التحقق من أن البرنامج الذي يُشغل أصيل.

التكامل المستمر: تحرك ببطء واصلح الأمور

في وادي السيليكون، يُعد التكامل المستمر والتوزيع المستمر (CI/CD) سمات التطوير البرمجي الرشيق. الشحن بسرعة. التكرار بشكل أسرع. دع الأتمتة تقوم بالباقي.

يتبع Bitcoin Core نهجًا مختلفًا. أنظمة CI الخاصة به لا تهدف إلى تسريع النشر، بل لحماية السلامة. تختبر عمليات البناء الآلية التوافق عبر المنصات. تم تصميم نظام بناء Bitcoin Core ليكون غير مرتبط بالأجهزة وأنظمة التشغيل قدر الإمكان. يمكن للمشروع بناء ملفات ثنائية لنظام Linux وmacOS وWindows بالإضافة إلى معماريات متعددة مثل x86_64 وaarch64 (ARM) وحتى riscv64. يضمن نظام التكامل المستمر هذا التوافق بالإضافة إلى سلامة البرنامج من خلال إجراء مئات الاختبارات لكل تغيير مقترح.

النتيجة هي ثقافة حيث «التكامل المستمر» يعني الاختبار المستمر، والتحقق، والأمان، وليس الابتكار المستمر.

تحرك ببطء واصلح الأمور.

التكيف المستمر: هل انتهينا بعد؟

نظام البناء ليس ثابتًا. يواصل المطورون تحسينه من خلال تقليل الاعتمادات، وتحسين بناء المعماريات المتعددة، واستكشاف مستقبل بناء ثابت بالكامل بدون اعتماد وقت تشغيل.

بينما يسعى نظام بناء Bitcoin Core إلى الحتمية، إلا أن النظام نفسه لا يمكن أن يكون ثابتًا. العالم الذي يعمل فيه يتغير باستمرار. أنظمة التشغيل، والمترجمات، والمكتبات، والمعماريات تتغير جميعها. كل إصدار جديد من macOS أو glibc، وكل إلغاء دعم لعلامة مترجم، أو ظهور معمارية CPU جديدة، يسبب عدم توافق دقيق يجب معالجته. نظام بناء ثابت سيتوقف مع مرور الوقت عن القدرة على البناء.

مفارقة البناء القابل لإعادة الإنتاج هي أنه يتطلب تطورًا مستمرًا ليظل قابلًا لإعادة الإنتاج. يجب على المطورين باستمرار تثبيت، وتعديل، وأحيانًا استبدال أدوات البناء للحفاظ على الحتمية في ظل التغير المستمر. الحفاظ على هذا التوازن بين الاستقرار والمرونة هو جزء من مرونة بيتكوين المستمرة.

شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • تعليق
  • إعادة النشر
  • مشاركة
تعليق
إضافة تعليق
إضافة تعليق
لا توجد تعليقات
  • Gate Fun الساخن

    عرض المزيد
  • القيمة السوقية:$2.27Kعدد الحائزين:1
    0.00%
  • القيمة السوقية:$0.1عدد الحائزين:1
    0.00%
  • القيمة السوقية:$2.29Kعدد الحائزين:1
    0.00%
  • القيمة السوقية:$2.28Kعدد الحائزين:1
    0.00%
  • القيمة السوقية:$2.32Kعدد الحائزين:3
    0.00%
  • تثبيت