عنوان مقاله اصلی: "تحلیل فنی آسیبپذیری هک ۱۲۰ میلیون دلاری Balancer"
منبع اصلی: ExVul Security
در ۳ نوامبر ۲۰۲۵، پروتکل Balancer در چندین بلاکچین از جمله Arbitrum و Ethereum مورد حمله قرار گرفت که منجر به از دست رفتن ۱۲۰ میلیون دلار دارایی شد. این حمله عمدتاً به دلیل یک آسیبپذیری دوگانه شامل از دست رفتن دقت (precision loss) و دستکاری مقدار ثابت (Invariant) رخ داد.
زیرساخت Chainlink مدتهاست که بالاترین استانداردها را در فضای Web3 حفظ کرده است و آن را به انتخابی طبیعی برای X Layer تبدیل کرده است که به ارائه ابزارهای سطح سازمانی برای توسعهدهندگان اختصاص دارد.
مسئله اصلی در این حمله در منطق پروتکل برای مدیریت تراکنشهای کوچک نهفته است. هنگامی که کاربران با مبالغ کم مبادله انجام میدهند، پروتکل تابع _upscaleArray را فراخوانی میکند که از mulDown برای گرد کردن مقادیر به پایین استفاده میکند. هنگامی که موجودی در تراکنش و مقدار ورودی هر دو به یک مرز گرد کردن خاص (مثلاً محدوده ۸-۹ wei) میرسند، یک خطای دقت نسبی قابل توجه رخ میدهد.
این خطای دقت به محاسبه مقدار ثابت D پروتکل منتقل میشود و باعث کاهش غیرعادی در مقدار D میشود. نوسان مقدار D مستقیماً قیمت توکن استخر Balancer (BPT) را در پروتکل Balancer کاهش میدهد. هکر از این قیمت سرکوبشده BPT از طریق یک مسیر معاملاتی از پیش برنامهریزیشده برای انجام آربیتراژ بهرهبرداری کرد که در نهایت منجر به از دست رفتن عظیم دارایی شد.
تراکنش مورد بهرهبرداری:
https://etherscan.io/tx/0x6ed07db1a9fe5c0794d44cd36081d6a6df103fab868cdd75d581e3bd23bc9742
تراکنش انتقال دارایی:
https://etherscan.io/tx/0xd155207261712c35fa3d472ed1e51bfcd816e616dd4f517fa5959836f5b48569
نقطه ورود حمله، قرارداد Balancer: Vault بود و تابع ورودی مربوطه batchSwap بود که به صورت داخلی onSwap را برای مبادله توکن فراخوانی میکند.

از دیدگاه پارامترها و محدودیتهای تابع، میتوان اطلاعات زیر را به دست آورد:
۱. مهاجم باید این تابع را از طریق Vault فراخوانی کند و نمیتواند آن را مستقیماً فراخوانی کند.
۲. تابع به صورت داخلی _scalingFactors() را برای دریافت ضریب مقیاسبندی جهت عملیات مقیاسبندی فراخوانی میکند.
۳. عملیات مقیاسبندی یا در _swapGivenIn یا در _swapGivenOut متمرکز است.
در مدل استخر پایدار Balancer، قیمت BPT یک نقطه مرجع حیاتی است که تعیین میکند کاربر چقدر BPT دریافت میکند و هر BPT چقدر دارایی دریافت میکند.

در محاسبه مبادله استخر:

جایی که بخشی که به عنوان لنگر قیمت BPT عمل میکند، یک مقدار ثابت D است، به این معنی که کنترل قیمت BPT مستلزم کنترل D است. بیایید فرآیند محاسبه D را بیشتر تحلیل کنیم:

در کد بالا، فرآیند محاسبه D به آرایه موجودیهای مقیاسبندی شده بستگی دارد. این بدان معناست که عملیاتی برای تغییر دقت این موجودیها مورد نیاز است که منجر به محاسبه نادرست D میشود.

عملیات مقیاسبندی:

همانطور که در بالا نشان داده شده است، هنگام عبور از _upscaleArray، اگر موجودی بسیار کم باشد (مثلاً ۸-۹ wei)، گرد کردن به پایین در mulDown منجر به از دست رفتن دقت قابل توجهی میشود.



