Proof of work (algorytm górniczy)
Algorytm górniczy (Proof of work) – to algorytm służący do potwierdzania transakcji (algorytm konsensusu). Stworzony dla blockchaina Bitcoina. Węzły (nody) górnicze dzięki mocy obliczeniowej swoich sprzętów sieciowych, próbują rozwiązać skomplikowaną łamigłówkę matematyczną, której wynik staje się pieczątką uwierzytelniającą. Węzeł, który pierwszy obliczy wynik – dostaje nagrodę – nowe “wykopane” z powietrza Bitcoiny + opłatę transakcyjną od potwierdzonych operacji.
Istnieją różne odmiany algorytmu górniczego. Górnictwo Bitcoina opiera się na algorytmie SHA-256 (Secure hash algorithm 256 bits). To “magiczna maszynka”, można wrzucić do niej wszystko (dowolnej długości lub wielkości plik, tekst, zapis liczbowy), a ona przerobi to na 256 bitowy hash. Jeżeli wrzucimy do niej Pana Tadeusza, a później Pana Tadeusza bez jednego ogonka przy którymś “ę” – otrzymamy dwa zupełnie różne hashe.
Hash:
- to pieczątka, którą zatwierdza się blok, dokładany do łańcucha bloków czyli blockchaina.
- każdy hash ma taką samą długość, czyli w przypadku naszego Bitcoina byłoby to 256 bitów kodu maszynowego.
- hash nie jest przypadkowym ciągiem znaków- niewielka zmiana danych to całkowita zmiana hasha.
- każdy hash jest zależny od poprzednich hashy, którymi opatrzono transakcje od początku istnienia łańcucha bloków. Dlatego jest on nierozerwalny.
Funkcje hashujące:
- inaczej funkcja jednokierunkowa – nawet jeśli mamy dane wyjściowe (po przetworzeniu), to nie jest możliwe żebyśmy odkryli jakie były dane wejściowe, tzn. istnieje bardzo niewielkie prawdopodobieństwo, że je odgadniemy,
- jeśli podamy takie same dane, to po przepuszczeniu przez funkcje hashująca dostaniemy ten sam wynik – ten sam hash.
Potwierdzanie transakcji polega na tym, że SHA-256 “przemiela” blok z zapisanymi transakcjami, wypluwa 256-bitowy odcisk palca (hash), a górnicze sprzęty z mozołem potwierdzają czy wszystko się zgadza – czy otrzymany hash odzwierciedla dane w bloku. Każdy kolejny blok jest opatrzony hashem poprzedniego bloku i tak budują łańcuch bloków (patrz blockchain). Pamiętając przykład z Panem Tadeuszem można zrozumieć, że jeżeli komputery potwierdzą, że hash się zgadza, mamy do czynienia z właściwą książką rachunkową i prawidłowo wykonaną transakcją.
Górnictwo to bardzo energochłonny proces, który wydłuża się wraz ze zwiększaniem się użytkowników sieci. Na początku historii Bitcoina do potwierdzania transakcji wystarczał zwykły komputer. Teraz by zarabiać na tym procesie (by wydobyte Bitcoiny pokryły koszty zużytej energii i dały nawiązkę) trzeba posiadać koparkę czyli podrasowany sprzęt wypełniony kartami graficznymi – im większa moc kart tym większa moc obliczeniowa i tym skuteczniejsze kopanie. By trafić zaś na całą żyłę cyfrowego złota, trzeba zainwestować w chłodzony hangar lub kontener wypełniony sprzętem – takie obiekty nazywa się kopalniami.
Przez Bitcoina koszt kart graficznych potężnie skoczył w górę, górnicy wyczyścili z nich sklepowe magazyny (grafika przedstawiająca wzrost ceny radeona).