Wszystko, co musisz wiedzieć o bloku i trudności wydobywania Bitcoina

5 904

Prawdopodobnie korzystałeś już nieraz z eksploratora bloków, aby sprawdzić saldo lub status transakcji. Czy wiesz, jakie informacje kryją się za wszystkimi polami w bloku Bitcoina?

Tak naprawdę wcale nie musisz wiedzieć, czym są te wszystkie pola i długie liczby. Tak jak użytkownik poczty e-mail nie musi rozumieć, jak działają protokoły internetowe i e-mail z punktu widzenia technologii, tak użytkownik blockchain lub Bitcoin nie musi wiedzieć, jak to wszystko działa, aby wysłać transakcję. Niemniej jednak dobrze by było to zrozumieć.

W tym artykule przyjrzymy się strukturze bloku w blockchain. Zobaczymy również, jak wyglądają i co oznaczają najważniejsze elementy bloku sieci Bitcoin.

Tajemnice bloku Bitcoina

To pierwszy blok Bitcoina wydobyty w 2021 roku, który został wykopany 13 minut po północy. Chociaż przedmiotem niniejszego omówienia jest blok Bitcoina warto zaznaczyć, że większość blockchainów kieruje się bardzo podobnymi zasadami i ma w swoich blokach bardzo podobne dane i pola. Blok Bitcoin to doskonałe miejsce do rozpoczęcia nauki tej architektury. Inne blockchainy działające w oparciu o model konsensusu Proof of Work, takie jak Dogecoin, będą używać praktycznie tej samej struktury bloków.

blok bitcoina
źródło: link

O czym informują nas te wszystkie pola w strukturze bloku Bitcoin?

Wysokość bloku (Block Height): Znany również jako numer bloku, jest to w zasadzie blok w łańcuchu bloków aż do bieżącego bloku:). Oznacza to, że ​​do czasu tego bloku wydobyto 663852 bloków. Każdego dnia w sieci Bitcoin wydobywa się około 144 nowych bloków.

Rozmiar bloku (Block Size): to, jak sama nazwa wskazuje, wielkość bloku wyrażona w określonej jednostce miary. W tym przypadku blok ma około 1,34 MB i zawiera nagłówek oraz informacje o transakcji. Każdy blok ma limit rozmiaru — na przykład 1 MB, 1,3 MB lub 8 MB w zależności od łańcucha bloków — a liczba transakcji, które może zawierać blok, jest ograniczona rozmiarembloku.

Skrót bloku (Block hash): hash bloku to wyjście danych nagłówka bloku zaszyfrowanych przez funkcję SHA-256.

Wersja (Version): podaje informacje o wersji łańcucha bloków.

hashMerkleRoot: Merkle root jest jak odcisk palca wszystkich transakcji w bloku. Jego źródłem jest Merkle Tree. Powyższe były bardzo szeroko stosowane w kryptografii i były używane jeszcze przed wynalezieniem blockchainów. Drzewa Merkle zostały tak nazwane na cześć Ralpha Merkle w 1979 roku. Są podstawową metodą weryfikacji, czy udostępniane dane nie zostały zmienione, uszkodzone lub zmienione.

Merkle Tree to także sposób weryfikacji poprawności danych w blockchain. Na przykład, jeśli korzystasz z portfela Bitcoin na telefonie komórkowym, Twój portfel nie musi pobierać wszystkich transakcji blockchain, aby je zweryfikować. Merkle Tree z jego Merkle Root wykona pracę polegającą na walidacji wszystkich poprzednich transakcji.

blok bitcoina
źródło: link

WynikowaMerkle Tree lub Merkle Root jest budowana rekurencyjnie, czyli wynika z hash liści w drzewie (które z kolei odpowiadają poszczególnym transakcjom).

Korzeń Merkle jest rozwiązywany poprzez hashing poszczególnych transakcji, które nazywane są liśćmi. Dodatkowe pary liści są haszowane, aby utworzyć dodatkowe węzły liści odpowiadające transakcjom w sieci blockchain.

