UWAGA! Ten serwis używa cookies i podobnych technologii.

Brak zmiany ustawienia przeglądarki oznacza zgodę na to. Czytaj więcej…

Zrozumiałem

Szukaj na blogu bitcoin

Dlaczego nie można kopać kryptowalut na procesorze?

Często pojawia się pytanie, dlaczego procesor nie potrafi wydobywać kryptowalut tak efektywnie, jak są w stanie robić to karty graficzne AMD.

Mam szybki procesor, dlaczego nie potrafi on efektywnie wydobywać Bitcoinów oraz innych walut?

Dzieje się tak dlatego, że CPU został zaprojektowany jako jednostka wykonawcza ogólnego przeznaczenia.

Ogólnie rzecz biorąc, karty graficzne to zespoły małych jednostek wykonawczych, zwanych ALU, które przetwarzają podobne zestawy informacji jednocześnie. CPU także posiada ALU, ale w zdecydowanie mniejszych ilościach (nie należy jednak utożsamiać ALU w CPU z ALU w GPU, są trochę inaczej budowane, nie zmienia to faktu, że w CPU jest kilka, w GPU kilka tysięcy).

Nie interesuje ich żadne podejmowanie decyzji, jak w przypadku CPU, za pomocą którego system operacyjny zarządza komputerem, ich zadanie jest proste, przelicz, podaj wynik. Jest tak dlatego, że GPU służą do przetwarzania grafiki, a grafika to nic innego, jak piksele na ekranie, które z kolei są tam umieszczane za pomocą obliczeń, dokonywanych właśnie przez GPU (procesor jednak bierze udział w wyliczaniu pozycji na ekranie, na przykład generuje pozycje modeli postaci w grach, następnie GPU wypełnia je teksturami, oblicza kąt padania światła, generuje cienie i tym podobne). Przetwarzanie grafiki nie jest jednak jedynym zadaniem dzisiejszych GPU, ponieważ służą one do wielu operacji w świecie nauki, na przykład symulacje oddziaływań cząsteczek w fizyce, chemii i biologii, meteorologia również korzysta z GPU, kiedy wykonywane są symulacje przesuwania się chmur i wiele, wiele innych. Zrobienie użytku z GPU było oczywiste dla osób zajmujących się wydobyciem Bitcoinów, ponieważ mining jest niczym innym, jak przetwarzaniem podobnych zbiorów danych do skutku. Nie będę przytaczał tutaj dokładnego algorytmu, ponieważ nie taki jest sens artykułu, który ma wprowadzić w temat osoby początkujące, niekoniecznie zajmujące się informatyką. Karty graficzne mają także duże znaczenie w kryptografii, na przykład próby złamania hasła do sieci WiFi chronionej protokołem WPA-2 odbywają się właśnie na mocnych GPU.

Filmik obrazujący różnice w przetwarzaniu danych przez CPU a GPU z programu Pogromcy Mitów:


 

Skoro karty graficzne są szybkie, to dlaczego nie opłaca się na nich wydobywać Bitcoinów, tylko trzeba posiadać koparkę zwaną ASIC?

ASIC to nazwa potoczna dla koparek. W rzeczywistości jest to nazwa zbiorcza układów elektronicznych, stworzonych na potrzeby wykonywania danej operacji matematycznej, ściśle się w niej specjalizującej i niemożliwej do przeprogramowania na poziomie software. Sam skrót ASIC można rozwinąć do Application-specific integrated circut, co znaczy układ scalony przystosowany do danej aplikacji (w sensie zastosowania). Przechodząc do sedna, kolejny raz powtarza się schemat, który wyeliminował CPU z miningu, kiedy pojawiły się programy używające GPU. Karty graficzne nie mają ściśle określonego zastosowania, można je programować. W informatyce im dany układ jest bardziej uniwersalny, tym wolniejszy od układu przystosowanego do danych typów operacji. Jest to rzecz nieunikniona i naturalna, dlatego buduje się przeróżne układy. ASIC dla Bitcoin pozwalają realizować tylko jeden algorytm - poszukiwanie funkcji skrótu SHA-256. Jest to rozwiązanie siłowe, układ liczy, póki nie trafi - SHA-256 przekształca kawałek tekstu w 256 bitowy klucz. Dla przykładu, słowo Bitmon potraktowane przez algorytm haszowania wygląda tak:

6a89e0debc29d0030b6d3b9f34297c75a5ae9c47e5d9f7f4352d5673ddd4750c

Natomiast Bitmon.pl tak:

f155f8aef4158c7794cfc1ab77adde1212289a0a39be3507532d2f845d83ea6a

Jak widać, mimo podobnych ciągów wejściowych, wyniki są zupełnie inne. Nie jest możliwe w prosty sposób odgadnięcie ciągu wejściowego, potraktowanego takim algorytmem. Układy ASIC dla Bitcoin z wygenerowanego hasha szukają ciągu wejściowego, ten, który trafi, dostaje nagrodę. Ten opis jest obrazowy, faktyczne działanie algorytmu dla Bitcoin jest trochę inne, zainteresowani mogą poczytać o nim tutaj:

https://en.bitcoin.it/wiki/Getwork 

Ostatecznie, czy procesory i karty graficzne są w takim razie bezużyteczne dla wydobycia Bitcoin i innych walut?

Nie do końca, istnieją monety oparte na algorytmach, które na obecną chwilę mogą realizować tylko CPU. Przykładowe waluty tego typu to Quarkcoin i Primecoin. Primecoin to waluta interesująca, ponieważ moc udzielana przez górników jest używana do obliczania kolejnych liczb pierwszych, co może w przyszłości doprowadzić do odkrycia nowych twierdzeń matematycznych. Istnieją również monety oparte na algorytmie, dla którego ciężko stworzyć układ typu ASIC, takie jak Litecoin lub Dogecoin. Litecoin była pierwszą walutą opartą na algorytmie “scrypt”, który jest w istocie podobny, do tego, który jest zaimplementowany w Bitcoin, z tą różnicą, że wymaga użycia pamięci. Jak wiadomo, nowoczesne karty graficzne mają bardzo szybką pamięć typu GDDR5 i dlatego nadają się do tych obliczeń. Pamięć taka jest droga i budowa ASIC jest z tego względu zdecydowanie utrudniona, jednak możliwa, każdy typ obliczeń wykonywany przez GPU może być również realizowany przez ASIC, barierą jest koszt zaprojektowania oraz produkcji takiego układu. Na chwilę obecną istnieją już układy ASIC dla algorytmu scrypt, ale nie ma jeszcze pomiędzy nimi a GPU tak drastycznej różnicy, jak w przypadku Bitcoin i algorytmu SHA-256.

 

Serwis bitmon.pl nie wyraża zgody na przedruk tego artykułu.

Ostatnio zmieniany: sobota, 25 październik 2014 01:26