Co to jest blockchain?

Krótko mówiąc, blockchain to lista rekordów danych, która działa jak zdecentralizowana księga cyfrowa. Dane są zorganizowane w bloki, które są ułożone chronologicznie i zabezpieczone kryptografią.

Najwcześniejszy model łańcucha bloków powstał na początku lat 90. XX wieku, kiedy informatyk Stuart Haber i fizyk W. Scott Stornetta zastosowali techniki kryptograficzne w łańcuchu bloków, aby zabezpieczyć dokumenty cyfrowe przed manipulacją danymi.

Praca Habera i Stornetty z pewnością zainspirowała pracę wielu innych informatyków i entuzjastów kryptografii – co ostatecznie doprowadziło do powstania Bitcoina jako pierwszego zdecentralizowanego elektronicznego systemu gotówkowego (lub po prostu pierwszej kryptowaluty).

Choć technologia blockchain jest starsza od kryptowalut, dopiero po stworzeniu Bitcoina w 2008 roku zaczęto dostrzegać jej potencjał. Od tego czasu zainteresowanie technologią blockchain stopniowo rośnie, a kryptowaluty cieszą się obecnie coraz większym uznaniem.

Technologia Blockchain jest najczęściej wykorzystywana do rejestrowania transakcji kryptowalutowych, ale pasuje do wielu innych rodzajów danych cyfrowych i może być stosowana w szerokim zakresie przypadków użycia. Najstarszą, najbezpieczniejszą i największą siecią blockchain jest Bitcoin, który został zaprojektowany ze starannym i zrównoważonym połączeniem kryptografii i teorii gier.


Jak działa blockchain?

W kontekście kryptowalut blockchain składa się ze stabilnego łańcucha bloków, z których każdy przechowuje listę wcześniej potwierdzonych transakcji. Ponieważ sieć blockchain jest obsługiwana przez niezliczoną ilość komputerów rozsianych po całym świecie, funkcjonuje ona jako zdecentralizowana baza danych (lub księga). Oznacza to, że każdy uczestnik (węzeł) utrzymuje kopię danych łańcucha bloków i komunikuje się ze sobą, aby mieć pewność, że wszyscy znajdują się na tej samej stronie (lub bloku).

Dlatego transakcje blockchain odbywają się w globalnej sieci peer-to-peer i to właśnie sprawia, że ​​Bitcoin jest zdecentralizowaną walutą cyfrową, która nie ma granic i jest odporna na cenzurę. Ponadto większość systemów blockchain uważa się za systemy pozbawione zaufania, ponieważ nie wymagają żadnego rodzaju zaufania. Nie ma jednego organu kontrolującego Bitcoin.

Centralną częścią prawie każdego łańcucha bloków jest proces wydobywania, który opiera się na algorytmach mieszających. Bitcoin wykorzystuje algorytm SHA-256 (bezpieczny algorytm skrótu 256 bitów). Pobiera dane wejściowe o dowolnej długości i generuje dane wyjściowe, które zawsze będą miały tę samą długość. Wygenerowany wynik nazywany jest „hashem” i w tym przypadku zawsze składa się z 64 znaków (256 bitów).

Zatem te same dane wejściowe dadzą taki sam wynik, niezależnie od tego, ile razy proces zostanie powtórzony. Ale jeśli dokonana zostanie niewielka zmiana na wejściu, wyjście zmieni się całkowicie. W związku z tym funkcje skrótu są deterministyczne, a w świecie kryptowalut większość z nich zaprojektowano jako jednokierunkową funkcję skrótu.

Bycie funkcją jednokierunkową oznacza, że ​​prawie niemożliwe jest obliczenie, co było wejściem i wyjściem. Można się tylko domyślać, jakie były dane wejściowe, ale szanse na prawidłowe odgadnięcie są niezwykle niskie. Jest to jeden z powodów, dla których blockchain Bitcoina jest bezpieczny.

Teraz, gdy wiemy, co robi algorytm, zademonstrujmy, jak działa blockchain na prostym przykładzie transakcji.

Wyobraź sobie, że mamy Alicję i Boba wraz z ich saldem Bitcoin. Załóżmy, że Alicja jest winna Bobowi 2 Bitcoiny.

Aby Alicja mogła wysłać Bobowi te 2 bitcoiny, Alice wysyła wiadomość z transakcją, którą chce przeprowadzić, do wszystkich górników w sieci.

W tej transakcji Alicja podaje górnikom adres Boba i ilość Bitcoinów, które chciałaby wysłać, wraz z podpisem cyfrowym i swoim kluczem publicznym. Podpis jest składany przy użyciu klucza prywatnego Alicji, a górnicy mogą potwierdzić, że Alicja w rzeczywistości jest właścicielem tych monet.

Gdy górnicy będą pewni, że transakcja jest ważna, mogą umieścić ją w bloku wraz z wieloma innymi transakcjami i podjąć próbę wydobycia bloku. Odbywa się to poprzez poddanie bloku algorytmowi SHA-256. Dane wyjściowe muszą zaczynać się od określonej liczby zer, aby można je było uznać za prawidłowe. Ilość potrzebnych zer zależy od tzw. „trudności”, która zmienia się w zależności od mocy obliczeniowej dostępnej w sieci.

Aby wygenerować wyjściowy skrót zawierający na początku żądaną liczbę zer, górnicy dodają do bloku tak zwaną „nonce” przed uruchomieniem go przez algorytm. Ponieważ niewielka zmiana na wejściu całkowicie zmienia wynik, górnicy próbują losowych wartości jednorazowych, dopóki nie znajdą prawidłowego skrótu wyjściowego.

Po wydobyciu bloku górnik transmituje nowo wydobyty blok do wszystkich pozostałych górników. Następnie sprawdzają, czy blok jest ważny, aby móc dodać go do swojej kopii łańcucha bloków i transakcja została zakończona. Ale w bloku górnicy muszą również uwzględnić wyjściowy skrót z poprzedniego bloku, aby wszystkie bloki były ze sobą powiązane, stąd nazwa blockchain. Jest to ważna część ze względu na sposób, w jaki zaufanie działa w systemie.

Każdy górnik ma własną kopię łańcucha bloków na swoim komputerze i każdy ufa temu łańcuchowi bloków, który wymaga najwięcej pracy obliczeniowej, czyli najdłuższemu łańcuchowi bloków. Jeśli górnik zmieni transakcję w poprzednim bloku, wyjściowy skrót dla tego bloku ulegnie zmianie, co prowadzi do zmiany wszystkich skrótów po nim, ponieważ bloki są lubiane przez skróty. Górnik musiałby wykonać całą pracę od nowa, aby ktokolwiek zaakceptował jego blockchain jako właściwy. Gdyby więc górnik chciał oszukiwać, potrzebowałby ponad 50% mocy obliczeniowej sieci, co jest mało prawdopodobne. Takie ataki sieciowe nazywane są zatem atakami 51%.

Model zmuszania komputerów do pracy w celu produkcji bloków nazywa się Proof-of-Work (PoW). Istnieją również inne modele, takie jak Proof-of-Stake (PoS), które nie wymagają tak dużej mocy obliczeniowej i mają zużywać mniej energii elektrycznej jednocześnie umożliwiając skalowanie do większej liczby użytkowników.