تم الكشف عن خطأ شديد الخطورة في برنامج Bitcoin بعد عامين من الإصلاح

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

الخلل في الكود

يقول مقال نشره يوم الأربعاء برايدون فولر، مهندس البروتوكول في موقع تسوق العملات المشفرة Purse، وجاويد خان، أحد كبار مطوري بروتوكول Handshake، إنهما اكتشفا الثغرة الأمنية في يونيو 2018.

تم تعيين مستوى خطورة الخطأ 7,8 على مقياس من 1 إلى 10، والذي يعتبر "مرتفعًا" (9 وما فوق يعتبر "حرجًا"). وقال خان إن المشكلة ناجمة عن "العقد البعيدة" التي فشلت في محو المعاملات غير الصالحة من ذاكرتها.

تنص الوثيقة على أن الفشل في مسح مثل هذه المعاملات قد يؤدي إلى هجوم يقوم بتحميل العقدة الضحية ببيانات قديمة فيما يسمى "استهلاك الموارد غير المنضبط"، مما يؤدي في النهاية إلى إغلاق العقدة نفسها.

كانت حلول الطبقة الثانية (L2) مثل Lightning Network، وهو نظام الدفع التجريبي المبني على Bitcoin blockchain، معرضة للخطر بسبب هذا الخطأ. ومع ذلك، لم تكن عقد البيتكوين الكاملة معرضة لخطر خسارة الأموال.

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

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

تم إدخال الخلل في الكود في Bitcoin Core في نوفمبر 2017. ومن المحتمل أن يكون حوالي 50٪ من عقد Bitcoin في ذلك الوقت قد تعرض للهجوم، وفقًا للوثيقة. لم تواجه الإصدارات السابقة من Bitcoin Core هذا النوع من المشكلات.

ليس فقط بيتكوين كور

وقال خان إن الثغرة الأمنية ربما سمحت للمهاجم بسرقة الأموال من العقد التي لديها قنوات مفتوحة لـ Lightning. تم تحليل وتصحيح إصدارات Bitcoin Core 0.16.0 و0.16.1 بواسطة المطور Matt Corallo بعد كشف فولر للفريق الأساسي في يوليو 2018.

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

  • عقدة البيتكوين v0.16.0
  • جميع الإصدارات التجريبية من Bcoin حتى الإصدار 1.0.0-pre
  • جميع إصدارات Btcd حتى الإصدار 0.20.1-beta
  • لايتكوين كور v0.16.0
  • Namecoin الأساسية v0.16.1
  • جميع إصدارات Dcrd حتى الإصدار 1.5.1.

وقد تم تصحيح كل هذه التطبيقات.