Chociaż drzewo Merkle można utworzyć z dużej liczby transakcji, Merkle Root zawsze odpowiada 32-bajtowemu ciągowi lub 256-bitowemu (na przykład algorytm hashujący SHA256 zawsze wyprowadza stałą długość 32 bajtów, niezależnie od wielkości wejścia). W ten sposób możemy użyć czegoś tak małego jak 32 bajty, aby sprawdzić, czy liczba transakcji – być może liczona nawet w tysiącach – pozostaje niezmienna (immutable).

Liczba transakcji (number of transactions): liczba transakcji różni się w zależności od bloku. Może to zależeć od maksymalnej pojemności bloku pod względem wielkości samego bloku, wielkości transakcji (nie wartości, ale liczby bajtów) oraz rzeczywistego wolumenu transakcji wprowadzonego przez użytkowników. Blok Bitcoina może na przykład pomieścić do 1,3 MB danych, a rozmiar transakcji wynosi średnio 500 bajtów.

Nagroda za blok (Block reward): nagroda za blok Bitcoin wynosi obecnie 6,25 BTC. Jest to nagroda dla górników traktowana jako zachęta do wnoszenia wkładu w sieć i tworzenia bloków. Pierwsze nagrody za blok opiewały na 50 BTC. Od czasu uruchomienia sieci, Bitcoin podlega cyklicznemu, procesowanemu co 4 lata mechanizmowi halvingu, który obniża wymiar wysokości nagrody o połowę. Dokładnie rzecz ujmując, do halvingu dochodzi co 210 000 bloków. Warto pamiętać, że w myśl powyższego mechanizmu, nagroda za wydobycie bloku w sieci Bitcoina spadnie w okolicach 2140 roku do zera.

Nagroda jest zawarta w transakcji coinbase każdego bloku, unikalnej transakcji utworzonej w celu wypłaty nagrody blokowej. Dla bloku w tym przykładzie nagroda 6,25 BTC byłaby równowartością około 200 000 00 USD według stawek z czerwca 2021 r.

Ciekawostka:

Jeszcze w 2009 roku można było wydobywać bloki w Bitcoin za pomocą mocy komputera osobistego. Jeśli wydobyłeś jeden blok, nagroda w wysokości 50 BTC w 2021 r. jest dziś warta około 2,3 miliona dolarów.

Znacznik czasu (Timestamp): Znacznik czasu to dokładny czas, w którym miało miejsce hashowanie bloku. Eksploratory bloków pokazują zwykle znacznik czasu w formacie czytelnym dla człowieka, aczkolwiek jest on zapisywany natywnie w formacie czasu uniksowego.

Transakcje (Transactions): w zależności od protokołu, transakcje mogą być transferem wartości lub dowolnym zdarzeniem, tzn. niekoniecznie muszą być związane z jakąś płatnością. Zamiast tego może być jedynie transferem danych. Przy okazji, czy wiesz, że niektóre transakcje, takie jak transakcja coinbase pierwszego bloku, kryją w sobie ukrytą wiadomość?

blok

hashPrevBlock (skrót poprzedniego bloku): każdy blok zawiera skrót poprzedniego bloku. W ten sposób bloki są ze sobą połączone w niezmienny sposób. Każdy blok ma hash bloku, który pojawił się wcześniej. Danych w poprzednich blokach nie można zmienić, ponieważ zmieniłoby to już zarejestrowany hash bloku.

Bit (bits): odzwierciedla trudność bloku. Jest reprezentowany w notacji szesnastkowej i odnosi się do aktualnego celu trudności bloku.

Trudność (difficulty): jest miarą bezpieczeństwa sieci oraz tego, jak trudno jest konkurować o nagrodę blokową. Trudność jest określona przez liczbę zer, od których musi się zaczynać hash, gdy następuje proces haszowania. Blok genesis (pierwszy blok Bitcoina) miał trudność 1. Blok przedstawiony na ilustracji zamieszczonej na początku tego artykułu miał trudność 18 599 593 048 299,49. Trudność jest zawsze proporcjonalna do liczby górników (tj. mocy hashowania) w sieci. Trudność zwiększa się, gdy do sieci dołącza więcej górników, a zmniejsza się, gdy górnicy opuszczają sieć. Górnicy mogą dołączyć lub opuścić sieć proporcjonalnie do wymiaru opłacalności wydobycia, która związana zwykle jest z ceną kryptowaluty.

