3 marca 2021

Na czym polega Bitcoin… czyli jak wyglądałby π-coin

Biorąc pod uwagę bardzo duże zainteresowanie tematem kryptowalut na przestrzeni ostatnich kilku lat, mogłoby się wydawać, że ich działanie będzie w pełni jasne dla obserwatorów rynku. W praktyce okazuje się, że sprawa wcale nie jest taka prosta. Dynamika zachowań kryptowalut jako dóbr inwestycyjnych jest dla nas raczej intuicyjna, lecz technikalia informatyczne już niekoniecznie.

Twórcy blogów technologicznych bardzo chętnie podejmują tę tematykę i z dużą szczegółowością opisują wszelkie detale konstrukcyjne stojące za funkcjonowaniem sieci Bitcoin. Często słyszę jednak stwierdzenie, że są to opisy całkowicie nieintuicyjne, budzące jedynie zniechęcenie do dalszego zgłębiania tej tematyki.

Dzisiaj chciałbym wam zaprezentować π-coiny: konstrukt zbliżony w jak największym stopniu do mechaniki działania Bitcoina, lecz maksymalnie uproszczony na potrzeby prostszego przyswojenia zasady działania kryptowalut. Jeżeli zrozumiesz π-coina, wówczas temat stanie się dużo klarowniejszy. Serdecznie zapraszam do lektury.

bitcoin

Czy bitcoin zastąpi zwykłe pieniądze?

Jak wykopać π-coina?

Skoro tworzymy sieć, która w założeniu ma być niezależna od jakiegokolwiek banku, powinniśmy więc wykorzystać mechanizm, który będzie możliwy do obsłużenia przez dowolną osobę w dowolnym zakątku świata. Musi to być pewien rodzaj społecznej umowy, w ramach którego przyjmiemy założenie, że jeżeli dowolny z uczestników sieci spełni wcześniej ustalony warunek, system przydzieli mu jednostkę kryptowaluty.

W przypadku Bitcoina czytamy, że taka moneta zostanie przydzielona górnikowi na skutek rozwiązania problemu kryptograficznego dla poszczególnego bloku, po czym jest to rozgłaszane na węźle, a następnie… No nie oszukujmy się, nikt tego by nie zrozumiał. Jestem wręcz gotowy zaryzykować stwierdzenie, że waluta o tak skomplikowanej mechanice w życiu nie osiągnęłaby żadnego sukcesu 😉

Zamiast tego skonstruujmy coś, co rzeczywiście chwyci. Coś prostego. Na przykład wykorzystajmy w tym wszystkim liczbę π – każdy ją zna, wie że w zaokrągleniu wynosi 3,14. No i umowa. Umówmy się, że π-coina otrzyma osoba, która odnajdzie wartość liczby π do określonej liczby miejsc po przecinku.

Pierwszego π-coina w sieci wykopie więc osoba, która rozgłosi i potwierdzi wartość liczby π w zaokrągleniu do jednego miejsca po przecinku. Po tym jak uda się jej taką operację wykonać z sukcesem, niech wyśle do sieci informację, że liczba ta wynosi tyle a tyle. I każdy kolejny π-coin niech będzie wykopywany wraz ze znalezieniem kolejnych zaokrągleń liczby π.

Czyli: jeżeli konkretna dokładność została przez kogoś odkryta i ogłoszona, nikt inny nie może otrzymać π-coina za odnalezienie tej samej. Żeby wykopać kolejną monetę, należy liczyć dalej. Pierwsze miliardy miejsc po przecinku wyliczone zostaną bardzo szybko, lecz wraz z rozwojem kryptowaluty, liczenie coraz większych dokładności będzie coraz bardziej zasobożerne, więc sieć ustabilizuje się.

bitcoin

Mechanizm działania bitcoina można wykorzystać do wykopania π-coina.

Jak potwierdzić, że konkretna osoba wykopała π-coina?

Kluczowe z punktu widzenia sieci będzie stworzenie odpowiedniego systemu autozarządzającego walutą. Nawet jeżeli jesteśmy twórcami projektu kryptowaluty, nie przypada nam żadne prawo do tego aby ingerować w działanie sieci. Skoro tak doniosłe instytucje jak banki centralne nie budzą pełnego zaufania społecznego, z pewnością nikt rozsądny nie zaufałby podrzędnemu programiście w subiektywnych decyzjach walutowych. System musi być samokontrolujący i samonapędzający się.

