Czym właściwie jest blockchain?

Czym właściwie jest blockchain?

Blockchain jest technologią, która pozwala zarządzać kapitałem, księgować transakcje, płatności, a wszystko to z wykorzystaniem algorytmów kryptograficznych, co sprawia, iż technologię tę można ująć jako rozproszony rejestr transakcji.


Technologia blockchain – mówiąc wprost – jest technologią rozproszonych baz danych, licencjonowaną najczęściej jako otwarte oprogramowanie (open source), która nie posiada scentralizowanego miejsca przechowywania danych. Blockchain jest technologią, która pozwala zarządzać kapitałem, księgować transakcje, płatności, a wszystko to z wykorzystaniem algorytmów kryptograficznych, co sprawia, iż technologię łańcucha bloków można ująć jako rozproszony rejestr transakcji oparty na rozproszonej infrastrukturze sieciowej. Pojawił się tu termin łańcuch bloków, który z pewnością może być na początku niezrozumiały.

Bloki

Blok jest określeniem bloku danych, który zawiera określoną liczbę zapisów z transakcjami, którego rozmiar jest ściśle określony w zależności od implementacji. Maksymalnym rozmiarem bloku, w przypadku Bitcoina, może być blok o rozmiarze 1 MB – wynika to ze specyfikacji protokołu Bitcoin. Zapis transakcji jest hashowany oraz kodowany w drzewie hash (drzewie skrótów).

Drzewa skrótów (drzewa hashów) zostały po raz pierwszy opracowane w 1979 roku przez Ralpha Merkle, badacza kryptografii oraz znawcy nanotechnologii molekularnej i kroniki. Jest to jeden z rodzajów struktury danych oparty na modelu drzewa ze zbiorczymi informacjami na temat większego fragmentu danych. Drzewa hashów są wykorzystywane w wielu projektach, np. rozproszonych systemach kontroli wersji, rozproszonych systemach plików czy też w kryptowalucie Bitcoin.

Każdy z bloków zawiera kryptograficzną funkcję skrótu (tj. funkcje będące bezpiecznymi do zastosowań kryptograficznych) w łańcuchu bloków, łączącą obydwa bloki. Połączone bloki tworzą łańcuch. Dzięki temu iteracyjnemu (powtarzalnemu) procesowi możliwe jest potwierdzenie integralności poprzedniego bloku. Czasami możliwe jest także tworzenie oddzielnych bloków, aby stworzyć tzw. oddzielny widelec. Każdy blockchain, oprócz bezpiecznej historii transakcji opartej na hashach, ma konkretny algorytm oceniania różnych wersji historii. Wynika z tego, że jedna z tych historii mająca wyższą wartość może być wybrana spośród pozostałych. Te z bloków, które nie zostały wybrane do włączenia do łańcucha nazywane są blokami osieroconymi. Również zdarza się, iż od czasu do czasu równorzędne bazy danych mogą mieć różne wersje historii. Przechowują one wyłącznie znaną im bazę danych, która posiada najwyższą punktację. Za każdym razem, kiedy peer (rówieśnik) otrzymuje wersję o wyższym wyniku, np. poprzez dodanie do starej wersji nowego, pojedynczego bloku, ma miejsce procedura rozszerzenia, bądź zastąpienia własnej bazy danych oraz dalszego przekazania ulepszenia swoim rówieśnikom. Warto tutaj dodać, że nie ma całkowitej gwarancji, iż jakikolwiek konkretny wpis pozostanie w najlepszej wersji historii na zawsze, gdyż łańcuchy bloków są najczęściej budowane w celu dodania partytury nowych bloków na starych blokach. Dodatkowo z powodu istnienia mechanizmu zachęty do pracy w przypadku rozszerzenia o nowe bloki, zamiast nadpisywania tych starych bloków, szansa na zastąpienie wpisu maleje w sposób wykładniczy. Wynika to z faktu, iż kolejne bloki są zbudowane bezpośrednio na nim.

Przykładem może być łańcuch bloków (blockchain) oparty na koncepcji Proof of Work (dowód pracy), który działa na zasadzie: łańcuch z najbardziej sumarycznym dowodem pracy jest uważany przez sieć za prawidłowy. Obecnie istnieje duża liczba metod, które można wykorzystać do zademonstrowania odpowiedniego poziomu obliczeń. W przypadku łańcucha bloków, obliczenia są przeprowadzane w sposób redundantny, tj. nadmiarowy, a nie w posegregowany i równoległy.

Mówiąc o blokach nie sposób pominąć czasu blokady. Jest to średni czas niezbędny do tego, aby doszło do wygenerowania nowego bloku przez sieć w łańcuchu bloków. Istnieją przypadki łańcuchów bloków, które generują nowe bloki bardzo często (co kilka sekund). Do momentu, w którym blok zostanie ukończony, dane będące danymi uwzględnionymi stają się danymi weryfikowalnymi. W przypadku kryptowalut ma to miejsce, kiedy zachodzi transakcja finansowa. Czym to skutkuje? Otóż wynika z tego znacznie większa szybkość transakcji. Czas blokady jest określony w zależności od blockchainów.

Decentralizacja

Ponieważ łańcuch bloków polega na przechowywaniu danych w sieciach peer-to-peer (P2P) oznacza to, iż neutralizuje on dużą liczbę zagrożeń wynikających ze scentralizowanego modelu przechowywania danych. Blockchain może wykorzystywać rozproszoną sieć oraz przekazywanie wiadomości ad-hoc. Zważywszy na fakt, że blockchain działa w sieci P2P, nie posiada centralnych punktów podatnych na ataki, ani też nie istnieje zagrożenie awarii mogącej sparaliżować technologię blokchain.