Trudność wydobywania bitcoinów jest w rzeczywistości bardzo podobna do trudności w wydobywaniu złota. Kiedy cena złota rośnie, coraz więcej osób i firm zwykle zaczyna wydobywać złoto, zwiększając konkurencję i utrudniając odnalezienie nowych jego pokładów. Doskonałym tego przykładem była kalifornijska gorączka złota. Na jej początku – w 1846 roku – w San Francisco było zaledwie 100 poszukiwaczy. Do 1852 było ich już ponad 30 000 (zauważ, że liczba aktywnych poszukiwaczy rosła w towarzystwie wzrostu ceny samego kruszczu). Większość poszukiwaczy nie miała szczęścia w znalezieniu złota, ponieważ konkurencja była bardzo duża. W tym okresie ludzie, którzy zarobili większość pieniędzy, faktycznie sprzedawali sprzęt górniczy. Przykałdowo, łopata sprzedawana była wtedy za 36 dolarów, co obecnie stanowiłoby równowartość ponad 1500 dolarów.

Współcześni górnicy, w tym przypadku górnicy kryptowalut, dołączają do puli wydobywczych, aby dzielić wysiłek potrzebny na wydobycie bloku na więcej jednostek i zwiększać rentowność.

Zatrzymajmy się przy kwestii trudności chwilę dłużej…

Jak już wspomnieliśmy, hash bloku zaczyna się od kilku zer. W przypadku naszego bloku zaczyna się od 19 zer, ale… dlaczego? Dlaczego musi zaczynać się od 19 zer? Skąd to się bierze? Znajduje to odzwierciedlenie w polu Bits i trudności. Zobaczmy, jak to obliczyć w uproszczony sposób (więcej na ten temat tutaj).

D = oczekiwana/rzeczywista

D odzwierciedla w tym przykładzie trudność (difficulty). Jaka jest „oczekiwana” wartość trudności? Protokół Bitcoin przewiduje dodanie 2016 nowych bloków co 20160 minut. Daje to średnio jeden blok co 10 minut.

Ponowna ocena trudności następuje co 20160 minut (około 2 tygodnie), a oczekiwana wartość to 20160 minut. Rzeczywista trudność (actual difficulty) = czas potrzebny na wydobycie ostatnich 2016 bloków.

D = 20160/rzeczywiste

Jeśli D > 1, wydobycie ostatnich 2016 bloków zajęło górnikom mniej niż 20160 minut (trudność wzrośnie). Jeśli D < 1, oznacza to, że wydobycie 2016 bloków zajęło więcej niż 20160 minut. W takim przypadku algorytm zmniejszy wymiar trudności:

Jeśli D > 1

Wzrost trudności (0,25, 4)

Jeśli D < 1

Zmniejszenie trudności (0,25, 4)

Trudność wzrasta/zmniejsza się o co najmniej 0,25 lub maksymalnie o 4, w zależności od tego, w jakim zakresie jej dostrojenie (adjustment) jest wymagane.

Nowy poziom trudności, który będzie obliczany co dwa tygodnie, będzie następujący:

nowaTrusność = staraTrudność x 20160/rzeczywista

hash rate i trudność bloku

Trudność wydobycia wzrasta zgodnie z mocą obliczeniową sieci, aby utrzymać średni czas 10 minut na wydobycie jednego bloku. Jak widać na powyższym wykresie, trudność zwiększa się lub zmniejsza co dwa tygodnie w oparciu o średni czas dodawania bloków i jest to w dużym stopniu skorelowana z mocą wydobycia w sieci (oś y wykresu).

Może Cię zainteresować:

Artykuł został opracowany na podstawie A Complete Decoding of the Bitcoin Block autorstwa Henrique Centieiro

Komentarze