التحليل الفني: تم اختراق Balancer وسرقة 120 مليون دولار، أين كان الخلل؟
تكمن المشكلة الرئيسية في هذا الهجوم في منطق البروتوكول لمعالجة الصفقات الصغيرة.
العنوان الأصلي: 《تحليل تقني لثغرة Balancer التي أدت إلى سرقة 120 مليون دولار》
المصدر الأصلي: ExVul Security
مقدمة
في 3 نوفمبر 2025، تعرض بروتوكول Balancer لهجوم من قبل قراصنة على عدة شبكات بلوكشين مثل Arbitrum وEthereum، مما أدى إلى خسارة أصول بقيمة 120 مليون دولار. كان جوهر الهجوم ناتجًا عن ثغرة مزدوجة تتعلق بفقدان الدقة والتلاعب بالثابت (Invariant).
تُحافظ بنية Chainlink التحتية منذ فترة طويلة على أعلى المعايير في مجال Web3، ولهذا أصبحت خيارًا طبيعيًا لـ X Layer التي تهدف إلى تزويد المطورين بأدوات على مستوى المؤسسات.
تكمن المشكلة الرئيسية في هذا الهجوم في منطق البروتوكول عند معالجة المعاملات الصغيرة. عندما يقوم المستخدم بتبادل مبلغ صغير، يستدعي البروتوكول دالة _upscaleArray، والتي تستخدم mulDown لتقريب القيم إلى الأسفل. إذا كان الرصيد والمبلغ المدخل في المعاملة يقعان معًا عند حدود التقريب (مثل نطاق 8-9 wei)، سيحدث خطأ نسبي واضح في الدقة.
يتم نقل خطأ الدقة هذا إلى عملية حساب الثابت D في البروتوكول، مما يؤدي إلى تقليص قيمة D بشكل غير طبيعي. ويؤثر تغير قيمة D مباشرة على سعر BPT (Balancer Pool Token) في بروتوكول Balancer، حيث يستغل القراصنة هذا السعر المنخفض المصطنع لـ BPT، ويحققون أرباحًا من خلال مسار معاملات مصمم مسبقًا، مما يؤدي في النهاية إلى خسائر مالية ضخمة.
معاملة استغلال الثغرة Tx:
معاملة نقل الأصول Tx:
التحليل التقني
نقطة دخول الهجوم
نقطة الدخول للهجوم هي عقد Balancer: Vault، والدالة المعنية هي batchSwap، والتي تستدعي داخليًا onSwap لتنفيذ تبادل العملات.

من خلال النظر إلى معلمات الدالة والقيود، يمكن استخلاص عدة معلومات:
1. يجب على المهاجم استدعاء هذه الدالة عبر Vault، ولا يمكنه استدعاؤها مباشرة.
2. تستدعي الدالة داخليًا _scalingFactors() للحصول على عوامل التحجيم لتنفيذ عملية التحجيم.
3. تتركز عمليات التحجيم في _swapGivenIn أو _swapGivenOut.
تحليل نمط الهجوم
آلية حساب سعر BPT
في نموذج المجمع المستقر لـ Balancer، يُعد سعر BPT مرجعًا مهمًا، حيث يحدد عدد رموز BPT التي يحصل عليها المستخدم ومقدار الأصول التي يحصل عليها كل رمز BPT.

في حسابات التبادل داخل المجمع:

الجزء الذي يعمل كـمرجع لسعر BPT هو الثابت D، أي أن التلاعب بسعر BPT يتطلب التلاعب بـ D. لنحلل عملية حساب D:

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

عملية التحجيم:

كما هو موضح أعلاه، عند استخدام _upscaleArray، إذا كان الرصيد صغيرًا جدًا (مثل 8-9 wei)، فإن التقريب إلى الأسفل بواسطة mulDown يؤدي إلى فقدان دقة ملحوظ.
شرح مفصل لسير الهجوم
المرحلة 1: التعديل إلى حدود التقريب

المرحلة 2: التسبب في فقدان الدقة (الثغرة الأساسية)

المرحلة 3: الاستفادة من سعر BPT المنخفض لتحقيق الربح

كما هو موضح أعلاه، ينفذ المهاجم Batch Swap عدة تبادلات في معاملة واحدة:
1. التبادل الأول: BPT → cbETH (تعديل الرصيد)
2. التبادل الثاني: wstETH (8) → cbETH (التسبب في فقدان الدقة)
3. التبادل الثالث: الأصول الأساسية → BPT (تحقيق الربح)
تتم كل هذه التبادلات ضمن نفس معاملة batch swap، وتشترك في نفس حالة الأرصدة، لكن كل تبادل يستدعي _upscaleArray لتعديل مصفوفة الأرصدة.
غياب آلية Callback
المسار الرئيسي يبدأ من Vault، فكيف يؤدي ذلك إلى تراكم فقدان الدقة؟ الجواب يكمن في آلية تمرير مصفوفة الأرصدة.

