Popularność Bitcoina bezsprzecznie wzrasta. Co raz więcej osób nie związanych z inwestowaniem i kryptografią zaczyna interesować się czym jest Bitcoin i na jakiej zasadzie działa. Pierwsze przeczytane w internecie informacje dot. Bitcoina mogą być dla wielu trudne i nie zrozumiałe. Dziedziny takie jak informatyka, kryptografia czy matematyka są dosyć trudne do zrozumienia zwłaszcza dla osób potocznie nazywanych „bez ścisłego umysłu”. Wychodząc im naprzeciw postaram się wyjaśnić skąd bierze się bitcoin i na czym polega jego wydobywanie.

Pierwszym krokiem wykonywanym przez nas chcąc poznać znaczenie dowolnego pojęcia jest sprawdzenie jego wyjaśnienia w Wikipedii. Zacznijmy więc może w ten sam sposób i zobaczmy co na temat wydobywania Bitcoina zawarte jest w encyklopedii. Oto fragment dot. wydobywania:

Generowanie bitcoinów

Generowanie nowych bitmonet ma charakter probabilistyczny – może na nie trafić każdy użytkownik sieci aktywnie weryfikujący transakcje po spełnieniu określonego warunku, statystycznie bardzo mało prawdopodobnego. Generowanie bitmonet jest często nazywane wydobywaniem, poprzez analogię do wydobywania złota. Prawdopodobieństwo, iż dany użytkownik otrzyma partię monet, zależy od stosunku mocy obliczeniowej, wniesionej do sieci za jego pośrednictwem, do sumy mocy obliczeniowej, wniesionej przez wszystkie węzły. Liczba bitmonet stworzona w partii nigdy nie jest większa niż 12.5 BTC (dane na lipiec 2016), a nagrody są zaprogramowane na zmniejszanie się w czasie aż do zera, tak aby kiedykolwiek mogło zaistnieć nie więcej niż 21 milionów monet. 

Wszystkie węzły generujące sieci współzawodniczą w celu bycia pierwszymi w znalezieniu rozwiązania problemu kryptograficznego dla przetwarzanego bloku kandydującego, co wymaga stosowania powtarzających się prób i błędów. Kiedy węzeł znajdzie takie rozwiązanie, ogłasza je reszcie sieci oraz deklaruje się posiadaczem nowej partii bitmonet. Węzły otrzymujące nowo rozwiązany blok sprawdzają jego poprawność przed zaakceptowaniem i dodaniem do łańcucha. Użytkownicy mogą także generować bitmonety grupowo.

Sedno sposobu wydobywania w powyższym opisie przedstawione jest dosadnie, nie oznacza to jednak że w pełni zrozumiale. Spróbujmy więc przetłumaczyć powyższe stwierdzenia na bardziej pojętny język.

Zacznijmy od tego ważnego stwierdzenia: Bitcon można wprowadzic jako wielopodmiotowy protokół kryptograficzny. W stwierdzeniu tym słowo protokół oznacza program komputerowy mający chodzić na wielu komputerach jednocześnie (równolegle), a kryptograficzny czyli taki w którym wykorzystywane jest szyfrowanie.

Jak opisałem we wpisie Bitcoin – podstawy minning (ang.,oznacza wydobywanie, kopanie)  to udostępnianie mocy obliczeniowej swojego komputera do rozwiązywania z góry ustalonych problemów kryptograficznych. 

Pozyskiwanie Bitcoinów w procesie wydobywania polega na rozwiązywaniu bardzo skomplikowanych zadań kryptograficznych (matematycznych) do pomocy których używa się ogromnych nakładów pracy komputera, mocy obliczeniowej i prądu elektrycznego. W zamian za znalezienie rozwiązania nierówności (zadania kryptograficznego) górnicy otrzymują nagrodę w postaci Bitcoinów.
Czyli mówiąc wprost – osoba której oprogramowanie rozwiąże zadaną nierówność w zamian otrzyma określoną ilość Bitcoinów.

Cały proces wydobywania opiera się na prawdopodobieństwie. Im większą mocą obliczeniową się dysponuje tym większe prawdopodobieństwo jest rozwiązania zadania matematycznego i tym większe prawdopodobieństwo jest otrzymania za to rozwiązanie nagrody.

Początkowo do wydobywania Bitcoinów górnicy używali procesorów swoich komputerów. Wkrótce odkryli, że do rozwiązywania obliczeń zadanych nierówności lepiej nadają się karty graficzne stosowane do gier. Należy zaznaczyć, że karty graficzne są szybsze, ale potrzebują więcej energii i wytwarzają więcej ciepła.  Z biegiem czasu wydobywanie stawało się co raz trudniejsze i potrzebna była do tego co raz to większa moc obliczeniowa. Nawet najlepsze domowe komputery i  oprogramowania przestały być odpowiednio skuteczne. Zaczęto więc produkować procesory specjalnie przystosowane do wydobywania Bitcoinów – charakteryzowały się dużą szybkością i potrzebowały mniej prądu.

W miarę jak rosła popularność Bitcoina, a do sieci przyłączali się kolejni górnicy, rosła trudność zadań, które mogli rozwiązać pojedynczy górnicy. Aby obejść ten problem i nadal skutecznie wydobywać Bitcoiny górnicy zaczęli łączyć się w grupach tzw. POOLach i kopać Bitcoiny razem. Górnicze POOle rozwiązywały zadania szybciej a poszczególni kopacze dzielili się ze sobą wykopaną pulą BTC proporcjonalnie do pracy włożonej w ich wydobycie.