Jeżeli kojarzysz mechanikę działania protokołu BitTorrent, znasz już bardzo dobre skojarzenie, które wykorzystam dla zobrazowania zjawiska. Ale od początku: weźmy pod analizę prozaiczną czynność, jaką jest pobieranie plików z sieci. W klasycznej konwencji pobierając jakiś materiał, łączymy się z czyimś centralnym serwerem, na którym jest on przechowywany. Zasadniczo oznacza to, że pojedynczy serwer musi być w stanie obsłużyć żądania milionów użytkowników. To trochę jak z polityką fiskalną oraz bankami centralnymi, które samodzielnie podejmują decyzje dotyczące pieniądza. Decyzja o tym, czy pobierający może pobrać plik, podejmowana jest przez serwer główny.

Można jednak rozwiązać to inaczej. Protokół BitTorrent umożliwił decentralizację pobierania plików. Rzeczywiście, pierwsze pobranie musi się odbyć z ramienia głównej osoby dystrybuującej treść, jednakże po zdobyciu jej przez dowolnego pobierającego, pojawia się szansa odciążenia serwera bazowego. W sieci .torrent kolejne osoby pobierające plik nie będą pobierały go tylko z serwera, lecz również od osób, które pobrały już plik wcześniej. W tej konwencji dowolny uczestnik ruchu sieciowego może rozsyłać materiał.

Jeżeli serwer główny padnie, nic się nie stanie, ponieważ ciężar odpowiedzialności rozproszył się między uczestników sieci. Tak długo jak chociażby jeden z uczestników sieci przechowuje rozsyłane pliki na dysku i decyduje się udostępniać je innym użytkownikom, pobieranie będzie możliwe. To tak jakby bank centralny ogłosił koniec złotówki i powrót do barteru, lecz mieszkańcy kraju już dawno przejęli odpowiedzialność za jej emisję oraz kontrolę. Sytuacja jest oczywiście czysto hipotetyczna, dlatego wykorzystaj ją jedynie jako formę analogii.

Wróćmy do meritum. Tworzonego przez nas π-coina nie będzie kontrolować ani serwer centralny, ani żaden (nawet najlepszy) programista. Staną za nim dwa ogniwa: uniwersalnie poprawne algorytmy matematyczne oraz rozproszona sieć komputerowa nieograniczonych rozmiarów. Im więcej stacji roboczych będzie uczestnikami sieci, tym bardziej jakakolwiek próba przekłamania obliczeń będzie utrudniona. Każda decyzja musi być bowiem potwierdzona przez bardzo dużą liczbę osób na całym świecie. Ku chwale decentralizacji!

Przykładowo: ogłaszam w sieci, że odnalazłem liczbę π w zaokrągleniu do kwintyliona miejsc po przecinku. Wówczas na całym świecie (w obrębie tych wszystkich komputerów będącymi uczestnikami sieci) zaczyna się wrzawa: czy zaokrąglenie jest poprawne? Uniwersalnie poprawny (bo matematyka nie kłamie) algorytm sprawdzający uruchomiony przez miliony użytkowników potwierdza wynik. Miliony użytkowników rozsyłają więc po sieci potwierdzenie poprawności, po czym system oficjalnie przydziela π-coina do mojego portfela. Żeby wykopać kolejnego, następny górnik musi odnaleźć liczbę π do kwintyliona miejsc po przecinku + jeden.

A kto zadba o transmisję pieniędzy?

Po zrozumieniu powyższych mechanik, odpowiedź na to pytanie jest właściwie dosyć prosta. Klasycznie zajmują się nią banki komercyjne w zamian za ewentualne prowizje i opłaty za prowadzenie konta. W π-coinie nie ma systemu bankowego, zajmą się tym więc uczestnicy sieci. W zamian za prowizję transakcyjną, uczestnicy chętnie udzielą nieco swojej mocy obliczeniowej, aby rozgłosić wykonanie przelewu. Dochodzimy tym samym do kolejnej istotnej kwestii: zasilania sieci.

