في 26 يونيو 2025، تعرض العقد المُستخدم بواسطة بروتوكول العملات المستقرة "ريسببلي" على شبكة إيثريوم الرئيسية لهجوم، مما أدى إلى خسارة ما يقارب 10 ملايين دولار من الأصول. وبسبب مشاكل في تطبيق أوراكل الأسعار للعقد المعني، بالنسبة للسوق منخفضة السيولة المُنشأة حديثًا، يمكن للمهاجم التلاعب بالسعر النسبي (أي سعر الصرف بين الأصل المُقرض والأصل المرهون) للأصل المُقرض (عملة ري يو إس دي المستقرة الصادرة عن ري يو إس دي) إلى 0 من خلال هجوم تبرع، متجاوزًا بذلك فحص سلامة الأصل ومُقرضًا مبلغًا كبيرًا من ري يو إس دي لتحقيق ربح.
الخلفية
1.1 حول بروتوكول Resupply
Resupply هو بروتوكول عملة مستقرة لامركزي[1]، وهو جزء من منظومة Curve. العملة المستقرة التي أصدرتها شركة Resupply تُسمى reUSD، وهي عملة مستقرة لامركزية مدعومة بمراكز ديون مضمونة (CDPs)، وتدعمها عملات مستقرة أخرى تُحقق فائدة في سوق الإقراض عبر منصات خارجية، بما في ذلك crvUSD وfrxUSD. يمكن للمستخدمين توفير crvUSD وfrxUSD لاقتراض reUSD وتحقيق إعادة تمويل أصول العملة المستقرة.

