Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Siema wszystkim. Słuchajcie, od jakiegoś czasu śledzę te wszystkie dramy w krypto i co chwila czytam, że jakiś nowy protokół DeFi został wyczyszczony z grubej kasy. Praktycznie za każdym razem przewija się tam jedno magiczne hasło. Zastanawiałem się ostatnio jak działają błyskawiczne pożyczki (flash loans) używane przez hakerów i pomyślałem, że zagaję temat na forum, bo może ktoś z was ma to głębiej rozkminione.
Z tego co sam ogarnąłem z różnych artykułów, to flash loans to taki dziwny mechanizm w sieci, gdzie możesz pożyczyć dosłownie miliony dolców w tokenach bez wnoszenia absolutnie jakiegokolwiek zabezpieczenia. Brzmi jak totalna abstrakcja i scam, nie? Haczyk polega na tym, że musisz oddać cały pożyczony hajs (plus jakąś drobną prowizję) w ramach dokładnie tej samej transakcji w bloku. Jak nie oddasz na koniec, albo po drodze braknie ci siana, to cała akcja jest automatycznie cofana przez sieć, jakby w ogóle nigdy nic się nie stało. Ryzyko dla samej platformy pożyczkowej jest więc praktycznie zerowe.
No i teraz wjeżdżają na pełnej ataki hakerów. Normalny ziomek z ulicy używa tego mechanizmu do prostego arbitrażu, żeby zarobić parę groszy na różnicy kursów między giełdami. Z kolei cyberprzestępcy traktują błyskawiczne pożyczki jako darmowy, gigantyczny lewar do odpalania exploitów. Biorą taką pożyczkę bez zabezpieczeń na chory kapitał, powiedzmy 50 baniek. Mając w ręku taką kasę, sztucznie pompują lub zrzucają cenę jakiegoś mało płynnego shita na jednym z DEX-ów. Najczęściej wykorzystują tu błędy w smart kontraktach albo robią brutalną manipulację wyroczniami (czyli fałszują odczyt ceny z tzw. oracles). Kiedy cena jest już zepsuta w kosmos, używają tych przewartościowanych tokenów jako "zabezpieczenia", żeby wyciągnąć prawdziwą płynność z innego protokołu. Na koniec po prostu spłacaja pierwotną pożyczkę z tego co właśnie ukradli, a czysty zysk z wałka ląduje w ich prywatnym portfelu. Wszystko to dzieje się w ułamku sekundy, w jednym jedynym bloku.
Mega mnie to fascynuje, ale też przeraża, bo pokazuje jak bardzo kruche potrafią być niektóre systemy. Zastanawiam się, czy w ogóle da się to jakoś sensownie łatać na poziomie kodu? Widzieliście ostatnio jakieś ciekawe analizy takich kradzieży z użyciem flash loanów? Jak myślicie, czy mniejsze projekty DeFi da się jakoś obronić, czy zawsze będą łatwym łupem dla cwaniaków operujących wielkim, cudzym kapitałem przez kilka sekund? Dajcie znać co o tym myślicie, bo temat wydaje się gruby.
Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Siema, bardzo dobrze to wszystko rozkminiłeś. Widać, że odrobiłeś pracę domową, bo większość ludzi na tagu dalej myśli, że to jakaś czarna magia, a to czysta matematyka i kod. Prawda jest taka, że błyskawiczne pożyczki (flash loans) same w sobie nie są złe. To po prostu neutralne narzędzie w sieci. Jak łom – możesz nim bez wysiłku wyciągnąć gwoździa na budowie, albo wyłamać komuś drzwi do chaty i zwinąć telewizor.
Zastanawiasz się, dlaczego tak łatwo ogolić te wszystkie protokoły. Główny problem nie leży w tym, jak działa mechanizm błyskawicznego pożyczania bez zabezpieczenia, ale w tym, że devy wypuszczają potężny gównokod. Skoro każdy cyberprzestępca może pożyczyć 100 baniek w stablecoinach bez grosza przy duszy w ramach jednej transakcji, to znaczy, że systemy wyceniające aktywa (tzw. wyrocznie) muszą być kuloodporne. A zazwyczaj nie są. Większość tych kradzieży DeFi z użyciem flashów opiera się na totalnym lenistwie programistów.
Zamiast zintegrować profesjonalne, zdecentralizowane wyrocznie typu Chainlink, podpinają cenę pod jakiś mały, płytki basen płynności na Uniswapie. Haker bierze ten ogromny darmowy lewar, ładuje go w ten konkretny pool i nagle algorytm głupieje, myśląc, że jakiś randomowy shitcoin jest warty 1000 razy więcej niż sekundę temu. System daje się oszukać i pozwala atakującemu pod to napompowane zabezpiecznia wypłacić prawdziwe, twarde dolary z innej puli. Potem gość spłaca swój błyskawiczny dług na koniec bloku, a resztę pierze przez Tornado Cash. Koniec imprezy, projekt rekt.
Pytasz czy da się to sensownie łatać na poziomie kodu? No jasne. Przede wszystkim stosuje się mechanizmy takie jak TWAP (Time-Weighted Average Price). Wtedy smart kontrakt nie patrzy na cenę z ułamka sekundy, tylko liczy średnią z jakiegoś dłuższego okresu. Jak haker zmanipuluje kurs na parę chwil, to średnia i tak ledwo drgnie, więc atak traci jakikolwiek sens. Problem w tym, że w krypto wszyscy gnają za szybkim zyskiem. Nowe projekty to często chamskie forki (kopie) popularnych platform lendingowych. Ktoś kopiuje kod, zmienia logo, modyfikuje dwa parametry o których nie ma pojęcia i cyk, farmienie odpalone. Bez audytu, bez testów bezpieczeństwa.
Jak lubisz takie techniczne rozkminki, to wejdź sobie na Twittera i poszukaj kont takich jak PeckShield, CertiK czy BlockSec. Oni wrzucają tam dokładne, pośmiertne analizy (post-mortem) każdego większego włamu. Czasami włos się na głowie jeży, jak banalne błędy są wykorzystywane. Poza manipulacją wyroczniami, mega popularne są ataki typu reentrancy w kombo z flash loanami. Kod bywa tak dziurawy, że pozwala hakerowi zapętlić wypłatę środków w nieskończoność przed tym, jak kontrakt w ogóle zdąży zaktualizować jego saldo. Błyskawiczny kredyt daje im tu tylko kapitał początkowy, żeby ten wałek był jak najbardziej opłacalny.
Więc odpowiadając krótko: mniejsze projekty DeFi zawsze będą mięsem armatnim. Dopóki twórcy będą oszczędzać hajs na porządnych audytach, dopóty będziemy co tydzień czytać, że hakerzy używający błyskawicznych pożyczek znowu wydrenowali z rynku miliony. Taki mamy klimat na tym Dzikim Zachodzie, trzeba się z tym oswoić.
Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Zgadzam się z przedmówcami, chłopaki w zasadzie wyczerpali główny wątek techniczny jeśli chodzi o to jak działają błyskawiczne pożyczki używane przez hakerów i dlaczego wina zazwyczaj leży po stronie leniwych devów. Ale dorzucę wam tu jeszcze jedną, totalnie odklejoną warstwę tej całej zabawy, o której mało kto na tagu gada. Mianowicie: boty MEV (Miner Extractable Value) i drapieżniki w mempoolu. To jest dopiero kosmos.
Wyobraźcie sobie taką akcję. Jakiś cwaniak spędza tygodnie nad kodem, znajduje w końcu lukę, pisze skrypt pod atak na smart kontrakt i odpala transakcję. Bierze gigantyczny lewar w krypto na ułamek sekundy i już zaciera ręce, że zaraz zgarnie miliony. Ale zanim ta jego transakcja w ogóle wejdzie do łańcucha, wisi sobie przez chwilę w tzw. poczekalni (mempool). Tam bez przerwy skanują ją drapieżne boty napisane przez największe mózgi od arbitrażu. Jak taki bot zauważy w kodzie, że czyjaś transakcja przyniesie gigantyczny zysk wykorzystując chwilówki w jednym bloku, to w ułamku sekundy... kradnie pomysł hakera.
Kopiuje całą logikę ataku i wysyła identyczną transakcję do sieci, ale płaci walidatorowi potężną łapówkę w opłatach transakcyjnych (gas fee), żeby przepchnął jego wersję jako pierwszą. W efekcie oryginalny atakujący traci kasę na prowizję i zostaje z niczym, a całą kradzież środków z DeFi finalizuje bot front-runner. To są dosłownie mroczne lasy Ethereum, drapieżnik zjada drapieżnika na naszych oczach.
Dlatego z perspektywy zwykłego usera, który chce po prostu pomnożyć hajs, kluczowe jest to, żeby nie ładować się w każdy nowy protokół z obietnicą 1000% APY. Jak projekt to swieży fork zrobiony na kolanie, bez porządnego programu bug bounty dla white-hatów, to uciekajcie z krzykiem. Mam żelazną zasadę – pakuję kapitał tylko tam, gdzie kod przeżył już chociaż jedną hossę i bessę bez bycia wydrenowanym do zera. Nawet najdroższy audyt nie wyłapie wszystkiego, bo najgorsze luki w DeFi wychodzą często dopiero przy dziwnych interakcjach kilku różnych klocków lego naraz.
Jak chcecie spać spokojnie, to trzymajcie się największych graczy typu Aave czy Maker. Tam też kiedyś zdarzały się mniejsze przypały, ale teraz mają to na tyle połatane i monitorowane 24/7, że takie tanie numery z manipulacją ceną już nie przechodzą. Błyskawiczny kapitał to super sprawa dla utrzymania płynności rynków, no ale to zawsze będzie miecz obosieczny. Trzymajcie gardę wysoko i nie dajcie się wyzerować!