logo

تحلیل فنی: هک Balancer به ارزش ۱۲۰ میلیون دلار چگونه رخ داد و آسیب‌پذیری کجا بود؟

By: blockbeats|2026/03/28 22:05:43
0
اشتراک‌گذاری
copy
عنوان مقاله اصلی: "تحلیل فنی آسیب‌پذیری هک ۱۲۰ میلیون دلاری 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 را برای مبادله توکن فراخوانی می‌کند.

تحلیل فنی: هک Balancer به ارزش ۱۲۰ میلیون دلار چگونه رخ داد و آسیب‌پذیری کجا بود؟


از دیدگاه پارامترها و محدودیت‌های تابع، می‌توان اطلاعات زیر را به دست آورد:

۱. مهاجم باید این تابع را از طریق Vault فراخوانی کند و نمی‌تواند آن را مستقیماً فراخوانی کند.

۲. تابع به صورت داخلی _scalingFactors() را برای دریافت ضریب مقیاس‌بندی جهت عملیات مقیاس‌بندی فراخوانی می‌کند.

۳. عملیات مقیاس‌بندی یا در _swapGivenIn یا در _swapGivenOut متمرکز است.

قیمت --

--

تحلیل الگوی حمله

مکانیسم محاسبه قیمت BPT

در مدل استخر پایدار Balancer، قیمت BPT یک نقطه مرجع حیاتی است که تعیین می‌کند کاربر چقدر BPT دریافت می‌کند و هر BPT چقدر دارایی دریافت می‌کند.


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


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


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

علت اصلی از دست رفتن دقت

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

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

جزئیات فرآیند حمله

فاز ۱: تنظیم به مرز گرد کردن

فاز ۲: تحریک از دست رفتن دقت (آسیب‌پذیری اصلی)

فاز ۳: بهره‌برداری از قیمت سرکوب‌شده BPT برای سود

در بالا، مهاجم از 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 را نشان نمی‌دهد.

ممکن است شما نیز علاقه‌مند باشید

معمای ۱۷ ساله حل خواهد شد، ساتوشی ناکاموتو کیست؟

نیویورک تایمز رمز و راز ساتوشی ناکاموتو را با سرنخ‌هایی که به آدام بک اشاره دارند، ردیابی می‌کند.

۵ دقیقه برای تبدیل هوش مصنوعی به مغز دوم شما

وقت آن رسیده که حافظه را به هوش مصنوعی بسپاریم

یونی‌سواپ در یک معضل نوآوری گرفتار شده است

نسخه‌های مختلف Uniswap یکی از منابع پویایی در بازار DeFi هستند، اما از سال ۲۰۲۳، Uniswap هیچ نوآوری قابل توجهی ارائه نکرده است، در عوض به کاوش‌های تجاری سنتی در زنجیره‌های اپلیکیشن، Launchpadها و غیره پایبند بوده است که منجر به افت قیمت توکن‌ها و بازار شده است...

کلید رقابت در بانکداری رمزارزی چیست؟

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

Untitled

معرفی کلیدهای اصلی میانگین افزایش قیمت توکن BNKR: قیمت توکن BNKR به بالاترین حد خود در تاریخ ۲۶…

جریان استیبل‌کوین‌ها و اثرات سرایتی در بازار ارز خارجی

تحقیقات نشان داده است که افزایش برون‌زای جریان‌های خالص استیبل‌کوین‌ها، انحراف قیمت بین استیبل‌کوین‌ها و بازار ارز خارجی سنتی را به طور قابل توجهی افزایش می‌دهد، به کاهش ارزش پول محلی منجر می‌شود و شرایط تأمین مالی دلارهای مصنوعی را بدتر می‌کند (یعنی، دلار... را افزایش می‌دهد).

رمزارزهای محبوب

آخرین اخبار رمز ارز

ادامه مطلب