Ataki na sieć kryptowaluty przy użyciu dużej mocy obliczeniowej

Kilka dni temu w sieci BTC mieliśmy nieprzyjemną sytuację, gdy pool GHash.io zaczął szybko powiększać swoją moc obliczeniową przeskakując z 32% na 42% mocy obliczeniowej całej sieci w ciągu 48h!

ghash.io-closer-to-51

Na szczęście dzięki odpowiedniej reakcji społeczności skupionej wokół /r/bitcoin problem po kilku godzinach został zlikwidowany.

why do we need litecoin

Ale dlaczego jeden, mający ponad 30% mocy obliczeniowej sieci pool miałby być zagrożeniem? Dlaczego pool mający 51% jest realnym zagrożeniem? Czy dwa poole mające razem ponad 51% są poważnym zagrożeniem? Jak powinna wyglądać bezpieczna sieć? I co robić, żeby temu zagrożeniu zapobiec?

Obecnie odkryto dwa ataki, które mogą poważnie zaszkodzić całej sieci, tj. wszystkim posiadaczom kryptowaluty.

 

Double spending

Pierwszy z nich to double spending, czyli dwukrotne wydawanie kryptowalut, do którego może dojść, gdy jeden pool posiada zbyt dużą moc obliczeniową i może użyć jej dla własnych korzyści. Taki pool będę dalej nazywał atakującym. Atakujący mając 51% mocy obliczeniowej sieci atakujący pool może:

  • odrzucać transakcje
  • zmieniać kolejność transakcji,

a co za tym idzie:

  • odwracać transakcje, które sam wysyła
  • uniemożliwiać niektórym lub wszystkim transakcjom uzyskiwanie potwierdzeń (widoczne jako 0/niepotwierdzone)
  • uniemożliwiać lub utrudniać niektórym lub wszystkim kopiącym uzyskiwanie nowych bloków
  • dwukrotnie wydawać swoje BTC

Atakujący jednak nie będzie w stanie:

  • odwracać transakcje innych adresów
  • całkowicie uniemożliwić wysyłania transakcji
  • zmienić ilość BTC generowanych przez blok
  • generować BTC
  • wysłać BTC, które nigdy do niego nie należały.

Jest kilka wektorów wykonania tego ataku, chociaż sam atak może być zupełnie przypadkowy i jak widać, jest on dość powszechny.

 

BITCOIN IS BROKEN

SELFISH MINING

Kolejny atakiem, który można przeprowadzić na sieci, to “selfish mining” (nawet nie próbuję tego przetłumaczyć). By go dokonać, potrzeba, według różnych źródeł, od 25% do 31% mocy obliczeniowej sieci. Jeszcze 2 miesiące temu przeprowadzenie tego ataku wydawało się mało prawdopodobne; mówiono jedynie o sztucznie przygotowanych warunkach… Dzisiaj patrzymy na “selfish mining” jako na realne, poważne zagrożenie, ponieważ na chwilę obecną mamy 2 poole, które mogłyby go dokonać.

Atak polega na tym, że pool, który znajduje blok, nie pokazuje go całej sieci, ale zatrzymuje go dla siebie w swoim prywatnym blockchainie, na jakiś czas, zbierając w ten sposób prawidłowe bloki, po to, żeby je potem wszystkie na raz opublikować. Niesie to ze sobą następujące zagrożenia:

  • manipulowanie trudnością sieci (mniej prawidłowych bloków, czyli obniżanie szacowanej szybkości sieci, spowoduje ustawienie niższej trudności)
  • obniżenie zysków innych kopiących; jeśli atakujący pool wykopał prawidłowe bloki, zostają one u niego, a konkurencyjne poola kopią niepotrzebnie, bo nie wiedzą, że prawidłowy blok został już znaleziony

