Bitget App
Aqlliroq savdo qiling
Kripto sotib olishBozorlarSavdoFyuchersEarnWeb3KvadratKo'proq
Savdo
Spot
Kriptoni osongina xarid qiling va soting
Marja
Sarmoyangiz va mablag'lar samaradorligini oshiring
Onchain
Onchain savdolar osonlashdi
Konvertatsiya va blokli savdo
Kriptovalyutani bir marta bosish va to'lovlarsiz konvertatsiyalash
Ko'rib chiqish
Launchhub
Oldinroq ustunlikka erishing va g'alaba qozonishni boshlang
Nusxalash
Bir marta bosish bilan elita treyderni nusxalang
Bots
Oddiy, tezkor va ishonchli AI savdo boti
Savdo
USDT-M Fyuchers
Fyucherslar USDTda hisob-kitob qilindi
USDC-M Fyuchers
Fyucherslar USDCda hisob-kitob qilindi
Coin-M Fyuchers
Fyuchers kriptovalyutalarda hisob-kitob qilindi
Ko'rib chiqish
Fyuchers bo'yicha qo'llanma
Fyuchers savdosida boshlang'ichdan kengaytirilgangacha sayohat
Fyuchers aksiyalari
Saxiy mukofotlar kutmoqda
Bitget Earn
Aktivlaringizni ko'paytirish uchun turli xil mahsulotlar
Simple Earn
Nol xavf bilan moslashuvchan daromad olish uchun istalgan vaqtda depozit qo'ying va yechib oling
On-chain Earn
Asosiy qarzni xavf ostiga qo'ymasdan har kuni daromad oling
Strukturaviy Earn
Bozordagi o'zgarishlarni boshqarish uchun kuchli moliyaviy innovatsiyalar
VIP va kapital boshqaruvi
Kapital boshqaruvini boshqarish uchun premium xizmatlar
Kreditlar
Yuqori fond kafolati bilan moslashuvchan qarz olish
Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi?

Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi?

BlockBeatsBlockBeats2025/11/04 06:24
Asl nusxasini ko'rsatish
tomonidan:BlockBeats

Ushbu hujumning asosiy muammosi protokolning kichik miqdordagi tranzaksiyalarni qayta ishlashdagi mantiqida yuzaga keldi.

Asl sarlavha: "Balancer $120M o‘g‘irlanishi texnik tahlili"
Manba: ExVul Security


Kirish


2025-yil 3-noyabr kuni Balancer protokoli Arbitrum, Ethereum va boshqa bir nechta blokcheynlarda xakerlik hujumiga uchradi, natijada 120 million AQSH dollari miqdorida aktivlar yo‘qotildi. Hujumning asosiy sababi aniqlik yo‘qotilishi va invariant (o‘zgarmas qiymat) manipulyatsiyasi bilan bog‘liq ikki tomonlama zaiflikda edi.


Chainlink infratuzilmasi uzoq vaqt davomida Web3 sohasida eng yuqori standartlarni saqlab kelmoqda, shuning uchun X Layer uchun ishlab chiquvchilarga institutsional darajadagi vositalarni taqdim etishda tabiiy tanlovga aylandi.


Ushbu hujumdagi asosiy muammo protokolning kichik miqdordagi tranzaksiyalarni qayta ishlash mexanizmida yuzaga keldi. Foydalanuvchi kichik miqdorda almashuv amalga oshirganda, protokol _upscaleArray funksiyasini chaqiradi, bu funksiya mulDown yordamida qiymatni pastga qarab yaxlitlaydi. Agar tranzaksiyadagi balans va kiritilgan miqdor bir vaqtning o‘zida ma’lum bir yaxlitlash chegarasida (masalan, 8-9 wei oralig‘ida) bo‘lsa, sezilarli nisbiy aniqlik xatosi yuzaga keladi.


Aniqlik xatosi protokolning invariant D qiymatini hisoblash jarayoniga uzatiladi va natijada D qiymati g‘ayrioddiy tarzda kichrayadi. D qiymatining o‘zgarishi esa Balancer protokolidagi BPT (Balancer Pool Token) narxini bevosita pasaytiradi. Xaker ushbu pasaytirilgan BPT narxidan oldindan ishlab chiqilgan tranzaksiya yo‘li orqali arbitraj qilib, nihoyatda katta aktiv yo‘qotilishiga sabab bo‘ldi.


Zaiflikdan foydalanilgan Tx:


Aktivlarni ko‘chirish Tx:


Texnik tahlil


Hujum kirish nuqtasi


Hujumning kirish nuqtasi Balancer: Vault kontrakti bo‘lib, mos kirish funksiyasi batchSwap funksiyasidir, u ichida onSwap chaqirilib, tokenlar almashiladi.


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 0


Funksiya parametrlari va cheklovlaridan quyidagi ma’lumotlarni olish mumkin:


1. Hujumchi bu funksiyani Vault orqali chaqirishi kerak, to‘g‘ridan-to‘g‘ri chaqira olmaydi.


2. Funksiya ichida _scalingFactors() chaqirilib, masshtablash amali bajariladi.


3. Masshtablash amallari asosan _swapGivenIn yoki _swapGivenOut ichida bajariladi.