Aby system działał nieprzerwanie, zaś transakcje dochodziły regularnie, zawsze muszą być osoby, które będą udostępniały moc obliczeniową na poczet obsługi transakcji oraz dokonywania potwierdzeń wydobycia kolejnych π-coinów. Sieć nie bierze się z powietrza. Im więcej osób zdecyduje się aktywnie uczestniczyć i wspierać sieć π-coin swoją mocą obliczeniową, tym niższe będą te prowizje i szybsze czasy dotarcia przelewów. Tak długo jak istnieje zapotrzebowanie na walutę, będą jednostki zainteresowane uczestnictwem w sieci. To takie proste.

bitcoin

Moc obliczeniowa wydobywania nowych π-coinów usprawnia transakcje.

Bitcoin a π-coin

Mechanika kryptowaluty oparta na obliczaniu liczby π byłaby oczywiście niewystarczająca, aby stworzyć skutecznie działający system obsługiwany przez dziesiątki milionów ludzi na całym świecie. Dlatego właśnie górnicy Bitcoina nie liczą liczby π, lecz rozwiązują te enigmatycznie ujęte problemy kryptograficzne. Oprócz tego im więcej Bitcoinów jest już wykopanych, tym trudniejsze jest wydobycie kolejnych. Identycznie jak z liczbą π i kolejnymi rzędami zaokrągleń. Czasem wykonania problemu steruje system niezależny od dowolnej instytucji państwowej: matematyka.

Wysyłanie Bitcoinów obsługiwane jest przez użytkowników sieci i sprawdza się wyprowadzona wcześniej w artykule zasada: im więcej użytkowników wspiera sieć, tym szybciej to wszystko działa. Tak jak klasyczny przelew potrzebuje najczęściej minimum dnia roboczego na dotarcie do odbiorcy, Bitcoiny najczęściej trafiają do adresata w mniej niż jedną godzinę. Nadawca przelewu sam decyduje o wysokości prowizji, którą zapłaci. Wysokość tej prowizji determinuje czas wykonania transferu.

A pod maską całego projektu stoi otwartoźródłowe oprogramowanie, którego kod możesz przejrzeć nawet i Ty. Dzięki temu, że każdy może podejrzeć zarówno obecny zarys projektu jak i wprowadzane w nim zmiany, jest on całkowicie transparentny. Stanowi to ostateczne potwierdzenie bezpieczeństwa Bitcoina oraz uwidacznia: o przydzieleniu wykopanych monet, o wysokości płaconych prowizji nie decyduje żadna konkretna osoba. Decyduje o tym tylko i wyłącznie algorytm, zaś sercem tego algorytmu: matematyka.

Między innymi z tego powodu tak często podkreślamy, jak ważna jest matematyka w nauce informatyki oraz programowania 😉

Artykuł który przeczytałeś jest zaledwie zalążkiem wiedzy z tematu. Informatyka jest niezwykle szeroką dziedziną i ma znaczący wpływ na rzeczywistość wokół nas. Serdecznie zachęcam aby rozwijać własną świadomość technologiczną. Nie wiadomo bowiem, jaką kolejną sferę życia zrewolucjonizuje technologia. A nuż taka rewolucja okaże się być częścią naszej codzienności?

Najnowsze wpisy

Jak pomóc dziecku w nauce programowania? Poradnik dla rodziców

Przeczytaj >>

Dlaczego warto uczyć dzieci programowania? – jakie umiejętności rozwija programowanie?

Przeczytaj >>

Python a C++

Przeczytaj >>

Algorytm Euklidesa w języku Python

Przeczytaj >>

10 podstawowych funkcji Excela, które trzeba znać

Przeczytaj >>

JESTEŚ AMBITNY?

Dołącz do nas jeszcze dziś i rozwijaj się w swojej ulubionej dziedzinie we współpracy z nauczycielami, którzy są autorami artykułów na naszym blogu!
POZNAJ OFERTĘ KUSÓW
© Ambitni Szkoła Informatyki 011111100101(2) | jesteś niemal gotowy!
crossmenu