Bitcoin – waluta przyszłości. Bitcoin – pieniądze wolnych ludzi. Bitcoin – pieniądze, których żaden rząd, żadna władza nie kontroluje. Tego typu slogany szybko poznaje każdy zainteresowany nowym zagadnieniem, jakim jest Bitcoin. Na tym etapie wszystko wygląda pięknie, aczkolwiek coraz bardziej podejrzanie. No bo jak to tak – bez nadzoru? Kto dba o powstawanie nowych bitmonet? W tym momencie wkracza pojęcie miningu, tajemniczego procesu pochłaniającego niewyobrażalną wręcz moc obliczeniową; a stąd już niedaleko do różnorakich teorii spiskowych – bo jak moc obliczeniowa, to łamanie haseł, zabezpieczeń kryptograficznych. Co ciekawe, szybki rozwój sieci Bitcoin zbiegł się w czasie z wybitnie nasilonymi atakami grup LulzSec i Anonymous. Oczywiście pojawiły się „wielce fachowe” opinie, że swoje osiągnięcia zawdzięczają właśnie mocy komputerów biorących udział w miningu – gówno prawda.
Czym jest mining?
Funkcjonowanie Bitcoina opiera się na blokach, zawierających zapis (i tym samym potwierdzenie) transakcji przeprowadzonych w sieci. Mining jest procesem ich generowania. Rzecz w tym, że każdy nowy blok musi spełniać pewne wyszukane kryteria, co kosmicznie utrudnia ich tworzenie. W związku z tym, znalazca bloku może przypisać sobie nagrodę, wynoszącą obecnie (sierpień 2011) 50 BTC oraz prowizje od transakcji w nim zawartych. Z czasem nagroda będzie się zmniejszać, więc większego znaczenia nabiorą prowizje.
Skąd się bierze wspomniane 50 BTC? Dosłownie znikąd. Sieć pozwala twórcy bloku na przypisanie sobie tej kwoty bez pobierania ich z innego konta – jest to nagroda za trud włożony w jej rozwój i zabezpieczanie. Trud na tyle duży, że mining za pomocą zwykłych procesorów już dawno przestał mieć sens, zostały one wyparte przez znacznie wydajniejsze układy GPGPU, czyli po prostu nowoczesne karty graficzne.
Co tak właściwie oblicza karta?
Szuka takiej wartości, która po zhashowaniu z resztą nagłówka bloku da wynik spełniający pewne założenia (hash mniejszy od ustalonej wartości – target), co – statystycznie rzecz ujmując – wymaga bardzo wielu prób i jest dowodem wykonania pewnej pracy (proof of work), którą można w sposób trywialny sprawdzić. W ten sposób sieć chroni się przed fałszywymi blokami z fałszywymi transakcjami oraz zwiększa trudność zadania jakim byłoby wstawienie alternatywnego, fałszywego łańcucha. Natomiast algorytm ich szukania zbudowany jest w sposób skutecznie uniemożliwiający przeprowadzanie „przy okazji” obliczeń mających jakiekolwiek inne zastosowanie.
Porównaniem obrazującym mechanizm miningu może być poszukiwanie stalowej kulki (odpowiedniej wartości) ukrytej w świeżo przekopanej ziemi. Można na nią trafić wraz z pierwszą przesianą porcją gruntu (pierwszą sprawdzoną wartością), jednak statystycznie kulka znajdowana jest po przesianiu określonej części gruntu (sprawdzeniu określonej liczby wartości). Kulki szukać może każdy, niestety pole jest na tyle duże (trudność na tyle wysoka), że realne szanse mają tylko ludzie dysponujący odpowiednimi maszynami, pozwalającymi na szybkie przesiewanie gruntu (odpowiednio wysoką mocą obliczeniową). W takich warunkach sam fakt odnalezienia kulki (wartości) jest dowodem wykonanej pracy, za co należy się nagroda. Natomiast ochroną przed oszustami bezpodstawnie twierdzącymi, że kulkę znaleźli, jest proste: „pokaż tę kulkę, sprawdzimy czy naprawdę ją masz”.
Tyle z mojej strony, przedstawiłem zagadnienie od strony praktycznej. Żądnych szczegółów technicznych odsyłam do Bitcoin wiki, zwłaszcza wpisu „Block hashing algorithm”.
Znalazłeś błąd, nieścisłość, masz jakieś wątpliwości odnośnie wpisu? Napisz komentarz.
Wpis Ci się spodobał, przydał? Masz ochotę mnie za niego nagrodzić?
BTC: 1CrJDyax3vQBzqxJ3Synd644wttohAz6Zh
