Czym jest i jak działa atak 51%?

W minionym tygodniu społeczność kryptowalutowa gorąco debatowała nad sensem istnienia sposobu osiągania konsensusu jakim jest Proof-of-Work (PoW). Pojawiło się wiele głosów mówiących o tym, że ten sposób jest nie tylko niezbyt przyjazny dla środowiska, ale także niebezpieczny. Kilka dni temu sieci Ethereum Classic została poddana atakowi typu 51%, który jest możliwy właśnie dzięki PoW. Jak się okazało nie jest trudna sztuka przejąć na chwile możliwość zarzadzania nad dana siecią dzięki posiadaniu większości mocy obliczeniowej. Czy zatem atak 51% może zagrozić innym kryptowalutom opartym o sposób osiągania konsensusu przez PoW? Ile kosztuje przeprowadzenie ataku 51%? Czy można się przed nim zabezpieczyć?

Czym jest atak 51%?

Aby odpowiedzieć na to pytane musimy najpierw wyjaśnić, jak działają nody w świecie kryptowalut. Nodami nazywamy komputery, które są podpięte do sieci danej kryptowaluty i przetrzymują cala księgę zawierająca historie transakcji. Nie jest to aż tak duża liczba informacji jak niektórzy myślą. W przypadku Bitcoina, który ma najdłuższy łańcuch jest to tylko 200 GB. Podczas weryfikowania transakcji, umieszczania ich w blokach i podpisywaniu bloków, nody dołączają nowe bloki do najdłuższego łańcucha. Dzieje się to z powodu tego, że najdłuższy łańcuch zawiera najwięcej transakcji stajać się automatycznie najbardziej wiarygodnym (brak usuniętych transakcji). Taki łańcuch ma tez najwięcej mocy obliczeniowej.

Jeżeli ktoś wejdzie w posiadanie więcej niż polowy mocy obliczeniowej sieci danej kryptowaluty, to jest w stanie oszukać inne nody w sieci. Warto pamiętać, że posiadanie większości mocy nie oznacza fizycznego podpięcia mnóstwa koparek do prądu. Można to zrobić poprzez kopalnie, które mają znaczna moc bądź wynająć moc obliczeniowa od innych górników na platformie NiceHash. Jest to platforma, na której możemy sprzedać moc obliczeniowa swojego komputera, która może min. zostać wykorzystana do kopania kryptowalut.

Posiadając już wystarczająca moc obliczeniowa możemy zarządzać siecią według własnego uznania. Jesteśmy w stanie wysłać kryptowaluty na dany adres na głównym łańcuchu, wysyłając je w międzyczasie również na inny adres na zforkowanym blockchainie, który kopiemy potajemnie dzięki ogromnej mocy, która posiadamy. Transakcja na głównym łańcuchu zostanie zatwierdzona przez inne nody, ponieważ jest to aktualnie najdłuższy łańcuch, a środki zostaną przelane na wskazany adres. Następnie ujawniamy łańcuch, który kopaliśmy potajemnie i zostaje on zaakceptowany przez inne nody. Warto pamiętać, że oficjalny łańcuch, który był najdłuższy już nim nie jest, ponieważ nasz, potajemnie kopany łańcuch stal się dłuższy dzięki temu, że kontrolowaliśmy więcej niż 50% mocy danej sieci. Skutkiem tego będzie znikniecie oficjalnej transakcji (tej przeprowadzonej na pierwszym najdłuższym łańcuchu, gdzie operowało większość komputerów) oraz zaakceptowanie przez nody transakcji z potajemnie kopanego łańcucha. To zjawisko nazywamy podwójnym wydawaniem (eng. double spent).

Ile kosztuje atak 51%?

Jak już wcześniej wspomniałem istnieją platformy takie jak np. NiceHash, na których możemy wypożyczyć moc obliczeniowa od innych użytkowników. Dzięki temu nie musimy fizycznie kupować koparek i podłączać ich do sieci, a możemy skorzystać z już podpiętych. Na stronie crypto51 możemy znaleźć tabele przedstawiająca koszty godzinnego ataku typu 51% na kryptowaluty oparte o Proof-of-Work. Przedstawia ona kolejno od lewej nazwę kryptowaluty, jej ticker, kapitalizacje rynkowa, algorytm, aktualna moc obliczeniowa sieci, koszty godzinowego ataku oraz ilość mocy potrzebnej do ataku i dostępnej na NiceHash.

