إصلاح ثغرة SP1 بعد ظهور خطر الأدلة غير الصالحة
كشفت Succinct عن ثغرة خطيرة في موثوقية نظام SP1 لإثبات المعرفة الصفرية. أثّرت الثغرة على أدوات التحقق الأصلية المكتوبة بلغة Rust في الإصدارات من 6.0.0 إلى 6.8.0، وكان من الممكن أن تسمح لشبكة Prover Network على الشبكة الرئيسية بقبول إثباتات لتنفيذات غير صالحة. نجم الخلل في SP1 عن تحقق أدوات التحقق من تسميات البيانات من دون التأكد من أن عدد العناصر المخزنة يطابق الأبعاد المُعلنة. لم تتأثر فحوصات الشكل الثابت في Groth16 وPlonk، ولا أدوات التحقق على السلسلة المكتوبة بلغة Solidity. أصدرت Succinct الإصدار 6.8.1 في 24 سبتمبر، وأضافت إليه فحصًا للطول أثناء فك التسلسل، ثم نشرته على الشبكة الرئيسية. أبلغ Vitalis Salis عن المشكلة عبر Immunefi. ينبغي للمستخدمين الذين يشغّلون أدوات تحقق أصلية بلغة Rust ويقبلون إثباتات من جهات غير موثوقة إنشاء الإثباتات أن يحدّثوا إلى الإصدار 6.8.1.
Neutral
شكّلت الثغرة خطراً أمنياً ملموساً: فلو جرى استغلالها، لكان من الممكن أن تقبل أدوات التحقق الأصلية المتأثرة في SP1 والمكتوبة بلغة Rust براهين تنفيذ غير صالحة، مما قد يقوّض التطبيقات التي تعتمد عليها. ومع ذلك، يذكر التقرير أن Succinct أصدرت إصلاحاً ونشرته، في حين لم تتأثر فحوص Groth16 وPlonk ذات البنية الثابتة ولا أدوات التحقق Solidity على السلسلة. وهذا يحدّ من مؤشرات وجود تهديد مستمر وواسع النطاق للسوق. والأثر المباشر الأرجح هو الحاجة إلى إجراءات تشغيلية محددة للمستخدمين الذين يشغّلون أدوات التحقق المتأثرة المكتوبة بلغة Rust، لا حدوث ضغط فوري على أسعار العملات المشفّرة. وعلى المدى القصير، قد يراقب المتداولون عن كثب المشاريع المرتبطة بـ SP1، ونشاط التحقق، وأي إفصاحات عن استغلال الثغرة أو وقوع خسائر. وعلى المدى الطويل، قد تعزز الحادثة التدقيق في تطبيقات أنظمة البراهين وتزيد الطلب على عمليات التدقيق وتحديث الإصدارات وفحوصات الحماية متعددة الطبقات. وقد تؤدي ثغرات البنية التحتية المماثلة إلى تحركات حادة عندما تتسبب في خسارة أموال أو تعطيل خدمات على مستوى الشبكة؛ وفي غياب أدلة على الاستغلال أو التعطيل المستمر في هذه الحالة، يكون التقييم المحايد للسوق أكثر ملاءمة.