Co to jest blockchain?
Podsumowując, blockchain to lista rekordów danych, która działa jak zdecentralizowana baza danych. Dane są zorganizowane w bloki, uporządkowane chronologicznie i zabezpieczone kryptograficznie.
Pierwsza koncepcja blockchain powstała na początku lat 90. XX wieku, kiedy informatyk Stuart Haber i fizyk W. Scott Stornetta zastosowali techniki kryptograficzne w blockchainie w celu ochrony dokumentów cyfrowych przed manipulacją danymi.
Praca Habera i Stornetty z pewnością zainspirowała wielu innych informatyków i entuzjastów kryptografii, co ostatecznie doprowadziło do stworzenia bitcoina, pierwszego zdecentralizowanego systemu pieniądza elektronicznego (i 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 wzrosło, a kryptowaluty są obecnie rozpoznawane na większą skalę.
Technologia Blockchain jest najczęściej wykorzystywana do rejestrowania transakcji kryptowalutowych, ale nadaje się do wielu innych typó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 przy użyciu zrównoważonego połączenia kryptografii i teorii gier.
Jak działa łańcuch bloków?
W kontekście kryptowalut blockchain składa się z ł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 rozmieszczonych na całym świecie, funkcjonuje ona jako zdecentralizowana baza danych. Oznacza to, że każdy uczestnik (lub węzeł) przechowuje kopię danych łańcucha bloków i komunikuje się ze sobą, aby mieć pewność, że znajdują się na tej samej stronie (lub bloku).
Dlatego transakcje blockchain odbywają się w ramach globalnej sieci peer-to-peer i to właśnie sprawia, że Bitcoin jest zdecentralizowaną, pozbawioną granic i odporną na cenzurę walutą cyfrową. Ponadto większość systemów blockchain uważa się za systemy pozbawione zaufania, ponieważ nie wymagają żadnego zaufania. Nie ma jednego organu kontrolującego bitcoin.
Centralnym elementem prawie wszystkich łańcuchów bloków jest proces wydobycia, który opiera się na algorytmach mieszających. Bitcoin wykorzystuje 256-bitowy algorytm szyfrowania Secure (SHA-256). 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 ma zawsze 64 znaki (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 danych wejściowych z wyników. Można się tylko domyślać, jaki był wpis, ale szanse na prawidłowe odgadnięcie są niezwykle niskie. Jest to jeden z powodów, dla których blockchain Bitcoin jest bezpieczny.
Teraz, gdy wiemy, co robi algorytm, pokażmy, jak działa blockchain na prostej przykładowej transakcji.
Wyobraź sobie, że Alicja i Bob mają saldo bitcoinów. Załóżmy, że Alicja jest winna Bobowi 2 bitcoiny.
Aby Alicja mogła wysłać Bobowi te 2 bitcoiny, wysyła wiadomość zawierającą 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 chce wysłać, wraz z podpisem cyfrowym i swoim kluczem publicznym. Podpis jest wykonywany przy użyciu klucza prywatnego Alicji, a górnicy mogą potwierdzić, że Alicja jest właścicielem tych bitcoinów.
Gdy górnicy będą pewni, że transakcja jest ważna, mogą umieścić ją w bloku z wieloma innymi transakcjami i podjąć próbę wydobycia bloku. W tym celu blok poddawany jest algorytmowi SHA-256. Dane wyjściowe muszą zaczynać się od określonej liczby zer, aby można je było uznać za prawidłowe. Niezbędna ilość zer zależy od tzw. „trudności”, która zmienia się w zależności od mocy obliczeniowej sieci.
Aby wygenerować wyjściowy skrót zawierający na początku żądaną liczbę zer, górnicy dodają do bloku tak zwaną „nonce” przed przepuszczeniem 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 rozgłasza nowo wydobyty blok wszystkim innym górnikom. Następnie sprawdzają, czy blok jest ważny, aby móc dodać go do swojej kopii łańcucha bloków i transakcja zostaje zakończona. Jednak w bloku górnicy muszą również uwzględnić wyjściowy skrót poprzedniego bloku, aby wszystkie bloki były ze sobą połączone, stąd nazwa blockchain. Jest to ważna część ze względu na sposób działania zaufania 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, nad którym wykonano najwięcej pracy, lub temu, który najdłużej działa. Jeśli górnik zmodyfikuje transakcję w poprzednim bloku, wyjściowy skrót tego bloku ulegnie zmianie, co będzie oznaczać modyfikację wszystkich skrótów kolejnych bloków. Górnik musiałby wykonać całą pracę od nowa, aby ktokolwiek zaakceptował swój blockchain jako prawidłowy. Gdyby więc górnik chciał oszukiwać, potrzebowałby ponad 50% mocy obliczeniowej sieci, co jest bardzo mało prawdopodobne. Dlatego takie ataki sieciowe nazywane są atakami 51%.
Model wykorzystywania komputerów do produkcji bloków nosi nazwę Proof of Work (PoW); istnieją również inne modele, takie jak dowód stawki (PoS), który nie wymaga tak dużej mocy obliczeniowej i ma zużywać mniej energii elektrycznej, a jednocześnie można go skalować do większej liczby użytkowników.



