استغرق الأمر بعض الوقت فقط في فحص هجوم @yearnfi يث 9 ملايين دولار. بينما يشير معظم الناس إلى أن الهاكر صنع كمية هائلة من اليث باستخدام بعض الرموز (P1)، أعتقد أن هذا ليس السبب الجذري الوحيد. السبب؟ في الواقع، لم يسحب الهاكر اليث المكتمل، بل باع جزءا منه فقط في تجمع yETH-ETH مقابل 1000 إيث (~3 مليون)، وهو أقل بكثير من ربح الهاكر الفعلي (P2). هناك سببان جذريان (أو متجهات هجوم) في رأيي: (تنويه: إنه مجرد تحليل مبني على تحليلي الأولي. قد أرتكب أخطاء أحيانا!) (1) أدى خطأ تقريب إلى سك yETH شبه لا نهائي. هذا في الواقع مشابه لاختراق الموازن. عامل القياس (في yETH يسمى السعر) هو رقم حول 1e18+x٪، والقسمة الضربية تجعل التوازن الافتراضي يكسر الثواب. الكود يستخدم فعليا الرصيد الافتراضي المقرب لحساب إجمالي الإمداد الجديد ل yETH والصك (new_supply - old_supply) للمهاجم (P3). (2) update_rate الوظيفة أدت إلى فقدان كبير لخزنة yETH في الواقع، المهاجم نادى على "update_rates" مرتين على OETH المغلف، وyETH خسر حرفيا ~1000 ETH في كل مرة (حيث تم حرق yETH من خزنة st-yeth، P4). -> خسارة 6 مليون. بالإضافة إلى أن الربح المباع من yETH يذهب إلى ~9 مليون. قد يكون هذا ناجما عن حساب خاطئ للثابت وليس مجرد خطأ في التقريب. ---- سأقوم بالتحديث في تعليق هذه التغريدة لأي فهم جديد لي حول هذا الهجوم.
@yearnfi التحديث (1)، تم حظري لمحاولتي تقديم المساعدة في ديسكورد 🤣 @yearnfi
@yearnfi تحديث، الرابط أعلاه ليس رسالة خاصة رسمية. لكنها بالفعل تكشف السبب الجذري في رأيي وتشير إلى الشيفرة الضعيفة.
‏‎28.61‏K