Blok
Blok w technologii kryptowalut to podstawowa jednostka danych w łańcuchu bloków, która zawiera zestaw zweryfikowanych transakcji oraz informacje kryptograficzne łączące ją z poprzednim blokiem.
Materiał edukacyjny przygotowany z pomocą AI i automatycznej kontroli jakości. Redakcja dodatkowo sprawdza wybrane materiały. Opisuje również ograniczenia i ryzyka; nie stanowi indywidualnej rekomendacji.
Wprowadzenie
Wyobraź sobie księgę rachunkową, w której każda strona to jeden blok. Na jednej stronie mieści się określona liczba wpisów o przelewach wykonanych przez użytkowników w danym przedziale czasu. Gdy strona się zapełni, zostaje zamknięta, zabezpieczona specjalnym kodem i trwale połączona z poprzednimi stronami, tworząc grubą, nierozerwalną książkę, czyli łańcuch.
W świecie kryptowalut taki blok jest tworzony przez uczestników sieci, którzy zbierają oczekujące transakcje, sprawdzają ich poprawność, a następnie dołączają je do głównego rejestru. Dzięki temu nikt nie może po fakcie zmienić historii ani wymazać raz zapisanych danych, ponieważ każdy kolejny blok dodatkowo chroni te, które powstały wcześniej.
Dzięki temu mechanizmowi systemy kryptowalutowe mogą działać bez centralnego zarządcy, takiego jak bank czy urząd państwowy. Użytkownicy ufają matematyce i mechanizmom kryptograficznym zamiast instytucjom zaufania publicznego. Każdy pełny węzeł w sieci posiada kopię całej tej cyfrowej księgi.
Szczegółowy opis
Od strony technicznej każdy blok składa się z dwóch głównych części: nagłówka bloku oraz listy zawartych w nim transakcji. Nagłówek bloku zawiera kluczowe metadane, w tym między innymi znacznik czasu, wersję oprogramowania, trudność kopania, tzw. nonce (liczbę używaną jednokrotnie w algorytmach konsensusu), skrót kryptograficzny (hash) poprzedniego bloku oraz skrót drzewa Merkle.
Drzewo Merkle to struktura danych pozwalająca na efektywne i bezpieczne podsumowanie wszystkich transakcji znajdujących się w danym bloku za pomocą pojedynczego hasha. Zmiana chociażby jednej litery w którejkolwiek transakcji całkowicie zmieni wynik drzewa Merkle, a tym samym cały hash bloku, co natychmiast zostanie odrzucone przez sieć jako niezgodne z regułami.
Proces dodawania nowego bloku wiąże się z rozwiązaniem problemu matematycznego w sieciach opartych na mechanizmie dowodu pracy lub z wyborem lidera w mechanizmie dowodu udziału. Wokół tego procesu narastają szczegółowe protokoły synchronizacji, które zapewniają, że rozproszone węzły na całym świecie zgadzają się co do aktualnego stanu sieci, mimo opóźnień w przesyłaniu informacji.
Przykłady
Klasycznym przykładem jest blok w sieci Bitcoin. Zgodnie z założeniami projektowymi, nowy blok w tej sieci pojawia się średnio co dziesięć minut i ma odgórnie narzucony limit rozmiaru danych. Zawiera on zarówno transakcję nagrody dla górnika za jego rozwiązanie, jak i setki lub tysiące standardowych transakcji użytkowników.
Innym przykładem jest sieć Ethereum, gdzie bloki powstają znacznie szybciej, średnio co kilkanaście sekund, a ich zawartość obejmuje nie tylko proste transfery środków, ale również stany wykonania złożonych skryptów i inteligentnych kontraktów. Każdy blok w Ethereum odzwierciedla zmianę stanu w maszynie wirtualnej Ethereum.
Warto zauważyć, że w przypadku rozwidlenia sieci, czasowo mogą istnieć dwa różne bloki o tym samym numerze, które odwołują się do tego samego bloku poprzedzającego. Jest to sytuacja przejściowa, która zostaje rozwiązana przez reguły konsensusu wybierające łańcuch z największą skumulowaną pracą lub najwyższym udziałem.
Zalety i ograniczenia
Główną zaletą struktury opartej na blokach jest niezmienność zapisanych danych oraz wysoki poziom odporności na cenzurę i fałszerstwa. Ponieważ bloki są powiązane kryptograficznie, próba oszustwa wymagałaby gigantycznej mocy obliczeniowej lub kapitału, co w praktyce zabezpiecza sieć przed atakami.
Do ograniczeń należy przede wszystkim problem skalowalności. Ograniczony rozmiar bloku oraz stały odstęp czasowy między nimi sprawiają, że sieć może przetworzyć ograniczoną liczbę transakcji na sekundę. Prowadzi to do okresowych zatorów w sieci oraz wzrostu opłat za transakcje w okresach dużego zainteresowania użytkowników.
Istnieje również kwestia opóźnienia finalizacji transakcji. Użytkownik musi poczekać na dodanie kolejnych bloków po jego transakcji, aby mieć pewność, że nie zostanie ona cofnięta w wyniku reorganizacji łańcucha, co wydłuża czas oczekiwania na pełne rozliczenie płatności w porównaniu do tradycyjnych systemów.