Żeby wykonać atak:

  1. Atakujący musi znaleźć blok N, może go publikować, a jeśli go nie opublikuje, to sieć nie wie, że należy szukać następnego bloku. Atakujący jako jedyny wie wtedy, że należy szukać bloku N+1. Jest w swoim blokchainie o jeden blok dalej niż reszta sieci.
  2. Mając większą moc może szukać dalej kolejnego bloku N+2, N+3, … Im więcej bloków do przodu wykopie, tym bardziej zostawia w tyle resztę sieci, jednak prawdopodobieństwo tego, że uda się to utrzymać co blok bardzo drastycznie spada, bo wystarczy, że ktoś inny wykopie prawidłowy blok (numer N) i go opublikuje, by wydłużyć publiczny blockchain, wtedy bloki atakującego automatycznie stają się nieważne.
  3. Gdy atakującemu uda się uzbierać kilka czy kilkanaście kolejnych bloków i bardzo szybko je opublikować, dostaje wtedy całe wynagrodzenia dla siebie, gdyż sieć nie pozwala wydać części wynagrodzenia za blok(i). Albo dostajesz całość albo nic. W tym wypadku atakujący zgarnia wszystko od bloku N do N+n, reszta kopiących nic.

Trudność tego  ataku polega na tym, że jeśli atakujący ma zbyt małą moc obliczeniową, ktoś może zacząć go gonić, wykopać blok N, a następnie N+1. Wtedy goniący publikuje te bloki i zgarnia nagrodę, atakujący musi rozpocząć atak od początku.

Co jest potrzebne do przeprowadzenia ataku? Sporo głupich minerów, głupia społeczność i złe intencje właściciela poola. W sieci BTC i LTC brakuje tych składników ataku. W społeczności LTC dwa największe poole nie przyjmują już nowych kopiących. Na liście mailingowej developerów BTC pojawiła się propozycja złożona przez Gavina Andresena:

From: Gavin Andresen <gavinandresen@gmail.com>
Date: Thu, 7 Nov 2013 14:56:56 +1000

> P.S: If any large pools want to try this stuff out, give me a shout.
> You  have my PGP key - confidentiality assured.

Natychmiast pojawiła się odpowiedź:

If I find out one of the large pools decides to run this 'experiment'
on the main network, I will make it my mission to tell people to
switch to a more responsible pool.

Mając odpowiednie narzędzia bardzo łatwo jest monitorować, kto i z jaką częstotliwością wykopał bloki, więc łatwo przyłapać go na próbie ataku.

Jeśli atak jest przeprowadzany na jakieś małej walucie, która nie jest szczególnie obserwowana, inna niż BTC czy LTC, a ostatnio nawet DOGE, atak nie powinien być trudny do przeprowadzenia.

 

Ostatnio mamy wysyp scam-coinów. Jednym z nich jest Lennycoin, który na samym początku posiadał dwa poole, z tego tylko jeden stabilny. Już pewnie wiesz, co zrobili bezmyślni kopiący i na co pozwolił administrator poola. Tak, jeden pool po kilku godzinach od startu Lennycoina miał 77% mocy obliczeniowej sieci. Dalej nie ma się co przyglądać tej kryptowalucie.

 

Wcześniej zadałem pytanie, czy dwa poole mające razem ponad 51% mogą być zagrożeniem dla reszty sieci. Oczywiście, że tak. Wystarczy, że się ze sobą dogadają, a oba ataki będą znacznie trudniejsze do wykrycia.

 

Jakie mamy rozwiązania? Kryptowaluty potrzebują ludzi odpowiedzialnych, który wiedzą, gdzie kopią, komu dają swoją moc obliczeniową oraz czy osoba ta nie ma złych intencji. Po dziesiątkach kradzieży, znikających poolach, giełdach z backdoorami czy sieciach, które w momencie startu miały już wykopane 5% bloków… powinniśmy zacząć przełączać się na P2P poole, a kolejne scamcoiny, żeby miały jakąkolwiek wartość, muszą mieć znacznie bardziej zdecentralizowaną sieć, najlepiej również bazującą na P2P pool. Lennycoin był bardzo silnie scentralizowany, a BTC był bliski realnego zagrożenia ze strony GHash.io.

 

PLN, GBP, EURO, USD ARE BROKEN

Tak, wszystkie te waluty są zepsute. W przypadku każdej z nich bank może pożyczyć/wydać więcej niż ma. Stąd gigantyczne zadłużenie banków. W przypadku każdej z tych walut główny pool (rząd) może wykopać (wydrukować) sobie, ile chce dolarów, funtów czy euro.

 

źródła: cryptocoinsnews, bitcoinmagazine, Let’s talk bitcoin

 

[Total: 0    Average: 0/5]
  • Stary wygląd strony był lepszy

    • Ale nie działał na urządzeniach mobilnych, a na dużych ekranach część z tekstem była za wąska ;)
      No i chciałem coś bardziej minimalistycznego.