Obecnie procesory do wydobywania Bitcoinów potrzebują gigantycznych mocy obliczeniowych w związku z tym ich ceny sięgają kilku milionów. Są to kwoty, których pojedyncze osoby nie są w stanie opłacić w związku z czym zakładane są kopalnie – czyli tak jakby bardzo duże POOLe w które to inwestują pojedynczy inwestorzy w zamian za proporcjonalną nagrodę.

Dla zobrazowania skali i ilości  sprzętu koniecznego do wybodywania Bitcoinów przedstawiam poniższy filmik, w którym to dwóch inwestorów przedstawia od wewnątrz jak wyglądania kopalnia jednej z firm (proponuję zacząć od 0:45 sek):

Jakie zadanie kryptograficzne trzeba rozwiązywać aby otrzymać Bitcoiny?

Aby wydobyć Bitcoiny górnicy (ang. miners) próbują znaleźć rozwiązanie następującej nierówności:

sha256(sha256(a,x)) < c

gdzie:
x – niewiadoma (której wartość trzeba znaleźć),
a – liczba kodująca całą dotychczasową historię wszystkich transakcji w bitcoinach,
c – pewna liczba specjalnie dobrana i uaktualniana co 2 tygodnie

sha – skót od security hash algorytm

Bardzo duże znaczenie ma fakt, że powyższą funkcję oblicza się szybko, ale jej odwrotność jest praktycznie niemożliwa do obliczenia. 

Oznacza to, że znając liczbę x bez problemu w szybkim tempie jesteśmy w stanie rozwiązać powyższą funkcję i sprawdzić czy nierówność jest spełniona. Natomiast niemożliwe jest obliczenie wartości x znając wartości a,c.

Kiedy mamy zadaną wartości funkcji sha256 jakiegoś skrótu, odnalezienie wiadomości której ten skrót jest wartością jest niemożliwe. Nie ma żadnej metody rozwiązania.  I to jest właśnie cała trudność wydobycia Bitcoina.

Jak więc znaleźć wartość x ?

W związku z tym, że nie odnaleziono żadnej metody na rozwiązanie powyższej nierówności to jedyne co można zrobić aby znaleźć wartość x jest po prostu strzelanie. Jest to rodzaj loterii – wybieram jakąś wartość x i sprawdzam czy funkcja spełnia wartość.

Nierówność ta została specjalnie wybrana aby przez wiele lat nie można było znaleźć rozwiązania poza wyłącznie metodą losową. Górnicy konkurują między sobą o to a osoba bądź kopalnia której rozwiązanie to uda się znaleźć zostanie nagrodzona Bitcoinami. Komputery górników zgadują i sprawdzają miliardy liczb. To wymaga mnóstwo czasu, sprzętu i prądu. Im większy i lepszy jest komputer tym większa jest moc a co za tym idzie większe jest prawdopodobieństwo rozwiązania nierówności. Dlatego własnie łączą się w grupy i zakładają kopalnie.

Ile Bitcoinów górnicy otrzymują w zamian za rozwiązani nierównośći?

Jednym z głównych założeń Bitcoina jest z góry określona całkowita dostępna ilość monet która wynosi 21 000 000. Oznacza to, że w momencie gdy zostanie wydobyta dokładnie taka ilość wykopanie dodatkowych ilości nie będzie możliwe. Łącznie na świecie będzie 21 milionów BTC i ani jednego więcej.

Bitcoin wydobywane są w blokach co 10 minut. Oznacza to, że co 10 minut górnicy trudzą się w celu rozwiązania nierówności i nagradzani są określoną ilością BTC. Ile ta wartość wynosi?

Początkowo było to 50 Bitcoinów co 10 minut. Po 210 000 bloków, co zajęło około 4 lat liczba ta spadła do 25 Bitcoinów. Po kolejnych 210 000 bloków, czyli pod koniec lipca 2016 roku znowu spadła do 12,5 BTC na blok. Proces ten będzie się powtarzał (spadek nagrody o połowę co każde 210 000 bloków czyli co ok. 4 lata) aż do 2140 roku kiedy wydobyte zostanie wspomniane 21 000 000 i przestaną być wytwarzane.

Tak więc nagroda dla górników za znalezienie wartości nierówności jest zmienna w czasie i co 4 lata spada o połowę. W 2020 roku liczba przypadających na 10 minutowy blok będzie wynosić 6,25 BTC.

Podsumowując wydobywanie Bitcoinów polega na znalezieniu wartości przedstawionej nierówności. W związku z tym, że nie ma możliwości znalezienie rozwiązania innym sposobem niż na „chybił trafił” czyni to pozyskanie BTC w procesie minningu bardzo trudne. Konieczne jest stosowanie bardzo drogi i super wydajnych sprzętów komputerowych, które w obecnych czasach produkowane są bezpośrednio w celu wydobywania. Można stwierdzić, że wraz z upływającym czasem trudność ta będzie wzrastać.

Rodzi się jednak pytanie, czy w związku ze spadkiem ilości BTC jako nagrody (co 4 lata) wydobywanie to nadal będzie opłacalne? Koszty sprzętu i prądu już teraz są ogromne a z biegiem czasu konieczna będzie jeszcze więc moc obliczeniowa. Jak sądzisz w przyszłości zakładanie kopalń i wydobywanie Bitcoinów będzie jeszcze opłacalne?

Polecam również inny mój wpis dotyczący Bitcoin: Bitcoin – podstawy