Jak dokładniej działa sieć Blockchain?

Udostępnij
Copied to clipboard!
Posłuchaj tego artykułu
00:00 / 00:00

Główną częścią każdej sieci blockchain jest algorytm górniczy. Weźmy za przykład algorytm Bitcoina, SHA-256, czyli inaczej "Secure hash algorithm 256 bits". Hashowanie polega na wprowadzeniu danych (inaczej dane wejściowe), którymi mogą być, tekst, liczby, a nawet plik komputerowy o dowolnym rozmiarze. Dane wyjściowe, które zostają przepuszczone przez algorytm nazywane są "hashem". Powstały w ten sposób hash za każdym razem charakteryzować taką samą długością, a więc 256 bitów kodu maszynowego.

Te same dane dostarczone na wejściu zawsze dadzą taki sam wynik po przepuszczeniu ich przez funkcję hashującą. Hash nie jest przypadkowym ciągiem znaków. Jeśli jednak dokonasz nawet niewielkiej zmiany we wprowadzanych na wejściu danych, to dane wyjściowe (czyli hash) całkowicie się zmienią.

Funkcje hashujące nazywane są również funkcjami jednokierunkowymi, co oznacza, że jeśli wejdziesz w posiadanie danych wyjściowych, to co do zasady nie możliwe jest abyś obliczył (dowiedział się), czym były dane wejściowe. Możesz się jedynie domyślać, co stanowiło dane wejściowe, a prawdopodobieństwo odgadnięcia wynosi 1 na 2^256, czyli... jest to praktycznie niemożliwe, a co za tym idzie bezpieczne.

Teraz, skoro wiesz już jak działa i za co dokładniej odpowiada algorytm, przejdźmy do opisu tego, jak dokładnie działa sieć blockchain - oczywiście na przykładzie prostej transakcji.

Na poczet przykładu zapoznajmy się więc z Justyną oraz Piotrem, którzy posiadają pewną ilość Bitcoinów. Powiedzmy, że Justyna jest winna Piotrowi z jakiegoś powodu 2 Bitcoiny.

W celu wysłania Piotrowi 2 Bitcoiny, Justyna transmituje do sieci informacje na temat planowanej transakcji. Komunikat ten trafia do wszystkich górników (ang. miners) obecnych w sieci.

W komunikacie Justyna zawiera informacje m.in na temat adresu portfela Piotra (inaczej klucz publiczny), ilość przesyłanych Bitcoinów, jej cyfrowy podpis oraz jej klucz publiczny. Podpis Justyny składa się z jej klucza prywatnego dzięki czemu górnicy są w stanie potwierdzić, że Alicja naprawdę posiada wskazaną w komunikacie ilość Bitcoinów oraz, że to rzeczywiście ona chce dokonać transakcji.

W momencie uzyskania przez górników pewności co do zawartych w komunikacie informacji, podejmują się oni umieszczenia całej transakcji Justyny i Piotra w bloku wraz z innymi, podobnymi transakcjami, a następnie podejmują się próby wydobycia tego bloku. Do tego celu górnicy przepuszczają dane bloku przez funkcję hashującą SHA-256. Czynność ta powtarzana jest przez górników tak długo, aż wygenerowane dane wyjściowe zaczynać będą się od określonej wartości - w przypadku Bitcoina jest to odpowiednia ilość zer, która stale się zmienia. Ilość potrzebnych 0 do uznania hashu za właściwego zależy od tak zwanej "trudności", która zmienia się w zależności od mocy obliczeniowej obecnej w sieci.


W celu wytworzenia wymaganego przez trudność hashu z żądaną ilością 0 na początku, górnicy, zanim uruchomią algorytm dodają do bloku coś, co nazywa się "nonce" - inaczej unikalny numer: number used once. Ponieważ niewielka zmiana we wprowadzanych danych wejściowych całkowicie zmienia dane wyjściowe - wynik - górnicy próbują losowych podstawiania losowych nonce, dopóki nie znajdą (nie wygenerują) prawidłowego wyniku (ang. valid output hash).


Po dosłownym wydobyciu bloku, górnik, który wygenerował prawidłowy wynik nadaje informację na temat nowo wydobytego przez niego bloku wszystkim pozostałym górnikom. Ci następnie sprawdzają, czy wygenerowany hash rzeczywiście jest prawidłowy, aby następnie mogli oni dodać go do swojej kopii łańcucha bloków, a transakcja tym samym została zakończona. Co jednak ważne, górnicy podczas szukania poprawnego hashu muszą również uwzględniać hash z poprzednio poprawnie rozwiązanego i zwalidowanego bloku. To właśnie stąd wzięła się nazwa sieć blockchain - dosłownie ŁAŃCUCH-bloków. Ten aspekt funkcjonowania technologii blockchain jest kluczowy, biorąc pod uwagę sposób w jaki osiągane jest wzajemne zaufanie uczestników całej sieci. 

Każdy górnik posiada swój własny egzemplarz kopii blockchainu na swoim komputerze, a wszyscy inni górnicy ufają tej kopii, który powstała przy użyciu największej mocy obliczeniowej - czyli najdłuższemu łańcuchowi. Jeśli górnik zmodyfikuje którąkolwiek z transakcji obecnych w poprzednim bloku, wartość wyjściowa powstała z przepuszczenia danych bloku przez funkcję hashującą ulegnie zmianie. To z kolei spowoduje, że zmianie ulegną również skróty wszystkich innych bloków. To sprawia, że górnik chcący dokonać takiej modyfikacji musiałby od nowa wykonać całą pracę na wszystkich blokach, aby ktokolwiek uznał jego wersję blockchainu za właściwą. Jeśli więc kiedykolwiek którykolwiek z górników podejmie się takiej próby, potrzebować będzie on więcej niż 50% całej obecnej w danym momencie mocy obliczeniowej sieci, co jest bardzo mało prawdopodobne. Taka sytuacja na sieć określana jest “atakiem 51%”.

Model w którym do tworzenia bloków wykorzystywana jest moc obliczeniowa komputerów nazwany został algorytmem Proof-of-Work (PoW) - Dowodem Pracy. Sieci blockchain obecnie wykorzystują wiele różnych algorytmów konsensusu, takie jak np. jak Proof of Stake (PoS) - Dowód Stawki, a które nie wymagają tak dużej mocy obliczeniowej i zużywają mniej energii elektrycznej dając jednocześnie sieciom możliwość ich zeskalowania na większą liczbę użytkowników.


Tak właśnie wyglądają podstawy działania sieci blockchain!

Loading