W pierwszej części artykułu na temat tego, czym jest Blockchain opowiedzieliśmy m. in. o genezie systemu oraz pierwszych transakcjach w nim dokonanych. Dzisiaj przedstawiamy drugą część tej publikacji, która powinna dać ostateczną odpowiedź na tytułowe pytanie.

Pamiętacie Karolinę, o której pisaliśmy w naszym pierwszym artykule o Bitcoinach? Przyjmijmy, że chce ona zrobić przelew do swojego dostawcy w Pakistanie. Tradycyjne przelewy bankowe następują w formie rozliczeń bezgotówkowych (nikt nie wymaga, aby Karolina wysyłała do Pakistanu kopertę z pieniędzmi za pośrednictwem swojego banku :-)). Dlatego też zasadniczo transfery pieniędzy sprowadzają się do wymiany między bankami informacji o określonej treści. W przypadku Karoliny jej bank dokona stosownego zapisu w swoich księgach, odzwierciedlając wydatek, który uszczupli stan posiadanych przez nią środków. Podobną operację – tyle, że w odwrotnym kierunku – dokona bank pakistańskiego dostawcy Karoliny, zaznaczając wpływ określonej kwoty na jego konto. W podobny sposób setki instytucji na całym świecie rozliczają nieustannie biliony transakcji dokonywanych przez miliardy osób, zapisując odpowiednio wpływy i wypływy z każdego konta.

Więc… czym jest Blockchain?

Wyobraź sobie teraz, że zamiast setek instytucji finansowych prowadzących między sobą rozliczenia, istnieje jeden gigantyczny plik (np. w formacie Excel), w którym zapisywane są wszystkie transakcje, wszystkich użytkowników sieci, niezależnie od tego czy dotyczą zakupu porannej gazety, kawy, wypłaty, przelewu za prąd, czy nabycia udziałów dużej spółki. A teraz wyobraź sobie jeszcze, że tak stworzona baza jest przechowywana w komputerach każdego chętnego użytkownika. W Twoim komputerze przechowywane są zapisy dotyczące transakcji Twojego sąsiada (tyle, że zapewne nie będziesz o tym wiedział), prezydenta Brazylii, chińskiego rządu i małego włoskiego banku inwestycyjnego. Co więcej, każda transakcja zawiera w sobie wszystkie informacje niezbędne do przeprowadzenia rozliczenia na jej podstawie, jak „numery kont” czy wysokość przesyłanych środków. Tak w bardzo dużym uproszczeniu, wygląda odpowiedź na pytanie, czym jest Blockchain.

Karolina decyduje się przesłać zapłatę swojemu dostawcy w formie Bitcoinów. Wykorzystując swój portfel wpisuje publiczny adres swojego dostawcy i wysokość środków. System informuje ją o wysokości opłaty za przelew i prosi o potwierdzenie. Po zatwierdzeniu transakcji dostawca Karoliny powinien zobaczyć środki na swoim koncie.

Ale jak to wygląda od kuchni?

Nodes, czyli „filie” Blockchain

Ze względu na decentralizację Blockchain (brak centralnego podmiotu kontrolującego wszystkie transakcje) celem sieci jest jak najszybsze rozesłanie informacji na temat każdej transakcji do pozostałych użytkowników. Im więcej użytkowników dysponuje aktualnymi danymi o statusie transakcji, tym bezpieczniejszy jest system. Zniszczenie jednego serwera, a nawet odcięcie od Internetu całego regionu komputerów (np. w Chinach) nie wpływa na system, jeżeli istnieją inne, które mogą go trzymać przy życiu. Celem Blockchain jest więc na początku to, żeby jak najwięcej podmiotów dysponowało najnowszą, aktualną i pełną wersją „Excela” z danymi Blockchain, tj. danymi wszystkich dokonanych transakcji.

Dane na temat każdej transakcji są więc rozsyłane przez użytkowników prowadzących tzw. node. Wyobraź sobie oddział banku, który – otrzymawszy od Ciebie polecenie zapłaty – przesyła jej szczegóły do centrali. Tyle, że w Blockchain nie ma centrali, a oddział prowadzić może każdy użytkownik sieci: Twój kumpel z liceum, studenci z koła naukowego, sprzedawczyni w markecie za rogiem. Każdy z takich „oddziałów” prowadzi swoją bazę transakcji, którą nieustannie porównuje, weryfikuje i aktualizuje z innymi, upewniając się w ten sposób co do jej kompletności. Każdy oddział, który otrzymuje informacje na temat nieznanej mu dotychczas transakcji przesyła jej dane dalej do wszystkich połączonych ze sobą nodes. W ten sposób w krótkim czasie dane na temat każdej transakcji są rozpowszechnione w całym systemie (tzn. są odebrane przez wszystkie jego nodes). W Polsce obecnie jest około 71 nodes, w tym najwięcej w Warszawie, Krakowie i Katowicach:

Źródło: https://bitnodes.earn.com/

Transakcje przesyłane przez nodes nie stają jednak automatycznie częścią Blockchain. Muszą najpierw zostać zatwierdzone.

Kopalnie Bitcoin