Hujum modeli tahlili


BPT narxini hisoblash mexanizmi


Balancer’ning barqaror hovuz modeli doirasida, BPT narxi muhim ko‘rsatkich bo‘lib, foydalanuvchi qancha BPT olishini va har bir BPT qancha aktivga ega bo‘lishini belgilaydi.


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 1


Hovuzdagi almashuv hisob-kitobida:


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 2


Bu yerda BPT narxi mezoni sifatida invariant D xizmat qiladi, ya’ni BPT narxini boshqarish uchun D ni boshqarish kerak. Quyida D hisoblash jarayoni tahlil qilinadi:


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 3


Yuqoridagi kodda, D hisoblash jarayoni masshtablangan balances massiviga bog‘liq. Demak, ushbu balances aniqligini o‘zgartiradigan amal bo‘lishi kerak, bu esa D hisoblashida xatoga olib keladi.


Aniqlik yo‘qotilishining ildizi


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 4


Masshtablash amali:


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 5


Yuqorida ko‘rsatilganidek, _upscaleArray orqali balans juda kichik bo‘lsa (masalan, 8-9 wei), mulDown yordamida pastga yaxlitlash sezilarli aniqlik yo‘qotilishiga olib keladi.


Hujum jarayonining batafsil tahlili


1-bosqich: Yaxlitlash chegarasiga moslashtirish


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 6


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


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 7


3-bosqich: Pasaytirilgan BPT narxidan foyda olish


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 8


Yuqorida ko‘rsatilganidek, hujumchi Batch Swap orqali bitta tranzaksiyada bir nechta almashuvni 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)


Bu almashuvlarning barchasi bir batch swap tranzaksiyasida amalga oshiriladi, xuddi shu balans holatini baham ko‘radi, lekin har bir almashuvda _upscaleArray chaqirilib, balances massivi o‘zgaradi.


Callback mexanizmining yo‘qligi


Asosiy jarayon Vault tomonidan boshlanadi, lekin bu qanday qilib aniqlik yo‘qotilishini to‘planishiga olib keladi? Javob balances massivini uzatish mexanizmida yotadi.


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 9


Yuqoridagi kodni tahlil qilganda, har safar onSwap chaqirilganda Vault yangi currentBalances massivini yaratadi, lekin Batch Swap ichida:


1. Birinchi almashuvdan so‘ng, balans yangilanadi (lekin aniqlik yo‘qotilishi tufayli yangilangan qiymat noto‘g‘ri bo‘lishi mumkin)


2. Ikkinchi almashuv birinchisining natijasiga asoslanib hisoblanadi


3. Aniqlik yo‘qotilishi to‘planadi va natijada invariant D sezilarli darajada kichrayadi


Asosiy muammo:


Texnik tahlil: Balancer 120 million dollar o‘g‘irlandi, zaiflik qayerda edi? image 10


Xulosa


Balancer’ning ushbu hujumi quyidagi asosiy sabablarga ko‘ra yuz berdi:


1. Masshtablash funksiyasi pastga yaxlitlashdan foydalanadi: _upscaleArray mulDown yordamida masshtablaydi, balans juda kichik bo‘lsa (masalan, 8-9 wei), sezilarli nisbiy aniqlik yo‘qotilishi yuzaga keladi.


2. Invariant hisoblash aniqlikka sezgir: invariant D hisoblash masshtablangan balances massiviga bog‘liq, aniqlik yo‘qotilishi D hisoblashiga bevosita ta’sir qiladi va D ni kichraytiradi.


3. Invariant o‘zgarishini tekshirish yo‘q: almashuv jarayonida invariant D o‘zgarishi mantiqiy diapazonda ekanligi tekshirilmaydi, bu esa hujumchiga aniqlik yo‘qotilishini takroran ishlatib, BPT narxini pasaytirish imkonini beradi.


4. Batch Swap ichida aniqlik yo‘qotilishining to‘planishi: bir batch swap ichida bir nechta almashuv natijasida aniqlik yo‘qotilishi to‘planadi va oxir-oqibat katta moliyaviy yo‘qotishga olib keladi.


Ushbu ikki muammo — aniqlik yo‘qotilishi va tekshiruvning yo‘qligi — hamda hujumchining chegaraviy shartlarni puxta rejalashtirishi ushbu yo‘qotishga olib keldi.


0

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.

PoolX: Aktivlarni kiriting va yangi tokenlar oling.
APR 12% gacha. Yangi tokenlar airdropi.
Qulflash!

Sizga ham yoqishi mumkin

Sintetik stablecoin USDX narxi $0.60 dan pastga tushdi, PancakeSwap va Lista vaziyatni kuzatmoqda

Quick Take Stable Labs’ USDX stablecoin, delta-neutral hedging strategiyalardan foydalanib dollar kursiga bog‘lanishni saqlab turishi kerak edi, ammo payshanba kuni o‘z kursidan chiqib, $0.60 dan pastga tushdi. Lista va PancakeSwap kabi protokollar vaziyatni diqqat bilan kuzatmoqda.

The Block2025/11/06 21:06
Sintetik stablecoin USDX narxi $0.60 dan pastga tushdi, PancakeSwap va Lista vaziyatni kuzatmoqda