Hack DAO

DAO zhakowany

Nastąpił atak na DAO! Atakujący obecnie wysysa eter w DAO do „podrzędnego DAO”. Mówiąc najprościej, ta osoba zauważyła słabość platformy i wykorzystała ją, opróżniając w ten sposób około 40 milionów dolarów Ether. Hack miał na celu problem ponownego wejścia w funkcję Split DAO. Haker wywołuje funkcję split w ramach podziału i może wielokrotnie gromadzić dane w ramach jednej transakcji.

Jak dotąd nie podjęto żadnych działań, ale haker nie będzie mógł wycofać żadnego ETH, dopóki nie upłynie 27 dni, co jest okresem zastoju dla dziecięcych DAO. To ogromny problem, który wpływa na DAO. Sama platforma Ethereum nie ma tej luki w zabezpieczeniach.

W wyniku tego włamania pojawiła się propozycja miękkiego widelca; żadne bloki ani transakcje nie zostaną cofnięte po wdrożeniu oprogramowania. Wymusi to transakcje, które wykonują połączenia lub kody połączeń pełnomocników, które minimalizują saldo kont z hashem kodu.

Co to jest włamanie, gdy nie masz specyfikacji?

Po pierwsze, aby powiedzieć, że coś jest błędem lub włamaniem, musi istnieć specyfikacja błędu lub niepożądanego zachowania. Nie było takich wypowiedzianych specyfikacji DAO. Ponadto nie ma określonej specyfikacji organizacji, która miałaby zostać zrealizowana w celu osiągnięcia sukcesu.

W kodzie nie ma dokumentacji wyjaśniającej, co zrobili programiści podczas pisania kodu. Ludzie mówią, że kod był sam w sobie, był swoim własnym rodzicem.

Potocznie haker mógł przeczytać drobny druk lepiej niż sami programiści.

W tej chwili nie ma bezpiecznej przystani

Możesz pomyśleć, że łatwo jest wypłacić wszystkie swoje środki z DAO, gdy staniesz w obliczu ataku, ale nie zawsze tak jest. Twórcy DAO postanowili utrudnić każdemu wypłatę środków z DAO. Nie masz opcji, aby po prostu wyjąć swój eter. Zwykle musisz założyć nowe podrzędne konto DAO i przenieść swój Ether na nowe konto i przechowywać je tam przez co najmniej 27 dni. Więc jeśli atakujący zdecyduje się monitorować tworzenie kont, może dostać się na konta amatorskie i spuścić fundusze, zanim zostaną zaktualizowane. Nie jest to łatwe, jeśli tak się stanie, przywoła cenzurę.

Przenoszenie środków wiąże się z kosztami

DAO nie zostało stworzone, aby mieć prostą funkcję aktualizacji. Zwłaszcza teraz nie ma możliwości przywrócenia konta DAO z obecnego stanu do nowego kodu umowy. Konta z dodatkowym saldem nie można przekształcić w wersję z nową umową. Oznacza to po prostu, że konto z dodatkowym saldem, na którym znajduje się Ether o wartości miliona dolarów, jest odpisem.

Czy Ethereum jest idealne do bezpiecznych inteligentnych kontraktów?

Jest teraz jasne, że napisanie szerokiego i bezpiecznego inteligentnego kontraktu wymaga dużej staranności i dyscypliny, tak jak napisanie kodu reaktora jądrowego. Jednak wydaje się, że język solidności został zaprojektowany bardziej dla luźnego kodu internetowego. Oto niektóre z brakujących funkcji.

Świetny język do kodowania zapewniłby, że nie ma stanu, który jest trudny do odzyskania.

Świetny język do kodowania wyjaśniłby jasno, kiedy można dokonać konwersji stanów, a kiedy nie.

Niesamowity język do obsługi systemu miałby funkcje poprawiające bezpieczeństwo kontraktu na żywo.

Nienaganny język do kodowania jasno określałby, że nie powinno być żadnych ukrytych działań, kod jest wykonywany wyraźnie, jak czytano.

Obecny język w DAO nie odnosi się w pełni do żadnego z powyższych przykazań. W rzeczywistości przykazanie, które obejmuje wykonanie kodu i niejawne działania, jest tym, co wydarzyło się w DAO. Deweloperzy zlecili nawet zarówno implementatorowi, jak i projektantowi solidności napisanie recenzji kodu. Jeśli te osoby nie mogą potwierdzić bezpieczeństwa DAO, nikt inny nie może.

Ataki naśladowców

Obecnie głównym problemem są ataki naśladowców. Inni ludzie mogą uczyć się z tego wydarzenia i robić dokładnie to samo.

Zatrzymanie napastnika

Głównym problemem jest to, że nikt nie wie, jak społeczność Ethereum zareaguje na to wydarzenie. Co więcej, cofnięcie łańcucha bloków nie zrobi nic poza wysłaniem negatywnej wiadomości. Gdyby łatwo było cofnąć kontrakty, to w jaki sposób inteligentne kontrakty są bezpieczniejsze niż zwykłe kontrakty papierowe.

Obserwowanie, jak organizacja jest atakowana przez hakera, jest naprawdę przygnębiające i tworzy zupełnie nowy zestaw emocji związanych z DAO. Najwyraźniej nie ma niezawodnego i długoterminowego rozwiązania. Być może programiści po prostu zamrożą DAO i pozwolą inwestorom wycofać swój Ether, aby zmniejszyć złe uczucia. Ale ostatecznie nie ma takiego podejścia, które wywoła uśmiech na twarzy wszystkich.

Wniosek

Inteligentne kontrakty są rewolucyjne i pozostaną jedną z najbardziej ekscytujących dziedzin w świecie fintechów. Dopiero zaczęliśmy rysować powierzchnię. Jak mówią, każdy nowy projekt ma swój rosnący ból. Każdy początkowy etap zwykle napotyka pewne niepowodzenia i ludzie mają nadzieję, że Ethereum znajdzie świetne rozwiązanie w ciągu najbliższych kilku tygodni – okazuje się silniejszy niż kiedykolwiek wcześniej.