Atak na the DAO
Niedawno pisaliśmy o the DAO (ang. Decentralised Autonomous Organisation), nietypowym funduszu venture capital opartym o blockchain Ethereum i inteligentne kontrakty. The DAO w tzw. okresie kreacji zebrała środki w kryptowalucie ETH odpowiadające w dniu zamknięcia kreacji, czyli 28 maja 2016 r., kwocie 132 mln dolarów.
W piątek 17 czerwca 2016 r. o poranku okazało się, że trwa atak na the DAO i że wyprowadzono z niej ok. 1/3 ETH, których wartość wynosi ok. 50 mln dolarów. Atak był możliwy dzięki wykorzystaniu furtki w kodzie the DAO, której nie dostrzegli jej twórcy. W konsekwencji powstało „child DAO”, zwane również „Dark DAO”, w którym znalazły się wyprowadzone ETH.
Scenariusz ataku
Żeby zrozumieć, co się wydarzyło, należy przypomnieć, że jednym z podmiotów działających w the DAO są kuratorzy. System przewiduje możliwość zaproponowania nowego kuratora przez inwestorów (posiadaczy tokenów DAO). Propozycję poddaje się pod głosowanie i jeżeli nie uzyska ona wymaganej większości, grupa inwestorów, która głosowała za zmianą i jest niezadowolona z tego rozstrzygnięcia, może wycofać swoje środki do odrębnego DAO – wykonać tzw. „split”. Operacja splitu polega więc na likwidacji (spaleniu) tokenów the DAO po przeniesieniu odpowiadającej im kwoty ETH do nowego „child DAO”. Wykorzystana w ataku furtka w kodzie polega na wysłaniu powtarzającego się żądania wycofania ETH i w konsekwencji wielokrotnego powtarzania transferu ETH z the DAO (z możliwością całkowitego wyczerpania jej środków).
Skutki ataku
Wydarzenia z 17 czerwca spowodowały spadek wartości tokenów the DAO oraz spadek wartości ETH. Potwierdziły się również opinie tych, którzy uważali, że projekt the DAO jest najdroższym w historii sposobem testowania nowego oprogramowania. Wywołały także, co oczywiste, niezwykle gorącą dyskusję na forach internetowych dotyczących the DAO oraz Ethereum.
Dark DAO jest w sensie programistycznym klonem the DAO, a zatem ma cechy identyczne jak the DAO, w tym 27-dniowy okres kreacji, w trakcie którego haker stojący za atakiem nie może wycofać z niej środków. Tak więc wyprowadzenie środków z Dark DAO będzie możliwe dopiero po zamknięciu fazy kreacji, co daje czas na analizę sytuacji przez społeczność Ethereum i twórców jego kodu.
W konsekwencji pojawiły się propozycje przeciwdziałania skutkom ataku, podjęto także próby zapobieżenia kolejnym atakom (trzeba pamiętać, że the DAO, podobnie jak wszystkie jej pochodne DAO, w tym Dark DAO, są inteligentnym kontraktem i nie mogą być arbitralnie zmieniane przez twórców; nie jest więc możliwa prosta zmiana wadliwie działającego kodu na inny).
Soft fork i hard fork
Przeciwdziałanie skutkom ataku wychodzi naprzeciw oczekiwaniom większości użytkowników blockchaina Ethereum, którzy chcą zmienić aktualny uzgodniony stan blockchaina, wynikający z wyprowadzenia środków z the DAO, i odzyskać zainwestowane ETH. Z tego względu twórcy kodu zaproponowali wprowadzenie do niego zmian i przedstawili dwa scenariusze: „soft fork” i „hard fork”.
W uproszczeniu scenariusz „soft fork” polega na stworzeniu takiej modyfikacji kodu, która zablokuje możliwość wyprowadzenia ETH z Dark DAO po zakończeniu fazy jej kreacji. Warunkiem powodzenia jest zastosowanie aktualizacji oprogramowania przez większość użytkowników utrzymujących sieć Ethereum. Dzięki modyfikacji możliwa będzie infiltracja Dark DAO przez „dobrych hackerów” i przeniesienie jej środków do kolejnego child DAO. Następnie środki z tej child DAO i z the DAO zostaną zwrócone właścicielom tokenów the DAO. Scenariusz „soft fork” jest stosunkowo prosty we wdrożeniu, nie niesie ze sobą poważniejszych konsekwencji dla sieci Ethereum w razie niepowodzenia, ale nie daje pełnej gwarancji odzyskania skradzionych środków przez inwestorów.
Scenariusz „hard fork” polega na stworzeniu de facto nowego blockchaina Ethereum, zawierającego zmiany w odniesieniu do the DAO, który musi być zaakceptowany przez wszystkich użytkowników oraz giełdy kryptowalut. Gdyby zmiana została przyjęta, powstałby kontrakt zwrotu ETH i wszyscy posiadacze tokenów the DAO mogliby odzyskać odpowiadającą tokenom liczbę ETH. Scenariusz „hard fork” daje gwarancję odzyskania wszystkich środków, ale niesie ze sobą ryzyko rozszczepienia sieci Ethereum na dwie odrębne sieci: użytkownicy, którzy do „hard forku” nie przystąpią, pozostaną w oryginalnym blockchainie Ethereum. Pro-pozycja „hard fork” jest znacznie bardziej kontrowersyjna niż „soft fork” i niesie ze sobą ryzyko rozszczepienia sieci (a w konsekwencji chaosu lub nawet upadku całego projektu Ethereum).
Dobrzy i źli hakerzy
Podjęta została również próba zapobieżenia kolejnym atakom poprzez wyprowadzenie środków z the DAO do nowych child DAO (White DAO) przez „dobrych hakerów”. Wykorzystana została do tego ta sama furtka w funkcji splitu, której użyto przy tworzeniu Dark DAO. Ze względu na konieczność szybkiego działania przeanalizowane zostały oczekujące propozycje splitu i do tych, które wyglądały na bezpieczne, przyłączyli się „dobrzy hakerzy”. Niestety okazało się, że przynajmniej w jednej z nich czaił się „zły haker” (możliwe nawet, że przyłączył się do wszystkich oczekujących propozycji splitu), więc nie ma pewności, czy środki w White DAO są bezpieczne.
Dni po ataku na the DAO były pełne napięcia i sensacyjnych wydarzeń dla osób zaangażowanych w projekt. Pojawiły się również ciekawe zagadnienia prawne.
Czy atak na the DAO był cyberprzestępstwem?
Atak na the DAO możliwy był dzięki „furtce” w oprogramowaniu, której nie przewidzieli jego twórcy. Należy jednak podkreślić, że we wszystkich dokumentach na stronie the DAO wyraźnie zastrzeżono, że zasady, cechy i warunki realizacji projektu określone są w kodzie.
W sieci pojawił się list osoby, która nazywa siebie Napastnikiem (the Attacker). Napastnik tłumaczy, że wyprowadzenie środków z the DAO wynikało z określonych cech programu, które wykorzystał. Cechy te uznaje za mające na celu decentralizację i tworzenie child DAO. Podkreśla również, że jego działania nie można uznać za kradzież oraz że zasięgnął w odniesieniu do swych działań opinii prawnych, które popierają ten punkt widzenia.
Argumentacji Napastnika nie można odmówić spójności, przy uwzględnieniu zasadniczej cechy operacji dokonywanych w blockchainie, która polega na odporności na manipulacje i oszustwa.
Biorąc pod uwagę założenia dotyczące blockchaina i inteligentnych kontraktów, które nie mogą ulec sfałszowaniu, są autonomiczne i niepodlegające kontroli instytucjonalnej, pojawiło się pytanie, czy omówione powyżej plany wprowadzenia modyfikacji kodu nie są pogwałceniem podstawowych zasad tej technologii. Dodatkowo, jeżeli jednak uznamy działanie Napastnika za przestępstwo, to czym są w takim razie splity dokonane z the DAO przez „dobrych hakerów”, jeżeli nie przestępstwem?
Zasadnicze pytanie polega na tym, co przeważa – zasada obiektywnej prawdy dotyczącej historii inteligentnych kontraktów zapisanych w blockchainie i opartych o kod, czy też założenia biznesowe i niepisana umowa odnosząca się do celu wykorzystania środków zgromadzonych w the DAO.
A więc czy można uznać, że „furtka” w programie była jego błędem, który powinien być naprawiony przy wykorzystaniu możliwości jakie daje system? Czy legitymacja dla projektu the DAO, opartego o blockchain i inteligentne kontrakty, nie wymaga przestrzegania ogólnie uznanych norm, uczciwości kontraktowej oraz zasad reprezentacji? Przyjmuje się przecież, że blockchain oddaje obiektywną prawdę o stanie the DAO, a stan ten powinien być oparty o przeświadczenie większości uczestników co do jego prawidłowości.
Atak na the DAO doskonale odzwierciedla problemy i sprzeczności, jakie zawiera ten projekt.
Tak czy owak, projekt możemy chyba uznać za zakończony. Jedyne, czego chcą obecnie jego uczestnicy, to odzyskać zainwestowane ETH.