Ile bitcoinów jesteś w stanie wykopać, kopiąc na papierze?
Wszyscy słyszeliśmy o bitcoinach - pierwszej kryptowalucie stworzonej przez kogoś (lub grupę ludzi) o pseudonimie Satoshi Nakamoto.
Bitcoin jest walutą, której liczba w ekonomii jest ograniczona - istnieje maksymalna liczba bitcoinów, które mogą zostać wygenerowane. Generowanie bitcoinów odbywa się przez proces zwany wykopywaniem (ang. mining).
Generowanie nowych bitcoinów polega na rozwiązaniu problemu kryptograficznego. W dzisiejszych czasach szanse na wydobycie nowej monety są minimalne, a konkurencja w postaci wyspecjalizowanych kopalni pracujących często w krajach o niskim koszcie energii jest ogromna.
Szukanie igły w stogu siana
Obliczanie funkcji skrótu hash SHA-256 specjalnie zostało tak dobrane, aby złożoność zadania powodowała powolne obliczenia. Ma to spowolnić wydobywanie kryptowaluty do założonego poziomu.
Funkcja skrótu jest to funkcja kryptograficzna, która na podstawie bloku danych generuje nieprzewidywalny, ale oparty na tych danych, wynik. Oczywiście nieprzewidywalność zależy od możliwości obliczeniowych sprawdzającego - przyjmuje się że jeżeli weryfikacja zajęłaby np. lata, to w praktyce można mówić o nieprzewidywalności. Chcący wykopać kryptomonetę musi dopasować dane do skrótu.
Twórcy bitcoina opatrzyli algorytm jeszcze kilkoma utrudnieniami. Między innymi: algorytm jest stosowany dwukrotnie (ponownie na wyniku), oraz wynik jest akceptowany jedynie wtedy, gdy ma odpowiednią liczbę zer na początku rozwinięcia (a właściwie - jest maksymalnie małą liczbą po rozwinięciu dziesiętnym). Wszystko to powoduje, że wykopywanie nowych bitcoinów kosztuje coraz więcej czasu i mocy obliczeniowej.
Ciekawe byłoby jednak uświadomić sobie rzeczywistą pracę i złożoność potrzebną do wykopania monety.
Pytania o to zadał sobie Ken Shirriff. Postanowił sprawdzić, czy kopanie (rozwiązanie algorytmu SHA-256) da się zrealizować za pomocą obliczeń na papierze wykonywanych za pomocą ołówka.
Kopiemy bitcoiny na papierze
Ken Shirriff postanowił odtworzyć cały proces obliczania SHA-256 za pomocą obliczeń ręcznych na papierze. Cały proces opisał na swoim blogu, jak również sfilmował go, a materiał umieścił na YouTube.
Pierwszy etap obliczania skrótu jednego bloku zajął mu 16 minut i 45 sekund. Obliczenia nie są złożone - są po prostu uciążliwe i wielokrotnie powtarzane. Tak naprawdę składają się z obliczeń logicznych i dodawania bardzo długich liczb. To właśnie dlatego proste układy scalone ASIC są tak wydajne w obliczaniu SHA-256 na potrzeby kopania bitcoinów. Warto wspomnieć, że inne kryptowaluty używają zazwyczaj innych, bardziej złożonych algorytmów.
Jedna runda obliczeń zajęła około 17 minut, z czego można wywnioskować, że pełen blok bitcoina, składający się ze 128 rund, zająłby 1,49 dnia obliczeń. Daje to 0,67 hashy dziennie. W porównaniu ze specjalizowanym sprzętem, liczącym wiele terahashy na sekundę, to wynik raczej słaby.
Ken Shirriff, pod wpływem pytania zadanego mu na Reddicie, postanowił obliczyć również własną wydajność energetyczną. W tym celu przyjął zużycie energii przez swój organizm na 1500 kcal dziennie, co daje około 10 megadżuli na hash. Człowiek jest więc również o wiele mniej wydajny energetycznie od wyspecjalizowanych urządzeń, które potrafią wygenerować tysiące megahashy kosztem jednego dżula energii. Jeśli chodzi o koszt energii spożytkowanej przez człowieka - Ken przyjął jedzenie pączków kosztujących około złotówki (23 centy) i dostarczających około 200 kalorii. W porównaniu z kosztem energii elektrycznej jest to kilkadziesiąt biliardów (1015 - jedynka z piętnastoma zerami) razy drożej.
Oczywiście, mimo że obliczenia zostały przeprowadzone rzetelnie, są jedynie żartobliwym uświadomieniem nam, jak bardzo komputery wyprzedziły nas, jeśli chodzi o wydajność i moc obliczeniową. Możemy zadać sobie pytanie, czy postapokaliptyczne scenariusze pokazywane przez literaturę, gry i seriale, nie wyglądałyby zupełnie inaczej, gdybyśmy zostali jedynie z możliwościami obliczeniowymi oferowanymi przez nasze mózgi.