Raspberry Pi nie ma dużej mocy obliczeniowej i samo w sobie nie będzie dobrym komputerem do wydobywania bitcoinów ani innych kryptowalut. Natomiast pobiera mało mocy, jest niewielkie i niedrogie, dlatego może stanowić świetny kontroler niektórych koparek bitcoinów. Ponadto popularność tego komputera sprawiła, że Raspberry Pi można znaleźć w wielu domach, czasem zupełnie niewykorzystane, stąd stanowi użyteczny przykład implementacji koparki bitcoinów.
Jak funkcjonuje Bitcoin?
We wstępie wypada wyjaśnić, jak funkcjonuje Bitcoin, gdyż o ile wiele osób orientuje się, że jest to kryptowaluta, którą można przelewać z konta na konto i wymieniać w kantorach internetowych na waluty narodowe, ale mało kto zna technikalia z tym związane, a nawet często można spotkać się z błędnymi informacjami na temat sposobu działania Bitcoina.
Bitcoin to tak naprawdę protokół kryptograficzny, który został opracowany tak, by mógł pełnić rolę waluty internetowej. Do podstawowych założeń Bitcoina należało zapewnienie by:
- Nie był to pieniądz fiducjarny, który można by było „drukować” w nieskończoność.
- Użytkownicy mogli sobie swobodnie przesyłać określone ilości waluty.
- Stan kont poszczególnych użytkowników nie był kontrolowany przez żadną pojedynczą jednostkę, tylko by był kontrolowany wspólnie, elektronicznie, przez społeczność użytkowników.
Wszystkie powyższe cechy zapewnia opracowany algorytm. Użytkownicy tworzą swoje konta samodzielnie (z użyciem odpowiedniego programu), poprzez generację pary w postaci klucza prywatnego i klucza publicznego. Klucze te służą do podpisywania i sprawdzania zleceń transakcji oraz stanowią numery kont (klucz publiczny). Na początku nowe konto jest puste i można na nie jedynie przyjmować przelewy, a więc tak samo jak w zwykłym banku. Jeśli ktoś, kto posiada na swoim koncie bitcoiny zechce przesłać na nowe konto pewną kwotę, zgłasza informację o takiej transakcji, podpisując ją odpowiednio swoimi kluczami. Zgłoszenie trafia do puli transakcji, które czekają na zatwierdzenie. Pula ta jest publicznie dostępna – wszystkie wykonane transakcje są jawne dla dowolnego użytkownika Internetu. W efekcie da się prześledzić przepływy bitcoinów pomiędzy kontami, choć to, do kogo należą dane konta nie jest jawne – nie ma to znaczenia dla poprawności działania algorytmu.
Znaczenie ma natomiast zatwierdzanie transakcji. Samo zgłoszenie transakcji społeczności nie oznacza jeszcze, że jest ona poprawna i faktycznie została wykonana. Trzeba m.in. sprawdzić, czy na danym koncie znajduje się określona liczba bitcoinów i czy zgłoszona transakcja nie kłóci się w żaden sposób z innymi zgłoszonymi. Sprawdzenie to wykonywane jest przez społeczność, która pobiera transakcje pogrupowane w bloki. Sprawdzaniem zajmuje się bardzo wiele osób jednocześnie, z użyciem wielu komputerów. Aby uniknąć oszustw na tym etapie, pomyślne sprawdzenie bloku transakcji wymaga dodatkowo rozwiązania pewnej złożonej obliczeniowo zagadki. Czas rozwiązania zagadki zależy od posiadanej mocy obliczeniowej oraz od szczęścia, w efekcie czego pierwszymi, którzy rozwiążą zagadki dla kolejnych bloków transakcji są różne osoby (grupy osób). To właśnie ta osoba, która jako pierwsza znajdzie i zgłosi rozwiązanie tworzy nowy punkt odniesienia dla kolejnych bloków transakcji. Dlaczego jednak ktoś w ogóle miałby poświęcać moc obliczeniową swoich komputerów, by wykonywać takie obliczenia? Powodem jest nagroda w postaci nowych bitcoinów, które powstają wraz z każdym zatwierdzonym blokiem transakcji i trafiają na konto znalazcy rozwiązania zagadki. Dlatego właśnie zatwierdzanie transakcji jest nazywane jednocześnie kopaniem – wydobywa się nowe zasoby waluty, którymi następnie można swobodnie dysponować. W ten właśnie sposób powstały wszystkie bitcoiny będące w obiegu.
Tu warto jeszcze wspomnieć o ograniczeniu łącznej liczby bitcoinów. Wielkość nagrody jest bowiem z góry ograniczona i zmienia się zgodnie z określonym planem. Początkowo każdemu nowemu, zatwierdzonemu blokowi transakcji towarzyszyło wygenerowanie 50 bitcoinów. Z czasem liczba ta jest zmniejszana o połowę. Algorytm mówi bowiem, że suma bitcoinów przelewanych na konta w bloku transakcji nie może być większa niż powiększona o X suma bitcoinów na kontach, z których wykonywane są transakcje zgłoszone w danym bloku. X natomiast jest zależne od liczby dotąd zatwierdzonych bloków transakcji. Początkowo X wynosiło 50 BTC, obecnie wynosi 25 BTC, szacuje się, że za kilka miesięcy liczba bloków wzrośnie do poziomu, w którym X zmniejszy się do 12,5 BTC, a z czasem X spadnie praktycznie do zera (poniżej 10-8 BTC). Rekompensatą dla malejącego „wydobycia” bitcoinów są prowizje, tj. reszty z przelewanych kwot. Jeśli jeden użytkownik, mając na swoim koncie 1,01 BTC chce przelać na inne konto 1 BTC i nie wskaże żadnego dodatkowego konta, na które miałaby trafić reszta z tej transakcji, zgodnie z wcześniej podaną zasadą, osoba która rozwiąże zagadkę zatwierdzania danego bloku transakcji może podać swoje konto, na które trafi ta reszta wraz z nowowydobytymi X bitcoinami.