أحدث الأخبار
مختار لك

خلل في SP1 يكشف عن ثغرات في شبكة Prover Network الخاصة بـ Succinct

بقلمراندا موسىراندا موسى 2 دقائق قراءة
كشفت ثغرة SP1 عن شبكة المُثبتين الخاصة بـ Succinct.
  • ترك خطأ عالي الخطورة في سلامة SP1 شبكة Prover Network الرئيسية الخاصة بـ Succinct مفتوحة أمام برهانات غير صالحة.
  • كان العيب موجودًا في مُتحقق Rust الأصلي في الإصدارات من 6.0.0 إلى 6.8.0.
  • نشرت Succinct إصلاح الإصدار 6.8.1 في شبكة Prover Network الرئيسية لديها.

كشف خطأ عالي الخطورة في سلامة نظام إثبات المعرفة الصفرية التابع لـ Succinct، SP1، عن أن شبكة Prover Network الرئيسية للشركة كانت عرضة للبرهانات غير الصالحة.

كانت هذه الشبكة هي النشر الوحيد الذي كانت على علم به شركة Succinct بأنه متأثر، وفقًا لنصيحة أمنية على GitHub نُشرت في 11 أكتوبر.

كان مُتحققو Rust الأصليين في الإصدارات من 6.0.0 إلى 6.8.0 يقبلون برهانات غير صالحة

تشير المشورة الأمنية، المسجلة تحت المعرف GHSA-p7v2-jjv3-8p8f، إلى أن مُثبتاً خبيثاً قد يُقدّم برهاناً لتنفيذ غير صالح، وقام مدقق الشبكة بقبوله. وقد تقبلت شبكة المُثبتين (Prover Network) البراهين من مُثبتين تابعين لطرف ثالث.

وللاستفادة من هذا الثغرة، كان لا بد من إرسال البراهين مباشرةً إلى مدقق Rust الأصلي الخاص بـ SP1. وكانت البراهين من نوع Core و Compressed مكشوفة على هذا المسار.

كانت فحوصات Groth16 و Plonk آمنة لأنها استخدمت براهين مغلفة ذات أشكال ثابتة ولم تتطرق أبداً إلى تنسيق المصفوفات (tensor format) الذي يتحكم فيه المُثبت المتعلق بالثغرة.

كما لم تتأثر أدوات التحقق في Solidity الخاصة بفحوصات Plonk و Groth16 على السلسلة. كانت التطبيقات التي تستخدم دالة verify_sp1_proof للتحقق من براهين Compressed آمنة فقط إذا انتهت عملية تجميع البراهين ببرهان Groth16 أو Plonk.

تشير المشورة الأمنية إلى أن الإصدارات من 6.0.0 إلى 6.8.0 متأثرة في كل من sp1_hypercube و sp1_prover و sp1_sdk. وقد أرسلت شركة Succinct الإصلاح في الإصدار 6.8.1 بتاريخ 24 سبتمبر، أي قبل 17 يوماً من نشر المشورة الأمنية علناً.

كشفت ثغرة SP1 عن شبكة المُثبتين الخاصة بـ Succinct.
تُدرج نصيحة الأمن GHSA-p7v2-jjv3-8p8f الصادرة عن GitHub، والمصنفة على أنها عالية الخطورة، الإصدارات 6.0.0 حتى 6.8.0 من sp1_hypercube وsp1_prover وsp1_sdk كمتأثرة، بينما يُعد الإصدار 6.8.1 مُصلحًا.

تقوم النسخة 6.8.1 بإسقاط المصفوفات (Tensors) التي لا تتطابق أطوال التخزين الخاصة بها.

كان لدى مدقق Rust الأصلي لـ SP1 هذه الثغرة. وهذا هو الجزء من البرنامج الذي يتحقق من صحة البرهان.

تخزن SP1 البيانات متعددة الأبعاد في موتر. يتألف الموتر من مخزن للقيم المخزنة وأبعاد مُعلَّنة تصف شكله.

كلاهما يجب أن يتطابق للتأكد السليم. يجب أن يكون عدد العناصر المخزنة مساوياً لحاصل ضرب الأبعاد المُحدَّدة.

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

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

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

بعد نشر الإصدار 6.8.1، نشرت Succinct الإصلاح في شبكة Prover الرئيسية (mainnet).

لا يحتاج الأشخاص الذين يطلبون إثباتات من الشبكة إلى تغيير أي شيء من جانبهم. أما أي شخص يشغّل مُتحقق Rust الأصلي الخاص به ويقبل إثباتات من مُثبتين لا يثق بهم، فيجب عليه الترقية إلى الإصدار 6.8.1.

وجد فيتاليس ساليس العيب وأبلغ عنه عبر برنامج المكافآت على نقاط الضعف التابع لـ Immunefi، وفقاً للإشعار.

تم الإبلاغ هذا العام من قبل Cryptopolitan عن أخطاء أخرى في سلامة أنظمة البرهان، بما في ذلك خطأ في سلامة Zcash's Orchard shielded pool. كما ناقش Cryptopolitan استغلالًا في Foom.Cash حيث قام مهاجم بتزوير برهانات zkSNARK بسبب سوء تكوين المُتحقق.

أذكى العقول في عالم العملات الرقمية يقرأون بالفعل نشرتنا الإخبارية. هل تريد الانضمام؟ انضم إليهم.

الأسئلة الشائعة

ما هي ثغرة SP1؟

خطأ في الصحة (soundness) في مدقق Rust الأصلي لـ SP1، سمح لمُثبت ضال بإثبات مقبول لتنفيذ غير صالح.

أي إصدارات من SP1 متأثرة وأيها يصلح المشكلة؟

الإصدارات من 6.0.0 إلى 6.8.0 متأثرة، والإصدار 6.8.1 يصلح المشكلة.

هل يحتاج مستخدمو SP1 إلى اتخاذ أي إجراء؟

لا حاجة لإجراء تغييرات على الطلبات في شبكة المُثبتين الرئيسية (Prover Network) الخاصة بـ Succinct. يجب على الفرق التي تشغل مدقق Rust الأصلي بشكل منفصل وتأخذ الإثباتات من مُثبتين غير موثوقين الترقية إلى الإصدار 6.8.1.

شارك هذه المقالة

إخلاء مسؤولية. المعلومات المقدمة ليست نصيحة تداول. Cryptopolitan.com لا تتحمل أي مسؤولية عن أي استثمارات تُجرى بناءً على المعلومات الواردة في هذه الصفحة. نوصي بشدة بإجراء بحث مستقل و/أو الاستعانة بمستشار مؤهل قبل اتخاذ أي قرارات استثمارية.

راندا موسى

راندا موسى

رندا موسى محررة وصحفية في كريبتوبوليتان تغطي التكنولوجيا والذكاء الاصطناعي والروبوتات والعملات الرقمية والاحتيال والاختراقات. عملت في مجال العملات الرقمية منذ عام 2017. شغلت مناصب في Forward Protocol وAmaZix وCryptosomniac. وتحمل رندا درجة البكالوريوس في الهندسة الكهربائية والإلكترونيات من جامعة برادفورد.

المزيد من الأخبار