نموذج Leios التجريبي في Cardano يصلح هجوم توقيت في إعلانات Endorser Block

قام مطورو Cardano بإصلاح عيب توقيت في نموذج Leios التجريبي كان يمكن أن يتسبب في انفصال العقد الصادقة عن بعضها بعضا. أثّر الخلل في منطق إعلان Endorser Block في النموذج التجريبي ولم يكن يوما جزءا من بروتوكول Cardano الرئيسي الحالي.

By SongMarketCap

Cardano News - نموذج Leios التجريبي في Cardano يصلح هجوم توقيت في إعلانات Endorser Block

نموذج Leios التجريبي لدى Cardano تلقى إصلاحا على مستوى الشبكة بعد أن حدّد المطورون هجوم توقيت يتعلق بإعلانات Endorser Block. في ظروف محددة يمكن لمجمّع حصص يمتلك بيانات اعتماد تشغيلية صالحة أن يرسل إعلانا مُؤقّتا بعناية يتسبب في انفصال عقدة صادقة عن نظير صادق آخر كانت رؤيته للسلسلة متأخرة قليلا.

تم دمج الإصلاح في فرع leios-prototype من Ouroboros Consensus في 18 أغسطس وسلط عليه الضوء فريق التوافق في Intersect في 25 أغسطس. بعد ذلك نفذت Blink Labs الحماية المقابلة في Dingo.

اختلاف التوقيت في Leios قد يفصل الأقران الصادقين

Ouroboros Leios هي بنية تحجيم مخططة لدى Cardano صُممت لزيادة معدل معالجة المعاملات مع الحفاظ على خصائص الأمان لبروتوكول الإجماع الأساسي.

يستخدم جزء من التصميم Endorser Blocks التي تحمل بيانات معاملات إضافية إلى جانب كتل الترتيب في Cardano. يمكن للعُقد إعلان Endorser Block قبل وصول بيانات الكتلة الكاملة ما يساعد على انتشار المعلومات عبر الشبكة بكفاءة أكبر.

المشكلة التي تم تحديدها تتعلق برقم إصدار الشهادة التشغيلية أو OCIN المرفق بتلك الإعلانات.

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

كان من الممكن أن يفسر منطق النموذج التجريبي السابق إعلانا يستخدم ذلك OCIN الأقدم كسلوك غير صالح ويقطع اتصال النظير في اتجاه المنبع.

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

أشارت المشكلة إلى أن هذا السلوك يحتاج إلى إصلاح قبل اعتبار منطق الإعلانات مناسبا للشبكة الرئيسية.

منطق Leios الجديد يوقف الانفصال

الإصلاح المدمج يغيّر طريقة تفاعل عقدة Leios عندما تتلقى إعلانا يستخدم OCIN تعتبره قمتها غير القابلة للتغيير ملغى بالفعل.

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

يسمح هذا التغيير لنظير صادق بالتباطؤ مؤقتا دون تصنيفه على أنه خبيث.

وثّق المطورون أيضا حالة متبقية أضيق تتضمن مفاتيح KES تاريخية مُسرّبة. إذ يمكن استخدام مفتاح مُسرّب لإرسال عدد صغير إضافي من إعلانات Endorser Block الزائفة إلى الأقران المباشرين في اتجاه المصب بعد الإلغاء.

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

لا توجد أدلة من مصادر أولية على أن متجه الهجوم هذا أثّر في الشبكة الرئيسية لـ Cardano. آلية الإعلانات المتأثرة تخص نموذج Leios التجريبي وقد تم دمج الإصلاح في فرع التطوير المخصص له بدلا من فرع الإجماع الإنتاجي.

Dingo يعتمد الحماية نفسها في Leios

طبّقت Blink Labs أيضا نموذج التعامل مع OCIN المتقادم في Dingo وهو تطبيقها المستقل لعقدة Cardano.

تم فتح مشكلة Dingo في 26 أغسطس بعد أن حدّد المطورون أن إعلانا موقّعا بشكل صحيح لكنه متقادم ما يزال من الممكن تسجيله وتمريره. تم دمج طلب السحب #3563 في 27 أغسطس.

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

تقرير تحديث التطوير لشهر أغسطس من Intersect أفاد أيضا بتوسيع دعم db-analyser لسلاسل Leios. يمكن للأداة الآن إعادة تشغيل بيانات سلسلة Leios وقياس معاملات Endorser Block المعتمدة وحجمها والوقت المطلوب لقراءتها وتطبيقها. هذا يوسّع الاختبارات إلى ما بعد معدل النقل ليشمل تكاليف معالجة دفتر الأستاذ وسلوك الموارد.

إصلاح الإعلان المتقادم يغطي الآن تطبيقين. غيّر Ouroboros Consensus السلوك في نموذج Leios التجريبي الأصلي في 18 أغسطس بينما اعتمد Dingo التنفيذ المقابل بعد تسعة أيام مما وحّد كيفية تعامل القاعدتين البرمجيتين مع الحالة الحدّية نفسها على الشبكة قبل أن يصل Leios إلى النشر الإنتاجي.