Polityka zabezpieczeń łańcuchu bloków wykorzystuje kryptografię z kluczem publicznym, który jest długim ciągiem losowych liczb, pełniącym rolę adresu w łańcuchu bloków. Tokeny (żetony) wartości wysyłane przez sieć są rejestrowane jako należące do tego adresu. Metody zabezpieczeń obejmują również klucz prywatny, który można porównać do hasła, gdyż daje on właścicielowi dostęp do zasobów cyfrowych, czy też środków umożliwiających interakcję z różnymi możliwościami wspieranymi przez blockchain.

Decentralizacja eliminuje również problem kontrolowania oraz manipulowania danymi, który występuje w scentralizowanym modelu przechowywania danych. Dzięki decentralizacji danych w publicznie dostępnej księdze, łańcuchy znaków zapewniają przejrzystość danych na poziomie blokowym wszystkim stronom, które są zaangażowane.

Każdy z węzłów w zdecentralizowanym systemie ma kopię łańcucha bloków. Jakość danych jest utrzymywana poprzez masową replikację baz danych oraz tzw. zaufanie obliczeniowe. Ponieważ nie istnieje scentralizowana „oficjalna” kopia żaden użytkownik nie jest traktowany jako zaufany bardziej niż ktokolwiek inny. Same transakcje są przekazywane do sieci z wykorzystaniem odpowiedniego oprogramowania, natomiast węzły wyszukiwania sprawdzają transakcje, dodają je do bloku przez nie budowany, aby w kolejnym kroku przekazać ukończony blok do kolejnych węzłów.

Łańcuchy blokowe wykorzystują różnego rodzaju schematy znakowania czasem, np. Proof of Work, do serializowania zmian. Istnieje też inna metoda, którą jest tzw. dowód stawki (Proof of Stake).

Należy od razu dodać, iż wzrostowi zdecentralizowanego łańcucha bloków towarzyszy ryzyko centralizacji węzłów. Jest to efekt tego, iż zasoby sprzętu potrzebne do przetwarzania większych ilości danych stają się droższe.

Otwartość

Aby zapewnić bardziej przyjazne dla użytkowników łańcuchy blokowe stosuje się tzw. otwarte łańcuchy bloków. Są one bardziej przyjazne od tradycyjnych zapisów własności, ponieważ te, pomimo swojej publicznej otwartości, cały czas wymagają fizycznego dostępu do ich widoku. Zwraca się uwagę na kontrowersje wokół definicji blockchain, które pojawiły się w efekcie tego, iż nie wszystkie wcześniejszej łańcuchy bloków były zaakceptowane. W związku z tym nadal trwają spory o to, czy jako system blokowy można uznać system prywatny, w którym weryfikacja jest zlecona oraz autoryzowana poprzez organ centralny.

Trudno jest nie przyznać racji zwolennikom prywatnych sieci, którzy wskazują na to, że blockchain może być stosowany dla dowolnej struktury danych grupującej dane w blokach czasowo znakowanych. Tego typu łańcuchy bloków znajdują zastosowanie jako np. rozproszona wersja mechanizmu kontroli współbieżności (MVCC) wykorzystywana w bazach danych. MVCC uniemożliwia dwie transakcje, które dotyczą jednoczesnego zmieniania pojedynczego obiektu bazy danych. Podobnie jest w łańcuchach bloków, które uniemożliwiają dwie transakcje jednoczesnego wydawania tego samego wyjścia w blockchainie.

Zalety otwartości

Do zalet otwartej, niewymagającej uprawnień, czy też publicznej sieci łańcuchu bloków, zaliczyć można przede wszystkim brak konieczności zapewnienia ograniczeń w dostępie do sieci, co oznacza brak kontroli dostępu. Dzięki temu różne aplikacje mogą być dodawane do sieci blockchain bez konieczności autoryzacji ze strony innych. W takiej sytuacji łańcuch bloków służy jako warstwa transportowa.

Wiele kryptowalut zabezpiecza swoje łańcuchy bloków wymagając wpisów zawierających dowód pracy. W celu przedłużenia działania łańcucha blokowego, niektóre kryptowaluty korzystają z mechanizmu Hashcash opracowanego w latach 90. przez Adama Backa.

Prywatne sieci łańcuchów blokowych

Istnieją również łańcuchy blokowe, które wykorzystują warstwę kontroli dostępu celem określenia tego, kto może mieć dostęp do sieci, a kto nie. Różnica między prywatnymi sieciami łańcuchów blokowych a otwartymi sieciami jest zauważalna. W prywatnych sieciach blockchain, weryfikatory są sprawdzane przez właściciela sieci, którym może być centralny organ. Nie są one oparte na anonimowych węzłach wykorzystywanych do sprawdzania transakcji, nie korzystają również z efektu sieciowego. Tego typu sieci łańcuchów bloków znajdują zastosowanie w korporacjach oraz rozwiązaniach klasy enterprise.


Chcesz wiedzieć więcej? Polub i obserwuj nas na Facebooku. Jesteśmy także na Twitterze. Zapraszamy na naszą grupę dyskusyjną.

Zapraszamy na nasz profil na Patronite.

WSPIERAJ NIEZALEŻNE DZIENNIKARSTWO