Wartość w przedostatniej kolumnie: koszt godzinowego ataku jest obliczana na podstawie cen na NiceHash za wynajęcie mocy obliczeniowej dla danego algorytmu na określony czas (w tym przypadku 1 godzina). Warto zwrócić uwagę ze koszty ataku nie wliczają nagród za bloki, które przypadną atakującemu. Jak zaznaczają twórcy strony, wliczają nagrody za blok w koszt ataku, w niektórych przypadkach może być on nawet o 80% niższy.

Atak 51%

Źródło: Crypto51

Jak możemy zobaczyć w powyższej tabeli, koszty godzinnego ataku w przypadku największych kryptowalut są śmiesznie niskie. Wystarczy zaledwie 300 000 USD, aby zaatakować Bitcoina. Dla Ethereum wartość ta jest prawie 4-krotnie niższa: 83 680 USD. W przypadku Monero, Dash czy Ethereum Classic przeciętny amerykański pracownik korporacji jest w stanie za swoja miesięczna pensje przeprowadzić atak 51%. Na szczęście pieniądze to nie wszystko. Dużo większym problemem jest dostępność mocy do wynajęcia, aby moc zaatakować dana siec.

Nie wszystko jest na wyciagnięcie ręki

Jak możemy zobaczyć w ostatniej kolumnie nie dla każdej kryptowaluty jest możliwość wynajęcia odpowiedniej ilości mocy obliczeniowej, aby ja zaatakować. O ile w przypadku Ethereum Classic, który w minionym tygodniu został właśnie zaatakowany w ten sposób, praktyczne cala moc można wynająć poprzez NiceHash, tak w przypadku innych kryptowalut nie jest już tak łatwo. Jedynie 7% mocy jest dostępnej dla Litecoina oraz Zcash, 5% dla Monero oraz Ethereum, zaledwie 2% dla Bitcoin Cash i 0% dla Bitcoina. Pamiętajmy o jednej bardzo banalnej rzeczy, im większa moc obliczeniowa danej kryptowaluty tym więcej mocy potrzebujemy do ataku 51% na jej siec. W momencie tworzenia tego artykułu Ethereum Classic miało zaledwie ok. 10 TH/s mocy obliczeniowej swojej sieci. Dla porównania Litecoin ma ok. 170 TH/s, Ethereum 180 TH/s, Bitcoin Cash 1 500 000 TH/s a Bitcoin 40 000 000 TH/s. Możemy wiec zauważyć jak ciężkie byłoby zaatakowanie np. sieci Ethereum atakiem 51%. W tym przypadku hakerzy potrzebowaliby 18-razy więcej kontrolowanej mocy niż dla Ethereum Classic. A jedynie 5% mogliby uzyskać z NiceHash. Resztę musieliby przejąć w formie kontroli nad największymi kopalniami na świecie lub poprzez podłączeniu dziesiątek tysięcy koparek. Pamiętajmy jednak, że z każdą podłączaną koparka hakerzy automatycznie zwiększaliby również moc obliczeniowa sieci, czyli robiliby sobie pod górkę. W przypadku Bitcoin Cash oraz Bitcoina takie działania byłby o niebo trudniejsze. Wręcz niemożliwe ze względu na logistykę i koszty.

Bezpieczne bazy danych

Dość często przytaczanym argumentem przez zwolenników kryptowalut jest fakt, że są one bezpiecznymi bazami danych. Rosnąca ilość nodow w danej sieci a co za tym idzie rosnąca moc obliczeniowa, powodują ze dana kryptowaluta staje się bezpieczniejsza. Ciężej przejąć nad nią kontrole, ponieważ kosztuje to zbyt dużo i wymaga zbyt skomplikowanych operacji. Z każdym więc dniem Bitcoin, Litecoin, Dash czy Zcash stają się trudniejsze do zhakowania. Im mocniej będzie rosła ich cena tym więcej osób będzie chciało je kopać, podłączając do sieci coraz to nowe koparki. Spowoduje to znaczny wzrost mocy obliczeniowej i dużo więcej problemów dla hakerów w przypadku ataku 51%. Stając się mocniej pożądane, kryptowaluty stają się również bardziej zabezpieczone. Ta zależność jest wręcz fascynująca.

Maciej Kmita

Komentarze