من خلال تحليل الشيفرة أعلاه، على الرغم من أن Vault ينشئ مصفوفة currentBalances جديدة في كل استدعاء لـ onSwap، إلا أنه في Batch Swap:
1. بعد التبادل الأول، يتم تحديث الرصيد (لكن بسبب فقدان الدقة، قد لا تكون القيمة المحدثة دقيقة)
2. التبادل الثاني يُحسب بناءً على نتيجة التبادل الأول
3. يتراكم فقدان الدقة، مما يؤدي في النهاية إلى تقليص قيمة الثابت D بشكل كبير
المشكلة الرئيسية:

الخلاصة
يمكن تلخيص هجوم Balancer هذا في الأسباب التالية:
1. استخدام التقريب إلى الأسفل في دالة التحجيم: تستخدم _upscaleArray دالة mulDown للتحجيم، وعندما يكون الرصيد صغيرًا (مثل 8-9 wei)، يحدث فقدان نسبي كبير في الدقة.
2. حساب الثابت حساس للدقة: تعتمد عملية حساب الثابت D على مصفوفة الأرصدة بعد التحجيم، وينتقل فقدان الدقة مباشرة إلى حساب D، مما يؤدي إلى تقليص قيمته.
3. غياب التحقق من تغير الثابت: أثناء عملية التبادل، لا يتم التحقق مما إذا كان تغير الثابت D ضمن النطاق المعقول، مما يسمح للمهاجم باستغلال فقدان الدقة مرارًا وتكرارًا لخفض سعر BPT.
4. تراكم فقدان الدقة في Batch Swap: في نفس معاملة batch swap، يتراكم فقدان الدقة الناتج عن عدة تبادلات، مما يؤدي في النهاية إلى خسائر مالية ضخمة.
هاتان المشكلتان، فقدان الدقة + غياب التحقق، إلى جانب تصميم المهاجم الدقيق لظروف الحدود، تسببتا في هذه الخسارة.
إخلاء المسؤولية: يعكس محتوى هذه المقالة رأي المؤلف فقط ولا يمثل المنصة بأي صفة. لا يُقصد من هذه المقالة أن تكون بمثابة مرجع لاتخاذ قرارات الاستثمار.
You may also like
حققت MARA أرباحًا قياسية بقيمة 123 مليون دولار من خلال الجمع بين عمليات bitcoin والأصول الجديدة للطاقة والذكاء الاصطناعي
تقوم MARA بتعميق تحولها من تعدين bitcoin البحت إلى امتلاك الطاقة والبنية التحتية التي تركز على الذكاء الاصطناعي، مما يعكس التحركات الأوسع في هذا القطاع. وعلى الرغم من تحقيق أرباح قياسية، فإن سهم MARA لا يزال متخلفًا عن نظرائه، ويتم تداوله بالقرب من 17.80 دولارًا — منخفضًا بأكثر من 13% خلال الشهر الماضي.

ارتفعت حيازات شركة الخزانة Solana Upexi بنسبة 4.4% لتتجاوز 2.1 مليون SOL
أضافت Upexi ما يقارب 88,750 SOL منذ آخر تحديث لها في 10 سبتمبر، ليصل إجمالي ممتلكاتها إلى أكثر من 2.1 مليون SOL. كما أفادت الشركة المتخصصة في خزينة Solana بزيادة قدرها 82% في SOL المعدل لكل سهم وحقق المستثمرون عائداً بنسبة 96% منذ الطرح الخاص في أبريل.

امتلك القوة، واحصل على صفقة بقيمة 9.7 مليار دولار مع Microsoft: Bernstein ترفع السعر المستهدف لـ IREN إلى 125 دولارًا بعد عقد سحابة الذكاء الاصطناعي المربح
رفع المحللون في Bernstein هدفهم السعري لشركة تعدين البيتكوين IREN من 75 دولارًا إلى 125 دولارًا، مستندين في ذلك إلى عقد الحوسبة السحابية للذكاء الاصطناعي الذي أعلنت عنه الشركة مؤخرًا مع Microsoft بقيمة 9.7 مليارات دولار لمدة خمس سنوات. وأشار المحللون إلى أن امتلاك IREN لمحفظة طاقة تبلغ 2.9 جيجاوات يمنحها ميزة تنافسية من حيث التكلفة والقدرة على التوسع مقارنة بمنافسين مثل CoreWeave.

أفضل 3 عملات رقمية يتوقع المحللون أن تحقق 100 ضعف: Ozak AI، DOGE، وXRP

