Bitget App
Trade smarter
Kup kryptoRynkiHandelFuturesEarnWeb3CentrumWięcej
Handel
Spot
Kupuj i sprzedawaj krypto
Margin
Zwiększ swój kapitał i wydajność środków
Onchain
Korzyści Onchain bez wchodzenia na blockchain
Konwersja i handel blokowy
Konwertuj kryptowaluty jednym kliknięciem i bez opłat
Odkryj
Launchhub
Zdobądź przewagę na wczesnym etapie i zacznij wygrywać
Kopiuj
Kopiuj wybitnego tradera jednym kliknięciem
Boty
Prosty, szybki i niezawodny bot handlowy AI
Handel
Kontrakty futures zabezpieczone USDT
Kontrakty futures rozliczane w USDT
Kontrakty futures zabezpieczone USDC
Kontrakty futures rozliczane w USDC
Kontrakty futures zabezpieczone monetami
Kontrakty futures rozliczane w kryptowalutach
Odkryj
Przewodnik po kontraktach futures
Podróż po handlu kontraktami futures – od początkującego do zaawansowanego
Promocje kontraktów futures
Czekają na Ciebie wysokie nagrody
Bitget Earn
Najróżniejsze produkty do pomnażania Twoich aktywów
Simple Earn
Dokonuj wpłat i wypłat w dowolnej chwili, aby uzyskać elastyczne zyski przy zerowym ryzyku
On-chain Earn
Codzienne zyski bez ryzykowania kapitału
Strukturyzowane produkty Earn
Solidna innowacja finansowa pomagająca poruszać się po wahaniach rynkowych
VIP i Wealth Management
Usługi premium do inteligentnego zarządzania majątkiem
Pożyczki
Elastyczne pożyczanie z wysokim bezpieczeństwem środków
[Wersja angielska na Twitterze] Dogłębna analiza ataku na Balancer V2: mechanizm luki, kroki ataku i wnioski

[Wersja angielska na Twitterze] Dogłębna analiza ataku na Balancer V2: mechanizm luki, kroki ataku i wnioski

ChainFeedsChainFeeds2025/11/06 14:02
Pokaż oryginał
Przez:BlockSec

Chainfeeds Wprowadzenie:

Atakujący celowo ustawił parametry, w tym liczbę iteracji i kwotę wejściową, aby zmaksymalizować efekt utraty precyzji.

Źródło artykułu:

Autor artykułu:

BlockSec

Opinia:

