Smart kontrakty mają potencjał, aby zrewolucjonizować sposób prowadzenia biznesu poprzez automatyzację transakcji finansowych i procesów. Jednak, jak każda technologia, nie są one odporne na luki bezpieczeństwa. W przeszłości miało miejsce kilka przypadków włamań do smart kontraktów, które spowodowały znaczne straty i zachwiały zaufaniem społeczności. W tym artykule zbadamy niektóre z najbardziej pamiętnych hacków smart kontraktów wszech czasów i przeanalizujemy wnioski, jakie można z nich wyciągnąć. Od DAO do Bancor, te incydenty miały trwały wpływ na branżę blockchain i służą jako przestroga dla znaczenia właściwego zabezpieczenia i audytowania smart kontraktów.
Zhackowanie DAO
DAO, czyli Decentralized Autonomous Organization, została zaprojektowana jako zdecentralizowany fundusz venture capital dla sektora kryptowalut i technologii powiązanych. Jego zdecentralizowana struktura miała na celu zmniejszenie kosztów oraz zwiększenie kontroli i dostępu dla inwestorów. Bez centralnego organu, DAO miał działać w oparciu o zbiorowe podejmowanie decyzji przez jego inwestorów.
17 czerwca 2016 r. haker odkrył lukę w kodzie DAO, smart kontraktu na blockchainie Ethereum. Dzięki temu atakujący mógł wielokrotnie żądać, aby kontrakt przekazał mu środki z powrotem, co doprowadziło do kradzieży 3,6 mln ETH, wartych wówczas około 70 mln dolarów. Kradzież była możliwa dzięki dwóm problemom z projektem kontraktu: brakiem uwzględnienia możliwości wywołań rekurencyjnych oraz procesem, który najpierw wysyłał ETH, a następnie aktualizował wewnętrzne saldo tokenów.
Atak smart kontraktu DAO wywołał duże kontrowersje wśród użytkowników Ethereum, a szkody dla reputacji DAO zostały spotęgowane, gdy giełdy kryptowalutowe Poloniex i Kraken wycofały tokeny DAO w miesiącach następujących po hakach.
Zhackowanie Veritaseum
Veritaseum to kryptowaluta, która została uruchomiona w 2017 roku. W kwietniu 2018 roku Veritaseum doznało hakowania, które spowodowało utratę kryptowaluty o wartości około 8,4 miliona dolarów.
Hack nastąpił z powodu luki w smart kontrakcie, który kierował kryptowalutą Veritaseum. Niedopatrzenie umożliwiło atakującemu opróżnienie funduszy z smart kontraktu Veritaseum poprzez wykonanie ataku reentrancji, dzięki któremu możliwe było wielokrotne wywoływanie funkcji na kontrakcie, zanim jego stan został zaktualizowany, umożliwiając atakującemu opróżnienie funduszy.
Hack Veritaseum był przypomnieniem znaczenia właściwego zabezpieczenia smart kontraktów i potencjalnego ryzyka związanego z ich wykorzystaniem. Podkreśliło to również potrzebę solidnego testowania i audytowania smart kontraktów w celu zapewnienia, że są one bezpieczne i wolne od luk.
Zhackowanie Bancor
Sieć Bancor to zdecentralizowana giełda zbudowana na blockchainie Ethereum, która pozwala użytkownikom kupować i sprzedawać różne kryptowaluty. W lipcu 2018 roku sieć Bancor została zhakowana, co spowodowało utratę kryptowalut o wartości około 12 milionów dolarów.
Atak został przeprowadzony poprzez wykorzystanie luki w smart kontrakcie, który zarządzał siecią Bancor. Luka pozwoliła atakującemu na przejęcie kontroli nad kontraktem i odprowadzenie z niego środków. Naszczęście zespół Bancor był w stanie szybko zareagować na atak i wstrzymać handel na platformie, aby zapobiec dalszym stratom.
Hacki w DEFI
Smart kontrakty są ważnym elementem projektów zdecentralizowanych finansów (DeFi), ponieważ pozwalają na zautomatyzowane, samorealizujące się transakcje i procesy finansowe. Są one wykorzystywane do ułatwienia, weryfikacji i egzekwowania negocjacji lub wykonania umowy.
Bezpieczeństwo smart kontraktów jest szczególnie istotne w projektach DeFi, ponieważ smart kontrakty obsługują znaczne kwoty wartości i mogą być wykorzystywane do ułatwienia szerokiego zakresu transakcji finansowych. Jeśli smart kontrakt nie jest odpowiednio zabezpieczony, może zostać wykorzystany przez napastników, którzy mogą wykorzystać luki w kontrakcie do wyprowadzenia z niego środków lub manipulować kontraktem w inny sposób. Może to spowodować znaczne straty dla użytkowników projektu DeFi oraz zaszkodzić wiarygodności i rzetelności projektu.
Zhackowanie bZx
BZx to zdecentralizowany protokół finansowy (DeFi), który pozwala użytkownikom pożyczać kryptowaluty za pomocą smart kontraktów. W lutym 2020 roku bZx doznał dwóch oddzielnych hacków, które wykorzystały luki w swoich smart kontraktach.
Pierwsze włamanie miało miejsce 14 lutego 2020 r., wtedy zostały ukradzione około 6 milionów dolarów kryptowaluty. Drugie włamanie miało miejsce 18 lutego 2020 r., wtedy natomiast zostało skradzione dodatkowe 350 000 USD. Haki bZx były wynikiem luk w smart kontraktach bZx, które pozwoliły atakującym wykorzystać kontrakty i wyprowadzić z nich środki.
Zhackowanie Harvest Finance
Harvest Finance to zdecentralizowany protokół finansowy (DeFi), który pozwala użytkownikom zarabiać na dochodach poprzez zapewnienie płynności na różnych rynkach finansowych. W październiku 2020 roku, miał miejsce atak na ten protokół, została wtedy wykorzystana luka w smart kontrakcie Harvest Finance, aby ukraść kryptowalutę o wartości około 24 milionów dolarów.
Luka w smart kontrakcie pozwoliła atakującemu na manipulowanie kontraktem w sposób, który umożliwił mu na wyprowadzenie z niego środków bez uruchamiania zabezpieczeń kontraktu. Hack został odkryty kilka godzin po jego wystąpieniu, a zespół Harvest Finance był w stanie wstrzymać handel na platformie, aby zapobiec dalszym stratom.
Zhackowanie Akropolis
12 listopada 2020 r. platforma Akropolis (DeFi) doświadczyła ataku, w którym błąd w protokole doprowadził do utraty około 2 030 841,0177 DAI z dotkniętych puli YCurve i sUSD. Problem powstał z powodu błędu w obsłudze logiki depozytu w smart kontrakcie platformy SavingsModule
, co pozwoliło atakującemu na wybicie dużej liczby tokenów puli bez wsparcia wartościowych aktywów. Doszło do tego, ponieważ protokół nie zdołał prawidłowo zwalidować obsługiwanych tokenów i wymusić ochrony reentrancji na logice depozytu. Włamanie spowodowało znaczne zakłócenia i przede wszystkim straty dla użytkowników platformy Akropolis.
Wnioski
Znaczenie właściwego zabezpieczenia smart kontraktów jest nie do ocenienia. Smart kontrakty obsługują znaczne ilości wartości i mogą być wykorzystywane do ułatwienia szerokiego zakresu transakcji finansowych. Jeśli jednak kontrakt nie jest odpowiednio zabezpieczony, może to spowodować duże straty dla użytkowników i zaszkodzić wiarygodności oraz rzetelności projektu.
Dlatego tak ważne jest, aby smart kontrakty były dokładnie testowane i audytowane. Testowanie i audytowanie pomaga zapewnić, że smart kontrakty są bezpieczne i wolne od luk. Jest to kluczowy krok w procesie rozwoju i może pomóc w zapobieganiu incydentom bezpieczeństwa i zapewnić płynne działanie projektów opartych na technologii blockchain.