در بالا، مهاجم از Batch Swap برای انجام چندین مبادله در یک تراکنش استفاده میکند:
۱. مبادله اول: BPT → cbETH (تنظیم موجودی)
۲. مبادله دوم: wstETH (8) → cbETH (تحریک از دست رفتن دقت)
۳. مبادله سوم: دارایی پایه → BPT (سودگیری)
همه این مبادلات در همان تراکنش batch swap رخ میدهند، وضعیت موجودی یکسانی را به اشتراک میگذارند، اما هر مبادله _upscaleArray را برای اصلاح آرایه موجودیها فراخوانی میکند.
فرآیند اصلی توسط Vault آغاز میشود. چگونه این منجر به انباشت از دست رفتن دقت میشود؟ پاسخ در مکانیسم انتقال آرایه موجودیها نهفته است.

با نگاه به کد بالا، اگرچه Vault هر بار که onSwap فراخوانی میشود یک آرایه currentBalances جدید ایجاد میکند، در Batch Swap:
۱. پس از اولین swap، موجودی بهروزرسانی میشود (اما به دلیل از دست رفتن دقت، مقدار بهروزرسانی شده ممکن است نادرست باشد)
۲. دومین swap محاسبه را بر اساس نتیجه اولین swap ادامه میدهد
۳. از دست رفتن دقت انباشته میشود و در نهایت باعث کاهش قابل توجه مقدار ثابت D میشود

حمله Balancer را میتوان به دلایل زیر خلاصه کرد:
۱. تابع مقیاسبندی از گرد کردن به پایین استفاده میکند: _upscaleArray از mulDown برای مقیاسبندی استفاده میکند که منجر به از دست رفتن دقت نسبی قابل توجهی در زمانی که موجودی بسیار کم است (مثلاً ۸-۹ wei) میشود.
۲. محاسبه مقدار ثابت به دقت حساس است: محاسبه مقدار ثابت D به آرایه موجودیهای مقیاسبندی شده بستگی دارد و از دست رفتن دقت مستقیماً بر محاسبه D تأثیر میگذارد و باعث کاهش D میشود.
۳. عدم وجود اعتبارسنجی تغییر مقدار ثابت: در طول فرآیند swap، هیچ اعتبارسنجی برای اطمینان از اینکه تغییر در مقدار ثابت D در محدوده معقولی است وجود نداشت، که به مهاجمان اجازه داد تا مکرراً از از دست رفتن دقت برای سرکوب قیمت BPT بهرهبرداری کنند.
۴. انباشت از دست رفتن دقت در Batch Swaps: در همان batch swap، از دست رفتن دقت از چندین swap انباشته میشود و در نهایت منجر به خسارات مالی قابل توجهی میشود.
این دو مسئله—از دست رفتن دقت و عدم وجود اعتبارسنجی—همراه با طراحی دقیق مهاجم از شرایط مرزی، منجر به این خسارت شد.
این مقاله یک مشارکت است و دیدگاههای BlockBeats را نشان نمیدهد.
این محتوا صرفاً برای اطلاعرسانی عمومی ارائه شده است و بهمنزله مشاوره مالی، سرمایهگذاری، حقوقی یا مالیاتی تلقی نمیشود. هرگونه رویداد، جایزه، کمپین آنلاین یا اطلاعات مرتبط که در اینجا ذکر شده است، نباید بهعنوان توصیه، ترغیب یا دعوت به خرید، فروش، معامله یا هرگونه دادوستد دیگر داراییهای رمزارزی تلقی شود. داراییهای رمزارزی از نوسان بالایی برخوردار هستند و ممکن است منجر به زیان شوند. دسترسی به خدمات، محصولات و رویدادهای مرتبط با WEEX ممکن است بسته به منطقه جغرافیایی متفاوت باشد. اطمینان از اینکه استفاده شما از این خدمات با قوانین و مقررات محلی مطابقت دارد، بر عهده خود شماست.

























نکات کلیدی: دادستانهای ایالات متحده قصد دارند برادران Peraire-Bueno را در اوایل سال ۲۰۲۶ به دلیل بهرهبرداریهای ادعایی مرتبط با رباتهای MEV دوباره محاکمه کنند…

نکات کلیدی: دادستانها خواستار محاکمه مجدد برادران Peraire-Bueno هستند: به اتهام کلاهبرداری از طریق رباتهای MEV، پرونده آنها…




در حالی که بازار ارز دیجیتال با تحولات جدیدی روبروست، معاملهگران به سمت Justice Tokens هجوم آوردهاند که ناشی از…