Ryzyka związane z DeFi – ataki na Fulcrum / bZx

Korzystanie z DeFi ma sporo zalet. Przede wszystkim zarówno nasze krypto, jak i oszczędności zgromadzone w stablecoinach, mogą dla nas pracować, generując dodatkowy dochód. Opcje takie jak lokaty, są zazwyczaj dużo lepiej oprocentowane niż ich bankowe odpowiedniki. Dodatkowo cały czas to my mamy pełną kontrolę nad środkami, mogąc je wypłacić, wraz z wypracowanymi odsetkami, w dowolnym momencie.
Niestety DeFi ma również mniej różową stroną. Istnieją pewne ryzyka związane z korzystaniem ze zdecentralizowanych rozwiązań finansowych. Dzisiaj tekst jest właśnie im poświęcony.
Oprócz ogólnej analizy ryzyk związanych z DeFi, subskrybenci mojego newslettera mają dostęp do szczegółowej analizy ostatnich ataków na protokół bZx (Fulcrum), ich przyczyn oraz sposobów radzenia sobie z ich skutkami i zapobiegania ich na przyszłość. Jeśli jeszcze nie jesteś subskrybentem, zostań nim teraz, aby otrzymasz tą ekskluzywną analizę w mailu powitalnym. Jeśli jesteś już zapisany na newsletter, to link do tego dokumentu dostałeś w mailu z 22ego lutego 2020r.
Spis treści
3 ogólne ryzyka związane z korzystaniem z DeFi
Możemy wyróżnić trzy główne kategorie ryzyk, w wyniku których nasze środki umieszczone w projektach DeFi mogą stać się zagrożone. Pierwsze z nich, to potencjalne błędy w kodzie smart contractu. Mogę one być wykorzystane przez hakerów do wyprowadzenia z systemu środków. Drugie ryzyko, to możliwość manipulacji informacją o cenie (ang. price feed). No i trzecie, to zbyt mała, być może tylko pozorna decentralizacja. Przyjrzyjmy się teraz każdemu z nich trochę bliżej.
Ryzyko błędów w smart contractach
Smart contract to tak naprawdę program komputerowy, który jest wykonywany w specyficznych warunkach – na blockchainie. Wykorzystanie smart contractów do automatycznego zarządzania produktami finansowymi sprawia, że w ich posiadaniu znajdują się naprawdę spore kwoty. Kilkunastu, kilkudziesięciu czy nawet kilkuset milionów dolarów. Potencjalne błędy w kodzie smart contractu mogą grozić utratą tych środków.
Aby temu zapobiec społeczność deweloperów Ethereum opracowała szereg narzędzi i dobrych praktyk, mających na celu zapewnienie jak największego bezpieczeństwa nowo powstałych rozwiązań.
Po pierwsze ekosystem uczy się na popełnianych wcześniej błędach. Wektory ataku wykorzystywane w poprzednich atakach (taki jak The DAO Hack 1 1. Legendarny atak na zdecentralizowaną organizację The DAO, który miał miejsce w lecie 2016 roku. W jego wyniku wykradziono 3.6 mln ETH, co po szerokiej i gorącej dyskusji doprowadziło do "wymazania" atak z blockchaina, co zaowocowało podziałem sieci na Ethereum (ETH), gdzie wymazano atak, oraz Ethereum Classic (ETC), gdzie się z nim pogodzono. Więcej na ten temat dowiesz się z anglojęzycznego artykułu The DAO Hack Explained. × czy Parity MultiSig Hacks 2 2. Tak naprawdę dwa różne rodzaje ataków na portfel typu multisig stworzony przez firmę Parity. Portfele to były wykorzystywane przez niektóre projekty do przechowywania środków zgromadzonych podczas ICO. Jak się okazało, portfel był podatny na ataki. W wyniku jednego z nich, można było wykraść z niego środki. Drugi pozwalał je bezpowrotnie zamrozić. Łączne straty przekroczyły 100 mln USD × , stały się już nieskuteczne, ponieważ zabezpieczenia przed nimi stały się kanonem dobrych praktyk pisania smart contractów. Te dobre praktyki wspierane są przez szereg gotowych bibliotek i narzędzi wykorzystywanych przez programistów.
Jednym ze standardów w branży jest otwieranie kodu źródłowego smart contractów. Kod jest publicznie dostępny dla każdego. Dzięki temu każdy może go przeanalizować w poszukiwaniu potencjalnych błędów. Często projekty wynagradzają finansowo osoby, które znalazły i zgłosiły takie błędy.
Mamy również proces specjalnych zewnętrznych audytów bezpieczeństwa. Kod i działania smart contractów jest analizowane przez kilka zewnętrznych firm, które specjalizują się w temacie bezpieczeństwa tego typu aplikacji.
Przed publikacją smart contractów na głównej sieci Ethereum przechodzą one wielotygodniowe, a czasem nawet wielomiesięczne, testy w sieciach testowych.
Wszystkie te działania mają na celu dostarczyć jak najlepszą jakość kodu i zminimalizować ryzyko występowania w nich krytycznych błędów, które mogą być wykorzystane do przywłaszczenia bądź zamrożenia środków zgromadzonych na smart contractach.
W przypadku wystąpienia takiego błędu twórcy mogę stworzyć specjalny system reagowania. Na przykład zatrzymać działanie smart contractu i potem opublikować jego nową, poprawioną wersją. Wiąże się to jednak, ze złamaniem zasad decentralizacji. Z przypisaniem twórcom i administratorom zbyt dużych uprawnień, które mogą być przez nich wykorzystane do niecnych celów. O tym ryzyku mówimy w ostatnim, trzecim punkcie.
Manipulacja ceną / informacją o cenie (ang. price feed)
Każdy ze zdecentralizowanych produktów finansowych wykorzystuje w swoim działaniu różne walory. Kryptowaluty bądź stablecoiny. Kluczową informacją, potrzebną do prawidłowego działania systemu, jest aktualna cena poszczególnych walorów. I tutaj jest przysłowiowy pies pogrzebany.
DeFi z założenia ma być systemem trustless. Niewymagającym zaufania od nikogo i do nikogo. A jednak w jakiś sposób musimy zdobyć informacje o aktualnej cenie. Mamy na to dwa sposoby. Pierwszy to wykorzystanie jakiegoś innego istniejącego, zdecentralizowanego systemu, który posiada taką informację. Przykładem tutaj jest zdecentralizowana giełda Uniswap. Przedstawia one rynkowe ceny poszczególnych walorów, ponieważ odstępstwa od nich są okazją do arbitrażu, który tym samym samym niweluje to odstępstwo. Jednak cena na Uniswap może być podatna na chwilowe manipulacje. Zanim inni uczestnicy rynku nie zdążą wykorzystać okazji do arbitrażu. Co zostało wykorzystane właśnie podczas ostatniego ataku na Fulcrum.
Drugie źródło danych, to tak zwane wyrocznie. Agregujące i normalizujące informacje z wielu źródeł. Np. pobierając informacje o cenie z kilkunastu największych giełd, odrzucając ewidentne anomalie i wyliczając średnią z pozostałych wyników. Korzystając z wyroczni musimy mieć na uwadzę potencjalne ryzyko manipulacji przez jej operatora. Dlatego powinna ona mieć jak najbardziej zdecentralizowanych charakter. Nad dostarczaniem do smart contractów wiarygodnych danych, w sposób nie wymagający zaufania, pracuje projekt Chainlink.
Ryzyko pozornej decentralizacji
Decentralizacja to bardzo rozmazane pojęcie. Brakuje jasnej, zero jedynkowej definicji, która zostałaby przyjęta przez ogół. W związku z tym paradygmat decentralizacji kryptowalut i innych rozwiązań opartych o blockchain kwestionowany jest od niemal początku ich istnienia.
Decentralizacja jest przedmiotem nieustannych dyskusji i kontrowersji nawet wśród najpopularniejszych kryptowalut. Czy Bitcoin jest rzeczywiście zdecentralizowany, jeśli jego wydobycie jest skoncentrowane w rękach kilku grup (ang. mining pools)? To samo można powiedzieć o wydobyciu Ethereum. Jeśli dodać do tego ogromny wpływ Fundacji Ethereum i samego Vitalika Buterina na rozwój platformy i jej ekosystemu, to czy można tutaj mówić o decentralizacji?
Kwestia decentralizacji jest jeszcze bardziej skomplikowana w projektach DeFi. Z jednej strony mamy obietnicę wykorzystania technologii do wyeliminowania czynnika zaufania do innych ludzi bądź instytucji. Z drugiej strony mamy technologię i rozwiązania stworzone w oparciu o nie, które są nowe, nie do końca sprawdzone i przetestowane. Cały ruch DeFi, to jeden wielki eksperyment. Najdłuższej trwające projekty, takie jak MakerDAO i DAI są na rynku obecne dopiero od dwóch lat. Większość z nich ma staż zaledwie kilkumiesięczny. Każdy nowy projekt, to tak naprawdę nowy element w układance. Ponieważ DeFi jest oparty o tokeny dostępne na publicznym blockchainie, to powszechne jest łączenie różnych produktów DeFi ze sobą. Wykorzystywanie produktów jednego z nich, w drugim. Co otwiera coraz to nowsze, ale też bardziej złożone możliwości.
Jeśli chodzi o pieniądze, to nikt za bardzo nie chce ich stracić. Zwłaszcza w wyniku cudzych błędów. W eksperymencie pod nazwą DeFi zgromadzono już środki warte setki milionów dolarów. Z jednej strony chcemy, aby to było zdecentralizowane. Ale z drugiej, jakby coś jednak poszło nie tak, to chcemy aby ktoś mógł to zatrzymać, naprawić.
Dlatego szereg smart contractów DeFi nadaje specjalne przywileje swoim administratorom. Informacje o tym zazwyczaj znajdują się w dokumentacji, ale nie są specjalnie eksponowane. A jest to kluczowy czynnik, bowiem wtedy może się okazać, że decentralizacja to tylko fasada. Za którą i tak klucz do wszystkich zamków posiadają administratorzy. Co nie tylko stwarza ryzyko złych intencji z ich strony. Ale także otwiera furtkę do działania regulatorom czy złodziejom, którzy być może mogą wykraść klucze administratora. Działania podjęte przez zespół Fulcrum po ostatnim ataku na protokół poddały pod dyskusję fakt jego decentralizacji. Czy zdecentralizowany system powinien mieć guzik pauzy, który może być wciśnięty przez administratora ze skutkiem natychmiastowym?
Przy czym nie należy od razu wieszać psów na protokole, który pozostawia wiele odpowiedzialności w rękach swoich twórców. Zwłaszcza, jeśli jest to nowy projekt. Jest on narażony na wiele ryzyk, które mogą wiązać się z koniecznością podjęcia szybkich działach. Wiele projektów zaczyna w ten sposób. By następnie z czasem i wzrostem pewności co do bezpieczeństwa protokołu zwiększać decentralizację, pozbywając administratorów kluczowych uprawnień. Właśnie takie podejście prezentuje omawiany niedawno przeze mnie protokół Synthetix Network.
Lego money – czyli ryzyka podkręcone do kwadratu

Często w kontekście pieniędzy umieszczonych w DeFi i produktach finansowych w oparciu o nie zbudowanych mówi się jako o “lego money”. A to dlatego, że wszystkie te produkty znajdują na na publicznym blockchainie i można je ze sobą wzajemnie łączyć. Niczym klocki lego.
Jest to rewolucyjna, niespotykana do tej pory sytuacja. W tradycyjnym systemie finansowym możesz liczyć tylko na dokładnie taką ofertę, jaką zbudował dla Ciebie bank. Np. standardem jest, że drobne kwoty przy zakupach kartą mogą być automatycznie odkładane na konto oszczędnościowe. Z tą uwagą, że to musi być konto oszczędnościowe w tym samym banku. Nie możesz sobie stworzyć automatycznego rozwiązania, które te środki przelewało by do innego banku. Albo na wybraną przez Ciebie giełdę kryptowalut, na których dokonywano by automatycznie dla Ciebie zakupu Bitcoina i przelewano środki na Twój portfel. DeFi natomiast pozwala robić takie rzeczy. W jednym ciągu transakcji, możemy nasz kapitał przeciągnąć przez szereg różnych smart contractów, produktów finansowych. Łączyć je ze sobą w dowolnych konfiguracjach. Szukając przy tym optymalnych dla nas rozwiązań. Jest to nowy ocean możliwości. Który rozrasta się coraz bardziej wraz z pojawieniem się każdej nowej opcji ze świata DeFi.
Budowanie sobie własnych produktów finansowych z “klocków” dostępnych w różnych produktach DeFi może się również wiązać ze zwiększonym ryzykiem.
Jeśli dany system działa w izolacji, bez kontaktu z innymi systemami, to jesteśmy w stanie w miarę przewidzieć wszystkie możliwe zachowania. Jeśli jednak może on być łączony z innymi systemami, właściwie w nieskończonych konfiguracjach, to powstają ryzyka, że są takie konfiguracje, które pozwolą na wykorzystania słabości systemu i wyprowadzenie z nich środków. I właśnie tak przebiegały ostatnie ataki na bZx (Fulcrum). Nikt nie wykradł z nich nich bezpośrednio środków, tylko stworzono sieć interakcji pomiędzy różnymi produktami DeFi, w wyniku czego zmanipulowano ceną pewnych walorów, co doprowadziło do powstania w systemie pożyczek bez pełnego pokrycia w zastawie. I ta dziura w zastawie jest stratą zaatakowanego protokołu.
Jednym z nowych klocków DeFi, który został wykorzystany przy omawianych atakach, są tzw. flash loans. Czyli pożyczki błyskawiczne. Muszą one zostać spłacone w tej samej transakcji, w której zostały one zaciągnięte. W normalnym świecie nie miałoby to sensu. Ale na blockchainie ma, ponieważ między wzięciem pożyczki a jej spłatą, możesz obrócić środki przez kilka innych smart contractów i wygenerować dla siebie zysk. To właśnie zrobił nasz atakującą. Ważną cechą flash loan jest to, że są one mega bezpieczne dla tych, którzy ich udzielają. Bowiem jest ona udzielana tylko wtedy jeśli jest spłacona. Wynika to z faktu, że transakcje na blockchainie atomowe. Są albo realizowane w całości albo wcale. Jeśli po drodze, których z kroków się nie powiódł, to zmiany, które zaszły w poprzednich krokach są odrzucane. Tak więc w tym przypadku jeśli na końcu transakcji nie ma spłaty pożyczki, to cofane jest jej udzielenie na początku i wszystko to co potem zostałem wykonane z tymi środkami. Co oznacza, że nie ma także obowiązku zastawu pod te pożyczki. Możesz je wziąć będąc gołym i wesołym. Mając absolutne zero w portfelu. Pod warunkiem, że w obrębie jednej transakcji będziesz w stanie wygenerować zysk i ją zwrócić z odsetkami. Wykorzystanie flash loans sprawiło, że atakujący nie potrzebuje dysponować właściwie żadnym kapitałem, aby przeprowadzić atak. Wystarczy mu wiedza jak. Bez flash loans oprócz wiedzy, potrzebowałby również sporego zasobu kapitału, aby to zrobić (1000 ETH i 7500 ETH w poszczególnych atakach).
Atak na Fulcrum – szczegółowa analiza
Szczegółowa analiza obu przypadków ataków, ich przyczyn oraz sposobów radzenia sobie z ich skutkami i zapobiegania ich na przyszłość są dostępne wyłącznie dla subskrybentów mojego newslettera. Jeśli jeszcze nim nie jesteś, zapisz się teraz, a otrzymasz tą ekskluzywną analizę w mailu powitalnym. Jeśli jesteś już zapisany na newsletter, to link do tego dokumentu dostałeś w mailu z 22ego lutego 2020r.
Podsumowanie
Korzystanie z DeFi wiąże się z szeregiem ryzyk. Musimy być ich świadomi podejmując decyzje o korzystaniu z tych rozwiązań i umieszczaniu tam naszych oszczędności. Z jednej strony zagrożeniem mogą być błędy w samej technologii i jej niedojrzałość. Z drugiej strony mamy mechanizm zabezpieczający przed tymi ryzykami – szereg dużych uprawnień kontrolnych dla administratorów. Które jednak same w sobie również są ryzykiem i poddają w wątpliwość całą ideę decentralizacji.
Co nie ulega wątpliwości, to fakt, że wraz z upływem czasu, rozwiązanie DeFi stają się coraz bardziej sprawdzone i bezpieczne. Współczynnik decentralizacji również w wyniku tego zwiększa się. A każdy incydent, jak te omawiane z Fulcrum (bZx) sprawiają, że system długoterminowo staje się bardziej stabilny i bezpieczny.
Ja umieściłem sporą część moich oszczędności i środków inwestycyjnych w produktach DeFi. Dla wielu te ryzyka mogę być jednak zbyt duże. Dlatego ciekawym rozwiązaniem mogą być ubezpieczenia od tych ryzyk. Jeśli chciałbyś poczytać o tym więcej, to proszę zostaw swój komentarz poniżej.
Poszerz swoją wiedzę o DeFi
Zdecentralizowane finanse to obecnie najsilniejszy trend w branży blockchain. To ten projektu napędzają ostatnie wzrosty na rynku kryptowalut. Chcesz się dowiedzieć więcej na ich temat? Poznać nowe opcje inwestowania i zarabiania? Zapisz się na darmowy kurs wprowadzający.

Super artykuł, proponuję tylko poprawić kilka błędów stylistycznych i bedzie idealnie. Pozdrawiam
Jeśli artykuł jest dobry to nikogo nie interesuje ortografia czy stylistyka ( poza ortograficzną policją) a ten artykuł jest bardzo dobry 😏
Witaj Piotr !
Co myślisz o Yield? Czy sa bezpieczni i czy warto ulokowac tam stable-coins?
Dzieki i pozdrawiam.
Nie myślę. To jest scentralizowana firma, jest po za kręgiem moich zainteresowań