تحلیل فنی: هک 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 را نشان نمی‌دهد.

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

Morning Report | Coinbase Ventures makes its first investment in ENA; SpaceX plans to set the IPO price at $135 per share

Overview of Important Market Events on June 3rd

متن کامل و تحلیل سخنرانی مدیرعامل SanDisk در چهل و دومین کنفرانس سالانه تصمیم‌گیری استراتژیک برنشتاین

ارزش اصلی سخنرانی گوکلر در ارائه یک چارچوب روایی بسیار شفاف و منطقی برای تحول سازمانی نهفته است.

پیش‌بینی قیمت بیت‌کوین در سال ۲۰۳۰: پیش‌بینی ۷۱۰ هزار دلاری Ark Invest

پیش‌بینی‌های قیمت بیت‌کوین در سال ۲۰۳۰ از سوی Ark Invest و Standard Chartered، به همراه ریسک‌های کلیدی و نحوه مدیریت سبد دارایی خود را بررسی کنید. تحلیل کامل در WEEX.

قیمت لحظه‌ای SOL: قیمت زنده، نمودارها و داده‌های بازار Solana

قیمت امروز SOL را با داده‌های لحظه‌ای، به همراه عوامل کلیدی تغییرات Solana و نکات معاملاتی کاربردی پیدا کنید. تحلیل کامل را در WEEX بخوانید.

ETF بیت‌کوین چیست: بررسی تفاوت‌های اسپات و فیوچرز

با مفهوم ETF بیت‌کوین، نحوه عملکرد ETFهای اسپات و فیوچرز و دلیل تغییر شکل بازار BTC توسط جریان‌های ورودی نهادی در سال ۲۰۲۶ آشنا شوید. تحلیل WEEX.

Why Is Bitcoin Dropping 15% While Nasdaq Hits Record Highs?

بیت‌کوین در میان ترس از تنش‌های ژئوپلیتیک ۱۵ درصد سقوط کرد و به ۶۶ هزار دلار رسید، در حالی که نزدک به رکوردهای تاریخی خود صعود کرد. تحلیلی بر محرک‌های کلان اقتصادی، جریان‌های ETF، رفتار معامله‌گران خرد در برابر نهنگ‌ها و همبستگی پنهان بین رمزارزها و سهام.

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

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

ادامه مطلب
iconiconiconiconiconicon
پشتیبانی مشتری:@weikecs
همکاری تجاری:@weikecs
معاملات کمّی و بازارسازی:bd@weex.com
برنامه VIP:support@weex.com