Texnik tahlil: Balancer xakerligi $120M, zaiflik nimada edi?
Ushbu hujumning asosiy muammosi protokolning kichik qiymatli tranzaksiyalarni qayta ishlashida yotadi.
Original Article Title: " Balancer $120M Hack Vulnerability Technical Analysis"
Original Source: ExVul Security
Kirish
2025-yil 3-noyabr kuni Balancer protokoli Arbitrum va Ethereum kabi bir nechta tarmoqlarda hujumga uchradi va natijada 120 million dollarlik aktiv yo‘qotildi. Hujum asosan aniqlik yo‘qotilishi va Invariant manipulyatsiyasi bilan bog‘liq ikki tomonlama zaiflik tufayli yuz berdi.
Chainlink infratuzilmasi Web3 sohasida uzoq vaqtdan beri eng yuqori standartlarni saqlab kelmoqda, bu esa uni X Layer uchun tabiiy tanlovga aylantiradi. X Layer ishlab chiquvchilar uchun institutsional darajadagi vositalarni taqdim etishga bag‘ishlangan.
Ushbu hujumdagi asosiy muammo protokolning kichik tranzaksiyalarni qayta ishlashdagi mantiqida yotadi. Foydalanuvchilar kichik miqdorlar bilan almashuv qilganda, protokol _upscaleArray funksiyasini chaqiradi, bu esa qiymatlarni pastga yaxlitlash uchun mulDown dan foydalanadi. Tranzaksiyadagi balans va kiritilgan miqdor ma’lum bir yaxlitlash chegarasiga (masalan, 8-9 wei oralig‘i) yetganda, sezilarli nisbiy aniqlik xatosi yuzaga keladi.
Ushbu aniqlik xatosi protokolning Invariant qiymati D ni hisoblashga uzatiladi va D qiymatining g‘ayritabiiy kamayishiga olib keladi. D qiymatining o‘zgarishi Balancer protokolida Balancer Pool Token (BPT) narxini to‘g‘ridan-to‘g‘ri pasaytiradi. Xaker ushbu pasaytirilgan BPT narxidan oldindan rejalashtirilgan savdo yo‘li orqali arbitraj qilish uchun foydalandi va natijada katta miqdordagi aktiv yo‘qotilishiga sabab bo‘ldi.
Foydalanilgan tranzaksiya:
https://etherscan.io/tx/0x6ed07db1a9fe5c0794d44cd36081d6a6df103fab868cdd75d581e3bd23bc9742
Aktivlarni o‘tkazish tranzaksiyasi:
https://etherscan.io/tx/0xd155207261712c35fa3d472ed1e51bfcd816e616dd4f517fa5959836f5b48569
Texnik tahlil
Hujum vektori
Hujumning kirish nuqtasi Balancer: Vault kontrakti bo‘lib, mos kirish funksiyasi batchSwap funksiyasi hisoblanadi, u ichki ravishda token almashinuvi uchun onSwap ni chaqiradi.

Funksiya parametrlari va cheklovlari nuqtai nazaridan bir nechta ma’lumotlarni olish mumkin:
1. Hujumchi ushbu funksiyani Vault orqali chaqirishi kerak va uni to‘g‘ridan-to‘g‘ri chaqira olmaydi.
2. Funksiya ichki ravishda _scalingFactors() ni chaqirib, masshtablash amallari uchun scaling factor ni oladi.
3. Masshtablash amali asosan _swapGivenIn yoki _swapGivenOut da jamlangan.
Hujum naqshini tahlil qilish
BPT narxini hisoblash mexanizmi
Balancer’ning barqaror pool modeli doirasida BPT narxi muhim ko‘rsatkich bo‘lib, foydalanuvchi qancha BPT olishini va har bir BPT qancha aktiv olishini belgilaydi.

Pool’ning almashuv hisob-kitobida:

Bu yerda BPT narxi ankori sifatida xizmat qiladigan qism o‘zgarmas D qiymati bo‘lib, BPT narxini boshqarish uchun D ni boshqarish kerak. Keling, D ni hisoblash jarayonini batafsil tahlil qilamiz:

Yuqoridagi kodda D ni hisoblash jarayoni masshtablangan balanslar massiviga bog‘liq. Bu balanslarning aniqligini o‘zgartirish uchun amal bajarilishi kerakligini va bu noto‘g‘ri D hisobiga olib kelishini anglatadi.
Aniqlik yo‘qotilishining asosiy sababi

Masshtablash amali:

Yuqorida ko‘rsatilganidek, _upscaleArray orqali o‘tilganda, agar balans juda kichik bo‘lsa (masalan, 8-9 wei), mulDown dagi pastga yaxlitlash sezilarli aniqlik yo‘qotilishiga olib keladi.
Hujum jarayonining tafsilotlari
1-bosqich: Yaxlitlash chegarasiga moslash

2-bosqich: Aniqlik yo‘qotilishini qo‘zg‘atish (asosiy zaiflik)

3-bosqich: Pasaytirilgan BPT narxidan foyda olish