على وجه التحديد، يمكن للمستخدمين إجراء عمليات الإقراض والاقتراض في سوق Resupply المُستخدم على السلسلة. تُدير منظمة DAO إنشاء السوق وسلوكه. يُحدد كل سوق خزنة ERC-4626 كأصل ضمان، ويستخدم الأصل المقابل للخزنة كأصل أساسي. يقترض المستخدمون عملة reUSD بإيداع ضمان (الخزنة أو أصل الخزنة) في السوق.
بأخذ السوق 0x6e90 والخزنة 0x0114 المتورطين في الهجوم كمثال، فإن الأصول ذات الصلة (الرموز) المعنية هي كما يلي:
السوق 0x6e90:
الخزنة 0x0114:
الأصل: crvUSD (مخزن فعليًا في Curve LlamaLend Controller، وهو أيضًا سوق، وليس مهمًا لفهم الهجوم)
الضمان: wstUSR (أي الأصول الضمانية لـ Curve LlamaLend Controller)
المقترض: crvUSD (أي الأصول الضمانية لـ Curve LlamaLend Controller
المشاركة: cvcrvUSD (أي Vault نفسها، رمز ERC-4626)، هي المشاركة المقابلة لـ الأصل
أي أنه يمكن للمستخدمين إيداع مبلغ معين من cvcrvUSD (أو crvUSD، ولكن سيتم تحويله فعليًا إلى cvcrvUSD من خلال Vault) في السوق لاقتراض reUSD، كما هو موضح في الشكل:

1.2 كيف يمكن تحديد ما إذا كان المستخدم مؤهلاً لإقراض أصل معين؟

سيستدعي isSolvent في النهاية دالة _isSolvent، حيث يتحقق من نسبة القرض إلى القيمة (LTV)، مع اشتراط ألا تتجاوز نسبة القرض إلى القيمة بين أصول المستخدم المُقرضة وأصول الرهن العقاري الحد الأقصى للقيمة الذي حدده النظام (_ltv <= maxLTV).
يمكن ملاحظة أن حساب نسبة القرض إلى القيمة أعلاه يعتمد على سعر الصرف (معدل الصرف في الكود)، أي سعر الأصل المُقرض مقارنةً بأصل الرهن العقاري (نسبة الصرف).
تحليل الهجوم
2.1 تحليل السبب الجذري
من منظور كود العقد، يكمن سر الهجوم في وجود مشكلة في تطبيق أوراكل الأسعار لسوق إعادة التوريد. بالنسبة لنموذج حديث الإنشاء في سوق السيولة المنخفضة، يمكن للمهاجم التلاعب بسعر الصرف من خلال هجوم التبرع، وبالتالي تجاوز فحص الصحة وإقراض مبلغ كبير من reUSD لتحقيق الربح.
كيف تحسب سعر الصرف في سوق إعادة الإمداد؟

وفقًا للكود أعلاه، تكون صيغة حساب سعر الصرف كما يلي:

من البديهي أنه إذا كان السعر المُرجع بواسطة دالة getPrices أكبر من 1e36، فإن التقريب للأسفل من قسمة العدد الصحيح سيؤدي إلى _exchangeRate = 0.
كيف يُمكنني التلاعب بالسعر؟


وفقًا للكود أعلاه، تكون طريقة حساب السعر كما يلي:

ومن بينها:

نظرًا لأن الدقة = 1، وDEAD_SHARES = 1000، والأسهم = 1e18 مُعيَّنة في الكود، وبالتالي:

وأخيرًا، بعد استبدال المتغيرات، تكون صيغة حساب السعر كما يلي:

يمكن ملاحظة أن مفتاح تضخيم قيمة السعر يكمن في كيفية توسيع الفجوة بين إجمالي الأصول وإجمالي العرض، بحيث يكون إجمالي الأصول كبيرًا للغاية وإجمالي العرض صغيرًا للغاية. في التنفيذ الفعلي لبروتوكول Resupply، يعتمد إجمالي الأصول في الصيغة على الأصل الأساسي (crvUSD)، ويعتمد إجمالي العرض على الحصة (cvcrvUSD) المقابلة للسيولة الإجمالية في السوق. هذا هو سيناريو هجوم التبرع التقليدي. 2.2 تحليل معاملات الهجوم: بناءً على معاملات الهجوم [4]، يمكننا تحليل أن المهاجم نفذ العمليات الأساسية التالية: 1. اقترض 4000 دولار أمريكي من خلال قرض سريع و تم استبداله بـ 3,999 crvUSD. 2. تم التبرع بـ 2,000 crvUSD إلى المتحكم 0x8970.
3. تم إيداع حوالي 2 crvUSD في الخزنة 0x0114 وحصلت على 1 سهم (cvcrvUSD).
4. أضف وحدة واحدة (أي سهم واحد من الخزنة 0x0114) من الضمانات إلى السوق 0x6e90.
5. اقترض 10,000,000 reUSD من السوق 0x6e90.

لماذا _exchangeRate تساوي 0 في هذا الوقت؟ لأن المهاجم تلاعب بالعقد إلى ما يلي قم بالخطوات السابقة:

راجع حساب سعر الصرف:

نظرًا لأن السعر > 1e36 في هذا الوقت، _exchangeRate = 0.
6. استبدل الدولار الأمريكي المقترض بالربح.
الدروس المستفادة
إعادة التوريد يشبه تنفيذ أوراكل الأسعار في السوق التي تعرضت للهجوم عقد القالب الذي توفره Curve[11]:

ومع ذلك، أعطى Curve نطاق تطبيق هذا التنفيذ:

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

تُعد Curve Finance جوهر المنظومة بأكملها، حيث توفر مجموعات سيولة، وcrvUSD، وLlamaLend. يدعم بروتوكول Curve تشغيل Resupply، وPrisma، وConvex، وYearn. يُحسّن Convex عوائد Curve من خلال التخزين والحوكمة، ويوفر آليات مكافآت إضافية لكلٍّ من Prisma وResupply. تعتمد Prisma على رموز LP الخاصة بـ Curve ووظائف تحسين العائد الخاصة بـ Convex، بينما تُصدر Resupply عملة reUSD مباشرةً بناءً على LlamaLend الخاصة بـ Curve، وهي مُطوّرة بشكل مشترك من قِبل Convex وYearn. لا يُحسّن Yearn عوائد تجمع Curve فحسب، بل يُحسّنها أيضًا يُشجع تطوير Resupply من خلال التعاون مع Convex.
Curve Finance: كمنصة أساسية، تستخدم Resupply مباشرةً مجموعات السيولة الخاصة بـ Curve (مثل مجموعات crvUSD) وبروتوكولات LlamaLend لإصدار reUSD، بينما تُستخدم Prisma لإيداع رموز LP، وتُستخدم Yearn لتحسين العائد، وتُستخدم Convex لحوكمة التصويت.
Convex Finance: Convex هو بروتوكول Curve لتحسين العائد. يمكن للمستخدمين الحصول على مكافآت CRV أعلى ورموز CVX الخاصة بـ Convex من خلال إيداع رموز Curve LP. تتحكم Convex في ما يقرب من 50% من وزن حوكمة Curve، وتوفر آلية لتحسين العائد لـ Prisma و إعادة التزويد.
Prisma Finance: تستخدم Prisma رموز Curve LP للإيداع، ويحصل المستخدمون على مكافآت مُحسّنة من خلال Convex (cvxPRISMA). تعتمد Prisma على سيولة Curve وآلية عائد Convex.
Yearn Finance: Yearn هي منصة تجميع عوائد تُوفر للمستخدمين عوائد عالية من خلال تحسين عوائد رموز LP لمجموعة Curve (مثل تلك المُحسّنة بواسطة Convex). عملت Yearn مع Convex لتطوير Resupply، وتستخدم مجموعات Curve على نطاق واسع في استراتيجية العائد الخاصة بها.
Resupply: طُوّرت بالتعاون المشترك بين Convex و Yearn، يسمح للمستخدمين بالحصول على reUSD عن طريق إقراض عملات مستقرة مثل crvUSD، ووضع الرموز تلقائيًا على Convex لكسب مكافآت CRV وCVX، مما يُشكل حلقة مغلقة لتحسين العائد. 4.2 الجدل والتأثير 4.2 الجدل والتأثير 4.2 الجدل والتأثير 4.2 الجدل والتأثير 4.2 الجدل والتأثير 4.2 الجدل والتأثير 4.2 الجدل والتأثير 4.2 الجدل والتأثير 4.2 الجدل حول Resupply: ... نظام بيئي شديد الترابط - في مثل هذا النظام، قد تُؤدي أي مشكلة في أي رابط إلى تفاعل متسلسل. لذلك، ليس من المستغرب أن تُثير حادثة هجوم Resupply نقاشات واسعة في المجتمع حول أهمية وأمان البروتوكول[5].
أفكار إضافية
5.1 الجدول الزمني
في 17 مايو 2025، نشر العنوان الرسمي لـ Resupply 0x1f84 سوق LlamaLend جديد[6] من خلال مصنع الإقراض أحادي الاتجاه التابع لشركة Curve، حيث:
في 31 مايو 2025، تم إطلاق اقتراح جديد لسوق LlamaLend طويل الأجل wstUSR[7] على صفحة حوكمة Resupply. يهدف الاقتراح إلى السماح للمستخدمين بسك عملة reUSD من خلال سوق LlamaLend.
في 11 يونيو، في عام ٢٠٢٥، تم إصدار المقترح على السلسلة[٨].
في ٢٦ يونيو ٢٠٢٥، الساعة ٠٠:١٨:٤٧ (بالتوقيت العالمي المنسق)، تم إقرار المقترح، ونشر عنوان Resupply الرسمي ٠x٠٤١٧ [٩] زوج ResupplyPair جديد (أي سوق Resupply crvUSD/wstUSR) ٠x٦e٩٠ على السلسلة. هذا السوق:
في 26 يونيو 2025، الساعة 01:53:59 (بالتوقيت العالمي المنسق)، بعد حوالي ساعة ونصف من نشر Market 0x6e90 على السلسلة، نفذ المهاجم الهجوم بنجاح[4]؛ وفي الوقت نفسه، اكتشف BlockSec الهجوم وحاول الاتصال بفريق المشروع.
في 26 يونيو 2025، الساعة 02:26 (بالتوقيت العالمي المنسق)، بعد فشل فريق المشروع وتأكيده عدم إمكانية حدوث المزيد من الخسائر، أصدر BlockSec تحذيرًا عامًا[2].
في 26 يونيو في ٢٦ فبراير ٢٠٢٥، الساعة ٠٢:٥٣:٢٣ (بالتوقيت العالمي المنسق)، علّق فريق المشروع الاتفاقية[٤]. ٥.٢ كان من الممكن تجنّب الكارثة لو كان نظام فالكون متاحًا. عُرض فيلم كارثة ResupplyFi في وقت متأخر من الليل، ودقّ نظام BlockSec Phalcon أول جرس إنذار للشبكة بأكملها [٢]. لم يكن هذا مجرد فكرة عابرة، بل كان جرس إنذار دقّ لحظة وقوع الهجوم.
بمراقبة المعاملات في مرحلة تجمع الذاكرة، يستطيع فالكون تحديد الأنماط غير الطبيعية لحظة دخول معاملات الهجوم إلى تجمع الذاكرة. استنادًا إلى محرك تحليل ذكيّ مدفوع بالذكاء الاصطناعي، يدمج النظام أكثر من ٢٠٠ ميزة هجوم نموذجية، وحافظ على معدل إنذارات كاذبة منخفض للغاية أقل من ٠٫٠٠٠١٪ خلال الأشهر الستة الماضية، محققًا دقة عالية في كشف التهديدات.
عند تحديد التهديد، تُفعّل آلية فالكون الآلية لصد الهجمات فورًا. يستخدم النظام استراتيجية مزايدة غاز مُطوّرة حصريًا لضمان استباق المعاملة الوقائية للهجوم وتفعيل وظيفة الإيقاف المؤقت للطوارئ للبروتوكول تلقائيًا. تدعم عملية الاستجابة بأكملها أوضاع تحكم متعددة في الأذونات، مثل EOA والمحافظ متعددة التوقيعات، مما يوفر حلولًا أمنية مرنة لمختلف أنواع البروتوكولات. لو قامت شركة Resupply بدمج نظام فالكون عند نشر السوق، لكان من الممكن تجنب الهجوم تمامًا: في غضون ساعة ونصف من نشر السوق 0x6e90، اكتشف نظام فالكون تلقائيًا نشر السوق الجديد، وحلل معلمات تكوينه بذكاء، وحدد مخاطر هجوم التبرع المحتملة. أرسل النظام على الفور تحذيرًا بالمخاطر إلى فريق المشروع، مقترحًا زيادة حماية السيولة الأولية أو تعديل المعلمات ذات الصلة. والأهم من ذلك، عندما دخلت معاملة الهجوم إلى مجموعة الذاكرة في الساعة 01:53:59 بالتوقيت العالمي المنسق، حددت خوارزمية الذكاء الاصطناعي الخاصة بشركة فالكون فورًا نمط هجوم التبرعات النموذجي، وفعّلت تلقائيًا تعليقًا طارئًا للمعاملة، وضمنت تنفيذ معاملة الحماية أولًا من خلال مزايدة الغاز، مما أدى إلى تجنب خسارة 10 ملايين دولار تمامًا.
إعادة الإمداد. تُشير هجمات لا حصر لها، بما في ذلك عشرات الملايين من الدولارات، إلى أن الأمان في عالم التمويل اللامركزي ليس خيارًا، بل ضرورة للبقاء. لا تنتظر حتى الهجوم التالي لتندم عليه.