BlockSec: 3 listopada 2025 roku Composable Stable Pool w Balancer V2 oraz kilka projektów on-chain opartych na jego Forku padły ofiarą skoordynowanego ataku cross-chain, który spowodował łączne straty przekraczające 125 milionów dolarów. BlockSec natychmiast wydał ostrzeżenie i wkrótce potem opublikował wstępną analizę. Był to wysoce złożony atak. Nasze dochodzenie wykazało, że podstawową przyczyną była utrata precyzji w obliczeniach niezmiennika, która umożliwiła manipulację ceną poprzez tę utratę precyzji, wpływając tym samym na cenę BPT (Balancer Pool Token). Atakujący wykorzystał pojedynczą operację batchSwap, aby uzyskać zysk z określonego stable pool. Dotkniętym komponentem był Composable Stable Pool w Balancer V2. Tego typu pule zostały zaprojektowane z myślą o aktywach, które mają utrzymywać kurs wymiany bliski 1:1, umożliwiając duże transakcje z minimalnym poślizgiem i znacznie zwiększając efektywność kapitałową aktywów powiązanych lub tego samego typu. Każda pula posiada własny BPT, którego cena może być przybliżona wzorem: cena BPT = D / totalSupply, gdzie D to niezmiennik w matematyce stable, reprezentujący wirtualną całkowitą wartość puli. Z tego wzoru wynika, że jeśli D zostanie matematycznie zmniejszone (nawet jeśli rzeczywiste środki nie zostaną utracone), cena BPT będzie niższa. Balancer V2 oferuje funkcję batchSwap(), która umożliwia wieloetapowe Swapy w ramach Vault, a w SwapRequest dostępne są dwa tryby: GIVEN_IN i GIVEN_OUT. W trybie GIVEN_OUT wywołujący określa oczekiwaną kwotę wyjściową, a pula oblicza wymaganą kwotę wejściową. W stable pool, podczas obliczania wymaganej kwoty wejściowej amountIn, należy rozwiązać równanie wielomianowe zgodnie ze wzorem niezmiennika, a wszystkie te obliczenia są poddawane Upscaling i Downscaling. Teoretycznie są to operacje odwrotne, ale w praktyce implementacja różni się kierunkiem zaokrąglania: Upscaling używa tylko zaokrąglenia w dół (mulDown), podczas gdy Downscaling może być zaokrąglany zarówno w górę, jak i w dół (divUp / divDown). Ta niespójność stworzyła pole do ataku. Źródłem luki jest użycie zaokrąglenia w dół podczas Upscaling swapRequest.amount w BaseGeneralPool._swapGivenOut(). Wartość po zaokrągleniu w dół jest traktowana jako amountOut i przekazywana do _onSwapGivenOut(), co powoduje, że ostatecznie obliczona amountIn jest mniejsza niż rzeczywista wymagana ilość, naruszając zasadę, że zaokrąglenie powinno zawsze działać na korzyść protokołu. W przypadku pul takich jak (wstETH / rETH / cbETH), atakujący może wymienić mniejszą ilość aktywów wejściowych na większą ilość innego aktywa, obniżając niezmiennik D i tym samym zaniżając cenę BPT. Atakujący przeprowadził atak dwuetapowy. W pierwszym etapie, w pojedynczej transakcji, realizowana jest główna logika ataku, ale zysk nie jest natychmiast uzyskiwany; w drugim etapie zysk jest wypłacany poprzez osobną transakcję. Pierwszy etap dzieli się na dwa kroki: obliczenie parametrów i batch swap. Na przykładzie transakcji ataku na łańcuchu Arbitrum (TX: 0x7da32e…55773), atakujący najpierw pobiera parametry puli, w tym scaling factors, A (współczynnik amplifikacji), kurs BPT, swap fee itd., następnie oblicza trickAmt i przeprowadza symulację za pomocą wdrożonego kontraktu pomocniczego. Atakujący precyzyjnie dostraja parametry kolejnego swapu, łącząc obliczenia offline z symulacją on-chain, w tym liczbę iteracji oraz wartości wejścia i wyjścia dla każdej iteracji. W każdej iteracji wykonywane są trzy kroki swap: w pierwszym kroku ilość tokena docelowego jest zwiększana do trickAmt + 1; w drugim kroku następuje dalszy swap tokena docelowego, co wywołuje zaokrąglenie w dół w _upscale(); w trzecim kroku następuje swap w przeciwnym kierunku, gdzie saldo puli jest zaokrąglane w dół do „usunięcia dwóch najwyższych miejsc po przecinku”, a następnie wymieniane z powrotem, np. 324,816 → 320,000. W niektórych przypadkach, ze względu na użycie metody Newton–Raphson do rozwiązywania równań w StableSwap, operacja może się nie powieść, więc atakujący przygotował dwa fallbacki, próbując ponownie z 9/10 oryginalnej wartości. Po ataku, ponieważ niektóre mechanizmy Balancer uniemożliwiają wstrzymanie działania, skutki ataku zostały spotęgowane, a następnie pojawiły się kolejne ataki na różnych łańcuchach i forkach, co doprowadziło do łącznych strat przekraczających 125 milionów dolarów. To zdarzenie ujawniło cztery kluczowe problemy zdecentralizowanych protokołów: niespójne mechanizmy zaokrąglania, stale ewoluujące techniki atakujących, brak możliwości wstrzymania działania, co zwiększa straty, oraz brak monitorowania stanu inicjalizacji i operacji w czasie rzeczywistym. Upscaling pozwala tylko na zaokrąglenie w dół, podczas gdy Downscaling dopuszcza zaokrąglenie w obu kierunkach; ta asymetria może prowadzić do akumulacji strat precyzji przy ekstremalnych parametrach, które mogą być wykorzystane. Kierunek zaokrąglania, który powinien zawsze działać na korzyść protokołu, w tym przypadku szkodził jego interesom. Atakujący zastosował dwuetapową metodę: w pierwszym etapie przeprowadza atak bez zysku księgowego, w drugim etapie wypłaca środki, omijając modele monitorowania on-chain. Każdy krok ataku łączył symulacje off-chain i on-chain, a kontrakt pomocniczy nawet wykorzystywał implementację StableMath z Balancer, zachowując nawet identyczne komunikaty o błędach. Po ataku pojawiły się kolejne ataki na wielu łańcuchach, a wiele projektów Fork również zostało dotkniętych, co pokazuje, że jeśli matematyka stable i logika zaokrąglania są takie same, luka może rozprzestrzenić się w całym ekosystemie. Zdarzenie to pokazuje, że protokoły DeFi wymagają bardziej precyzyjnych obliczeń matematycznych, bardziej rygorystycznej weryfikacji zaokrągleń i mechanizmów symulacji podejrzanych ścieżek, a także możliwości awaryjnego wstrzymania działania w sytuacjach wyjątkowych. [Oryginał w języku angielskim]

0

Zastrzeżenie: Treść tego artykułu odzwierciedla wyłącznie opinię autora i nie reprezentuje platformy w żadnym charakterze. Niniejszy artykuł nie ma służyć jako punkt odniesienia przy podejmowaniu decyzji inwestycyjnych.

PoolX: Stakuj, aby zarabiać
Nawet ponad 10% APR. Zarabiaj więcej, stakując więcej.
Stakuj teraz!

Może Ci się również spodobać

Kolejna znacząca runda finansowania w tym roku, jak Ripple utrzymuje wycenę na poziomie 40 miliardów dolarów?

Duże finansowanie, przekroczenie przez RLUSD skali 1.1 miliarda oraz nawiązanie współpracy z Mastercard — te trzy osiągnięcia tworzą pozytywną pętlę zwrotną i mogą oznaczać, że Ripple przechodzi od koncepcji „blockchainowego SWIFT” do rzeczywistej, napędzanej przychodami, globalnej infrastruktury rozliczeniowej.

Chaincatcher2025/11/06 16:28
Kolejna znacząca runda finansowania w tym roku, jak Ripple utrzymuje wycenę na poziomie 40 miliardów dolarów?

Potencjalna bomba w DeFi o wartości 8 miliardów dolarów, na razie wybuchł tylko 1 miliard

Afera Stream Finance i kryzys systemowy

Chaincatcher2025/11/06 16:28
Potencjalna bomba w DeFi o wartości 8 miliardów dolarów, na razie wybuchł tylko 1 miliard

Analiza danych: walka o utrzymanie poziomu 100 tysięcy dolarów – czy bitcoin odbije się, czy spadnie niżej?

Rynek być może wszedł w łagodny rynek niedźwiedzia.

Chaincatcher2025/11/06 16:26
Analiza danych: walka o utrzymanie poziomu 100 tysięcy dolarów – czy bitcoin odbije się, czy spadnie niżej?