Atak na the DAO

Komentarze

Transkrypt

Atak na the DAO
Atak na the DAO
Agnieszka Kraińska
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.