Yuqorida, hujumchi Batch Swap yordamida bitta tranzaksiyada bir nechta almashuvlarni amalga oshiradi:
1. Birinchi almashuv: BPT → cbETH (balansni moslashtirish)
2. Ikkinchi almashuv: wstETH (8) → cbETH (aniqlik yo‘qotilishini qo‘zg‘atish)
3. Uchinchi almashuv: Asosiy aktiv → BPT (foyda olish)
Ushbu almashuvlarning barchasi bir xil batch swap tranzaksiyasida sodir bo‘ladi, xuddi shu balans holatini baham ko‘radi, lekin har bir almashuv _upscaleArray ni chaqirib, balanslar massivini o‘zgartiradi.
Callback mexanizmining yo‘qligi
Asosiy jarayon Vault tomonidan boshlanadi. Bu qanday qilib aniqlik yo‘qotilishini to‘planishiga olib keladi? Javob balanslar massivini uzatish mexanizmida yotadi.

Yuqoridagi kodga qaraganda, Vault har safar onSwap chaqirilganda yangi currentBalances massivini yaratadi, lekin Batch Swap da:
1. Birinchi almashuvdan so‘ng, balans yangilanadi (lekin aniqlik yo‘qotilishi tufayli yangilangan qiymat noto‘g‘ri bo‘lishi mumkin)
2. Ikkinchi almashuv birinchi almashuv natijasiga asoslanib hisoblashni davom ettiradi
3. Aniqlik yo‘qotilishi to‘planadi va natijada invariant qiymati D sezilarli darajada kamayadi
Asosiy muammo:

Xulosa
Balancer hujumini quyidagi sabablarga ko‘ra qisqacha tavsiflash mumkin:
1. Masshtablash funksiyasi pastga yaxlitlashdan foydalanadi: _upscaleArray masshtablash uchun mulDown dan foydalanadi, bu esa balans juda kichik bo‘lsa (masalan, 8-9 wei) sezilarli nisbiy aniqlik yo‘qotilishiga olib keladi.
2. Invariant qiymatini hisoblash aniqlikka sezgir: Invariant qiymati D ni hisoblash masshtablangan balanslar massiviga bog‘liq va aniqlik yo‘qotilishi D ni hisoblashga bevosita ta’sir qiladi va D ni kamaytiradi.
3. Invariant qiymatining o‘zgarishini tekshirish yo‘q: Swap jarayonida invariant qiymati D o‘zgarishi maqbul diapazonda ekanligini tekshirish uchun hech qanday tekshiruv bo‘lmagan, bu esa hujumchilarga aniqlik yo‘qotilishini takroran ekspluatatsiya qilib, BPT narxini pasaytirishga imkon berdi.
4. Batch swap larda aniqlik yo‘qotilishining to‘planishi: Bir xil batch swap ichida bir nechta swap lardan kelib chiqqan aniqlik yo‘qotilishi to‘planadi va natijada katta moliyaviy yo‘qotishlarga olib keladi.
Ushbu ikki muammo — aniqlik yo‘qotilishi va tekshiruvning yo‘qligi — hujumchining chegaraviy shartlarni puxta ishlab chiqishi bilan birga ushbu yo‘qotishga olib keldi.
Mas'uliyatni rad etish: Ushbu maqolaning mazmuni faqat muallifning fikrini aks ettiradi va platformani hech qanday sifatda ifodalamaydi. Ushbu maqola investitsiya qarorlarini qabul qilish uchun ma'lumotnoma sifatida xizmat qilish uchun mo'ljallanmagan.
Sizga ham yoqishi mumkin
Pi Coin 47% o‘sishiga tayyormi? Ushbu naqsh bunga ishora qilmoqda
Pi Coin (PI) so‘nggi 24 soat ichida 5,3% ga tushdi, biroq "cup-and-handle" modeli potensial 47% o‘sishini ko‘rsatmoqda. Pul oqimlarining kuchayishi va xarid bosimining asta-sekin tiklanishi Pi-ni shu oyda breakout qilish ehtimoli yuqori bo‘lgan kam sonli altcoinlardan biriga aylantirishi mumkin.

Amaliy tahlil: treyderlar AI boshqarayotgan kripto musobaqasida qanday qilib g‘alabaga erishadi


AQSh prokurorlari Samourai Wallet asoschilariga besh yillik qamoq jazosi so‘ramoqda
Tezkor ma'lumot: AQSh prokurorlari Samourai Wallet asoschilari Keonne Rodriguez va William Lonergan Hill uchun litsenziyasiz pul o'tkazish xizmatini yuritganliklari sababli 60 oy qamoq jazosi talab qilmoqda. Prokurorlarning aytishicha, Rodriguez va Lonergan deyarli o‘n yil davomida kamida 237 million dollar miqdoridagi jinoyat yo‘li bilan olingan mablag‘larni yuvishda yordam bergan kripto aralashtirish xizmatini boshqargan. Rodriguezga hukm 6-noyabr kuni, Hillga esa 7-noyabr kuni chiqarilishi rejalashtirilgan.