Tu pojawiają się kopalnie Bitcoin. Niezatwierdzone transakcje są grupowane. Miner przechwytuje koszyk zawierający kilkaset takich transakcji i zaczyna pracować nad rozwiązaniem generowanego przez system problemu matematycznego. Problem ten jest z natury asymetryczny: jego rozwiązanie jest znacznie trudniejsze, niż zweryfikowanie prawidłowości rozwiązania. Miner musi więc wykazać się dużym wysiłkiem (dużą mocą obliczeniową), aby rozwiązać problem. Sprawdzenie poprawności rozwiązania jest jednak stosunkowo proste. Jeżeli miner prawidłowo rozwiąże problem to transakcje w danym koszyku zostają zatwierdzone, a miner otrzyma nagrodę w postaci świeżo wygenerowanego Bitcoina oraz sumy opłat transakcyjnych w danym koszyku. Transakcje zebrane w koszyku, którego dotyczyło rozwiązanie zostają zatwierdzone i stają się częścią Blockchain. Zostają zapisane na Blockchain w postaci bloku transakcji. Przykładowo, o 9:29 rano w Walentynki 2018 r. zatwierdzony został blok nr 509134, zawierający 1935 transakcji. Za jego zatwierdzenie miner Antpool otrzymał 12.5 BTC:

Źródło: https://blockchain.info/block-height/509134

Łańcuchy transkacji

Co istotne, Blockchain wykorzystuje poprzednie transakcje jako wkład kolejnych. Dla przykładu, jeżeli pakistański dostawca Karoliny chciałby zapłacić swoim pracownikom w Bitcoin, jego „przelew” zawierałby dane na temat przelewu Karoliny od której uprzednio otrzymał zapłatę, którą teraz rozdziela. W ten sposób kolejne transakcje tworzą łańcuch, w którym wynik poprzedzających je transakcji odpowiada wynikowi transakcji następujących. Dzięki temu nie jest możliwe podwójne wydanie tych samych środków.

Jednocześnie, taki zabieg zwiększa bezpieczeństwo całego systemu. Każdy kolejny blok w Blockchain jest powiązany z poprzednim blokiem. Dlatego zmiana transakcji w bloku nr 3 spowodowałaby konieczność nadpisania zmiany wszystkich bloków, które po nim nastąpiły. Próba manipulacji daną transakcją wymaga więc nie tylko ingerencji w jej treść, ale także w treść późniejszych bloków.

Gdyby więc Laszlo Hanyecz próbował „anulować” swoją zapłatę 10 000 BTC za dwie pizze w 2010 roku, musiałby zmienić wszystkie bloki transakcji, które nastąpiły po niej i które w związku z tym są częścią łańcuchu późniejszych bloków. Transakcja Hanyecza była zatwierdzana za każdym razem, gdy zatwierdzony został blok transakcji następujący po niej. Na dzień 15 lutego 2018 r. było to 452 284 razy. Jej odwrócenie jest więc praktycznie niemożliwe. Z tego względu im więcej bloków tym bezpieczniejszy system. Im więcej transakcji nastąpi po tym, gdy Karolina prześle wynagrodzenie swojemu dostawcy – tym jej przelew będzie bezpieczniejszy i trudniej będzie go „anulować”.

To jak to wygląda w przypadku Karoliny?

W celu dokonania płatności Karolina precyzuje kwotę Bitcoinów stanowiącą płatność za dostawę oraz adres publiczny swojego dostawcy. Następnie autoryzuje transakcję swoim adresem prywatnym. Transakcja zostaje przechwycona przez kolejne nodes i rozpropagowana wewnątrz sieci. Karolina musi jednak czekać, aż transakcja zostanie zatwierdzona i stanie się częścią Blockchain. Wkrótce transakcja trafia do koszyka, który zostaje przechwycony przez minera. Jeżeli ten skutecznie rozwiąże problem – transakcje w koszyku zostaną zatwierdzone i staną się częścią Bitcoin Blockchain.

Czym jest Blockchain – podsumowanie

Próba sprowadzenia Blockchain do jednego rozwiązania jest skazana na niepowodzenie. Piękno tej technologii polega raczej na wykorzystaniu rozmaitych wynalazków kryptografii, matematyki i informatyki, które w połączeniu z teorią gier i zdrowym rozsądkiem, tworzą samoregulujący się system. Umożliwia on nieustanne rozliczanie środków pieniężnych przez 7 dni w tygodniu, 24 h na dobę.

Dzięki decentralizacji danych Blockchain jest odporny na większość ataków z zewnątrz i próby manipulacji treścią rozliczeń. Dzięki wymyśleniu miningu, Blockchain sam wynagradza podmioty weryfikujące każdą transakcję i w ten sposób czuwające nad bezpieczeństwem systemu. Dzięki powiązaniu kolejnych transakcji w łańcuch bloków, Blockchain uniemożliwia podwójne wydatkowanie i anulowanie transakcji. To wszystko bez potrzeby opierania się na zaufaniu jakiegokolwiek podmiotu. Karolina otrzymuje do rąk nowe narzędzie, które umożliwia jej przesłanie środków pieniężnych swojemu dostawcy w Pakistanie „z ręki do ręki”, tj. bez konieczności angażowania pośrednika w postaci cieszącej się zaufaniem społecznym instytucji finansowej.

***

Photo by Jefferson Santos on Unsplash