Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Jak SHA256 i górnictwo chronią sieć Bitcoin?

Jak Bitcoin jest broniony przez energię? A czym jest nonce? Odpowiedzi na te i inne pytania znajdziesz w środku!

Jak działa górnictwo, jest fascynujące. Kiedy wyjaśniam to ludziom, cieszę się, gdy widzę ich twarz w chwili, gdy ich umysł jest zachwycony. Wyjaśnię to tutaj, ale po prostu wiedz, że wyobrażam sobie wszystkie twoje twarze, gdy twój umysł pęka!

Muszę zacząć od funkcji skrótu. Bez funkcji haszujących Bitcoin nie byłby możliwy. Pozwólcie, że wyjaśnię, czym one są najpierw, nie tylko po to, aby brzmieć fajnie na imprezach, ale także dlatego, że jest to fundamentalne dla zrozumienia, jak działa Bitcoin – w szczególności kopanie, ale także transakcje – pod maską.

Nie musisz rozumieć, jak działa Bitcoin, aby z niego skorzystać, podobnie jak nie musisz rozumieć, jak działa protokół TCP/IP, aby korzystać z Internetu. Ale mów dalej, bo to jest całkiem interesujące i ułatwię zrozumienie, obiecuję.

Funkcje skrótu

Zacznijmy od schematu, który wyjaśnię poniżej…

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
(Graficzny/@jirols_btc.)

Po lewej stronie znajduje się wejście, w środku funkcja, a po prawej wyjście. Wejściem mogą być dowolne dane, o ile są cyfrowe. Może mieć dowolny rozmiar, pod warunkiem, że Twój komputer sobie z tym poradzi. Dane są przekazywane do funkcji SHA256. Funkcja pobiera dane i oblicza losowo wyglądającą liczbę, ale ze specjalnymi właściwościami (omówione później).

Pierwszym algorytmem Secure Hash Algorithm (SHA) był pierwotnie opracowany przez NSA i istnieje teraz wiele różnych wersji (Bitcoin używa SHA256). Jest to zestaw instrukcji, jak pomieszać dane w bardzo skomplikowany, ale sprecyzowany sposób. Instrukcje nie są tajemnicą i można to zrobić nawet ręcznie, ale jest to bardzo żmudne.

W przypadku SHA256 wyjście jest liczbą 256-bitową (nie jest to przypadek).

Liczba 256-bitowa oznacza liczbę binarną o długości 256 cyfr. Binarny oznacza, że ​​wartość jest reprezentowana przez dwa symbole, 0 lub 1. Liczby binarne można przekonwertować na dowolny inny format, na przykład liczby dziesiętne, które są nam znane.

Chociaż funkcja zwraca 256-cyfrową liczbę binarną, wartość jest zwykle wyrażana w formacie szesnastkowym o długości 64 cyfr.

Szesnastkowy oznacza, że ​​zamiast 10 możliwych symboli, do jakich jesteśmy przyzwyczajeni z dziesiętnymi (0 do 9), mamy 16 symboli (dziesięć, do których jesteśmy przyzwyczajeni, 0-9, plus litery a, b, c, d, e, i f; które mają wartości od 11 do 15). Na przykład, aby przedstawić wartość dziesiętną 15 w systemie szesnastkowym, po prostu piszemy „f” i jest to ta sama wartość. Istnieje wiele informacji dostępnych online dzięki szybkiemu wyszukiwaniu w Google, jeśli potrzebujesz więcej informacji.

Aby zademonstrować działanie SHA256, mogę wziąć numer 1 i przepuścić go przez internetowy kalkulator hashi otrzymałem to wyjście (w systemie szesnastkowym):

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Górne pole to dane wejściowe, dolne pole to wynikowe dane wyjściowe.

Należy zauważyć, że wszystkie komputery na świecie będą generować takie same dane wyjściowe, pod warunkiem, że dane wejściowe są takie same i używana jest funkcja SHA256.

Wynik liczby szesnastkowej, jeśli zostanie przekonwertowany na dziesiętny, to (zauważ, że zapis wymaga więcej cyfr):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

A przekonwertowany na binarny to:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Tylko z zainteresowania, tutaj jest ta sama wartość w podstawa 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

Zauważ, że najmniejsza możliwa wartość, jaką SHA256 może zwrócić, to zero, ale DŁUGOŚĆ nadal wynosi 256 bitów. Tak przedstawia się zero:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

A największa możliwa wartość to:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

W systemie dziesiętnym jest to:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

W systemie szesnastkowym jest to:

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Zauważ, że jest dokładnie 64 F.

Zero w postaci szesnastkowej można po prostu zapisać jako jedno zero, ale w przypadku wyniku mieszania jest ich 64, aby zachować wymóg wyjścia o stałym rozmiarze:

0000000000000000000000000000000000000000000000000000000000000000

Oto podsumowanie kilku faktów dotyczących funkcji skrótu, które należy docenić:

  • Wejście nie może być określone na podstawie wyjścia
  • Wejście może mieć dowolną długość
  • Wyjście ma zawsze tę samą długość
  • Wyjście będzie zawsze odtwarzane identycznie, jeśli podasz ten sam sygnał wejściowy.
  • Każda zmiana danych wejściowych, bez względu na to, jak mała, spowoduje nieprzewidywalny i szalenie inny wynik
  • Dane wyjściowe są pozornie losowe, ale w rzeczywistości są deterministyczne (co oznacza, że ​​są obliczane i odtwarzalne)
  • Nie można przewidzieć wyniku. Można to tylko obliczyć, a to wymaga wymiernego nakładu pracy komputera (i godzin z ołówkiem i papierem! Nie rób tego).

Teraz, gdy rozumiesz podstawową koncepcję tego, czym jest hash, możesz zrozumieć, jak działa wydobywanie bitcoinów.

Ale zanim przejdziesz dalej, polecam przejść do internetowego kalkulatora haszującego i trochę się nim pobawić i przetestować na sobie to, co powiedziałem o funkcjach haszujących. Ten mi się podoba.

Górnictwo

Zacznę od zademonstrowania koncepcji pracy, z której pochodzi „proof-of-work” w Bitcoin.

Przejdź do internetowego kalkulatora haszowania i wpisz „Tworzę 50 bitcoinów i płacę sobie tę kwotę”.

Wpisz go dokładnie, uwzględniając wielkość liter, w tym kropkę. Powinieneś otrzymać to wyjście:

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Teraz stwórzmy regułę, która mówi, że aby ta wiadomość płatnicza była poprawna, potrzebujemy hash, aby zaczynał się od jednego zera. Aby to zrobić, musimy jakoś zmienić dane wejściowe. Ale, jak już wiesz, nie można przewidzieć, jaki byłby wynik dla danego wejścia. Jaką modyfikację możemy wprowadzić, aby hash zaczynał się od zera?

Musimy dodawać dane metodą prób i błędów. Ale nie chcemy też zmieniać znaczenia komunikatu wejściowego. Stwórzmy więc pole (przydzieloną sekcję) o nazwie „nonce”, które będzie zawierało nonsensowną wartość.

Słowo „Nonce” ma pochodzić od „liczby użytej tylko raz”, ale ja tego nie widzę.

Zwróć uwagę poniżej, jak dodanie „Nonce:” jako dodatkowego nagłówka pola zmienia wynik skrótu.

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wyjście nadal nie zaczyna się od „0”, więc dodajmy trochę bzdur (dodałem bezsensowne „x”):

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Nadal nie zaczyna się od zera. Próbowałem jeszcze kilku znaków, aż hash zaczął się od zera:

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

No to jedziemy. Teraz, zgodnie z arbitralnymi zasadami, które ustaliłem dla tej udawanej wersji Bitcoina, tekst w oknie wejściowym jest prawidłowym blokiem z pojedynczą transakcją płacącą mi 50 bitcoinów.

Zauważ, że bloki Bitcoin są zasadniczo stronami księgi głównej. Każdy blok jest ponumerowany i tworzy nowy bitcoin wraz z listą transakcji między użytkownikami. Ten rekord to miejsce, w którym żyje bitcoin.

Teraz nowa zasada. W następnym bloku należy uwzględnić skrót poprzedniego bloku. Dodam trochę złożoności i dodam kilka dodatkowych pól, aby zbliżyć się do tego, co ma prawdziwy blok Bitcoin.

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Hash zaczyna się od „f”, a nie od „0”, więc będę musiał wypróbować kilka wartości w polu nonce:

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Tym razem miałem więcej szczęścia i znalazłem odpowiedni nonce już po czterech próbach. Przypomnijmy, że w przypadku pierwszego bloku zajęło to 22 próby. Jest tu pewna losowość, ale generalnie nie jest zbyt trudno znaleźć prawidłowy hash, jeśli wszystko, co próbujemy uzyskać, to jedno zero. Istnieje 16 możliwych wartości dla pierwszej cyfry skrótu, więc mam szansę 1 na 16, że każda modyfikacja, którą wprowadzę w polu wejściowym, spowoduje, że pierwsza cyfra skrótu będzie równa „0”.

Zauważ, że pola Bitcoin są takie, ale jest więcej szczegółów, których nie dodałem. Ma to na celu jedynie zilustrowanie punktu, niekoniecznie szczegółowego, jak wygląda blok Bitcoina.

Dodam pole czasu do następnego bloku, ponieważ potrzebuję tego, aby wyjaśnić „dopasowanie trudności” w następnej kolejności:

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Powyżej znajduje się blok numer trzy. Zawiera hash z poprzedniego bloku, a teraz zacząłem też uwzględniać czas. Jeden raz, który znalazłem, z powodzeniem spowodował, że hash zaczynał się od zera (po prostu wpisywałem „1”, aż do osiągnięcia celu haszowania).

Teraz wystarczy, że mogę zacząć wyjaśniać kilka interesujących koncepcji dotyczących łańcucha bloków i kopania Bitcoina.

Wygranie bloku

Proces wydobywczy jest konkurencyjny. Kto pierwszy wyprodukuje ważny blok, musi zapłacić sobie nagrodę za zestaw. Górnik, który nieco później wyprodukuje ten sam numer bloku, nic nie otrzymuje — ten blok jest odrzucany. Wyjaśnienie, dlaczego tak jest, spowoduje teraz zbyt dużą dywersję, więc wyjaśnię to w dodatku.

Po znalezieniu trzeciego bloku i rozesłaniu go do wszystkich (wszystkich węzłów Bitcoin), wszyscy górnicy przestają pracować nad wersją bloku trzeciego. Zaczynają budować na tym udanym bloku trzecim (przeciągając jego hash blokowy do przodu do nowego bloku) i zaczynają pracować nad znalezieniem odpowiedniego numeru jednorazowego dla bloku czwartego. Zwycięzca publikuje wynik, a następnie wszyscy rozpoczynają pracę nad blokiem piątym itd.

Z każdym blokiem tworzone są nowe bitcoiny, które wspólnie tworzą dotychczasową całkowitą podaż. Jeśli górników jest wielu, to statystycznie powinniśmy oczekiwać, że bloki będą produkowane szybciej, a co za tym idzie bitcoin będzie tworzony szybciej. Problem, prawda?

Poszukując ograniczonej podaży bitcoinów z przewidywalną emisją w czasie, Satoshi Nakamoto pomyślał o tym problemie i wprowadził pętlę ujemnego sprzężenia zwrotnego, aby utrzymać produkcję bloków średnio w 10-minutowych odstępach. W jaki sposób? Zobacz, czy możesz wymyślić sposób. Zatrzymaj się na chwilę i zastanów — zobacz, czy możesz wymyślić to samo genialne rozwiązanie i czytaj dalej, kiedy się poddasz.

WĘZŁY: Wspominam o „ważnych” blokach. Więc co? Kto sprawdza? Węzły Bitcoin są. Węzeł Bitcoin do tej pory przechowuje kopię łańcucha bloków i przestrzega zestawu reguł, aby sprawdzić, czy nowe bloki są zgodne z regułami i odrzucić te, które nie są. Gdzie są zasady? W kodzie. Komputer, który pobiera kod Bitcoin, jest węzłem.

Korekta trudności

Średni czas tworzenia nowych bloków Bitcoin jest obliczany przez każdy węzeł co 2016 bloków (dlatego potrzebne jest pole czasu). Jest to część protokołu i reguł, których przestrzegają węzły. Stosowana jest formuła w celu dostosowania liczby zer, od których każdy hash bloku musi się zaczynać, aby był prawidłowy.

Ściśle rzecz biorąc, to nie liczba zer jest dostosowywana, ale wartość docelowa, którą hash musi być poniżej, ale myślenie o wiodących zerach jest prostsze do wyjaśnienia.

Jeśli bloki są tworzone zbyt szybko, to cel mieszający jest dostosowywany zgodnie z wcześniej zdefiniowanymi regułami, zgodnie z którymi wszystkie węzły postępują identycznie (jest to w ich kodzie).

Upraszczając dla mojego przykładu, powiedzmy, że inni konkurują ze mną, bloki dzieją się zbyt szybko, a teraz czwarty blok potrzebuje dwóch zer zamiast jednego, zgodnie z wyimaginowaną kalkulacją.

Uzyskanie dwóch zer zajmie mi trochę więcej czasu, ale wyobrażamy sobie, że rywalizuje ze mną wiele innych osób, więc łączny czas potrzebny na znalezienie bloku jest ograniczony do celu.

Oto następny blok:

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zwróć uwagę na czas. Od poprzedniego bloku minęło ponad 10 minut (właśnie udało mi się zademonstrować). Cel 10-minutowy jest probabilistyczny; nigdy nie wiadomo dokładnie, kiedy zostanie znaleziony następny blok.

Przez minutę bawiłem się klawiaturą, aż pojawiły się dwa zera. To było wykładniczo trudniejsze niż znalezienie pojedynczego zera. Szansa na znalezienie dwóch zer z rzędu wynosi 1 na 162lub szansa 1 na 256.

Gdyby więcej osób przyłączyło się do wydobycia i rywalizacji o nowy bitcoin, ostatecznie wymagane będą trzy zera.

Właśnie sprawdziłem ostatni prawdziwy blok Bitcoin, który zawiera skrót poprzedniego bloku. Skrót był:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

To 19 zer! Jest 1 na 1619 szansa na znalezienie takiego bloku przy każdej próbie. Górnicy Bitcoina wykonują wiele, wiele prób na sekundę, łącznie na całym świecie.

Liczba prób na sekundę jest znana jako „współczynnik haszowania”. Obecnie szacowany światowy współczynnik haszowania wynosi niecałe 200 milionów terahaszy na sekundę (jeden terahasz to bilion haszy). Przy takiej liczbie prób na sekundę blok z hashem zaczynającym się od 19 zer znajduje się mniej więcej co 10 minut.

W przyszłości, w miarę przyłączania się większej liczby górników, szybkość haszowania wzrośnie, bloki będą wyszukiwane szybciej, a trudność Bitcoina dostosuje się do wymagania 20 zer, co zmniejszy produkcję bloków do około 10 minut.

Połówka

Kiedy Bitcoin został uruchomiony po raz pierwszy, wyprodukowano 50 bitcoinów z każdym blokiem. Zasady łańcucha bloków Bitcoin określają, że po każdych 210,000 10 blokach nagroda zostanie zmniejszona o połowę. Ten moment jest znany jako „halving” i zdarza się mniej więcej co cztery lata. Zmniejszenie o połowę, w połączeniu z regulacją trudności, utrzymującą bloki w 2140-minutowych odstępach, oznacza, że ​​około roku 0.00000001 nagroda za blok wyniesie 1, czyli 21 satoshi, najmniejsza jednostka bitcoina i nie będzie można jej już zmniejszyć o połowę. Wydobywanie się nie zatrzyma, ale nagroda za blok wyniesie zero. Od tego momentu nie zostanie utworzony żaden nowy bitcoin, a liczba bitcoinów jest matematycznie obliczalna i wystarczająco blisko XNUMX milionów monet. W ten sposób znana jest całkowita podaż — jest ustawiana programowo.

Nawet przy zerowej nagrodzie za blok górnicy nadal będą zachęcani do dalszej pracy w celu uzyskania opłat transakcyjnych.

Jak dokładnie nagroda za blok jest zmniejszona o połowę? Jest w kodzie przechowywanym przez węzły. Wiedzą, że należy odrzucić każdy nowy blok po 210,000 25, w którym górnik płaci sobie ponad 420,000 bitcoinów. A potem odrzucić bloki po 12.5 XNUMX, w których górnik płaci sobie ponad XNUMX bitcoina i tak dalej.

Opłaty transakcyjne

Do tej pory pokazałem tylko wyimaginowane bloki z jedną transakcją — transakcją, w której górnik otrzymuje nagrodę. Nazywa się to „transakcją coinbase”.

Nie nosi nazwy firmy Conbase, mam na myśli Coinbase. Firma nazwała się po transakcji coinbase, a nie na odwrót. Nie daj się pomylić.

Oprócz transakcji coinbase istnieją transakcje osób płacących sobie nawzajem. Oto wyimaginowany przykład:

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Tym razem nie zawracałem sobie głowy znalezieniem prawdziwego hasza (w rzeczywistości jest to prawdziwy hash zgłoszony w bloku 200,001). Ten jednorazowy właśnie wymyśliłem dla zabawy, ale zauważ, że wiadomość może być tam osadzona.

Satoshis umieścił słynne słowa „Kanclerz na krawędzi drugiego ratowania banków” w pierwszym bloku Bitcoin (Blok Genesis), po nagłówku gazety tego dnia.

Jak SHA256 i górnictwo chronią sieć Bitcoin PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Chodzi o to, że uwzględniono 132 transakcje (nie wszystkie pokazane). Spójrz na transakcję #132 – 2.3 bitcoina z adresu płaci 2.1 bitcoina na inny adres, a także na drugi adres kwotę 0.1 bitcoina (kropkami skróciłem adres).

Tak więc źródło 2.3 bitcoina płaci łącznie 2.2 bitcoina (2.2 + 0.1 = 2.2). Czy brakuje 0.1 bitcoina? Nie, różnicę twierdzi górnik, jak wyjaśnię.

Górnik może zapłacić sobie 25 bitcoinów jako nagrodę za blok (ponieważ minęło 210,000 50 bloków, więc nagroda została zmniejszona o połowę z 25 do 27.33880022). Ale jeśli spojrzysz, transakcja coinbase to 2.33880022. Dodatkowy bitcoin 132 pochodzi z pozostałych XNUMX transakcji w bloku – wszystkie wejścia będą nieco większe niż suma wyjść. Tak więc górnik może odebrać ten „porzucony” bitcoin jako zapłatę dla siebie. Są to opłaty transakcyjne płacone górnikowi.

Przestrzeń blokowa jest ograniczona. Kiedy Bitcoin był nowy, użytkownicy mogli wysyłać transakcje bez opłat, a górnicy dołączali transakcję do bloku. Ale teraz jest więcej użytkowników, a ponieważ przejście do następnego bloku jest konkurencyjne, użytkownicy wliczają opłatę w transakcji, aby zachęcić górnika do wybrania swojej transakcji, a nie innych”.

Więc kiedy nagroda blokowa stale spada, zmniejszając się o połowę co cztery lata i ostatecznie do zera, górnicy nadal otrzymują wynagrodzenie w ten sposób.

Niektórzy sugerują, że pewnego dnia nagroda dla górników nie wystarczy i spowoduje upadek Bitcoina. Ten problem został dokładnie obalony i nie będę go tutaj powtarzał.

Czy można przepisać blok?

Jest to bardzo mało prawdopodobne i warto zrozumieć dlaczego. Wtedy docenisz, dlaczego transakcje Bitcoin są niezmienne (niezmienne).

Wyjaśniłem wcześniej, że skrót poprzedniego bloku jest zawarty w bieżącym bloku. Oznacza to, że każda edycja transakcji w starym bloku zmienia hash tego edytowanego bloku. Ale ten skrót jest zapisywany w następnym bloku, więc oznacza to, że następny blok również musi zostać zaktualizowany. Ale jeśli zmienisz skrót zapisany w następnym bloku, jego skrót musi się zmienić i tak dalej.

Zwróć uwagę, że za każdym razem, gdy zmienia się hash, tracisz wszystkie te piękne zera i zostaniesz po prostu z losowo wyglądającym haszem — i musisz wykonać całą pracę ponownie, aby odzyskać zera. Jeśli zrobisz to dla bloku, który próbowałeś edytować, musisz powtórzyć pracę dla następnego bloku i następnego aż do ostatniego bloku. Nie możesz po prostu zatrzymać się na starym bloku, ponieważ zasady Bitcoina są takie, że najdłuższy łańcuch bloków to prawdziwy rekord Bitcoina. Jeśli cofniesz się i edytujesz blok 10 bloków temu, nie masz już najdłuższego łańcucha. Musisz dodać jeszcze 10 bloków, a potem trochę więcej, ponieważ kiedy tworzyłeś te 10 bloków, prawdziwy łańcuch prawdopodobnie stał się nieco dłuższy. Musisz ścigać się, aby wyprzedzić prawdziwy łańcuch. Jeśli się powiedzie, nowa wersja staje się wersją prawdziwą.

Powtarzanie zbiorowego wysiłku mieszającego na całym świecie od edytowanego bloku do najnowszego bloku jest barierą dla edycji Bitcoina. Energia została zużyta na stworzenie tych skrótów z tymi wszystkimi nieprawdopodobnymi zerami i ten wydatek energetyczny należy powtórzyć, aby edytować Bitcoin. Dlatego energia wykorzystywana do wydobywania Bitcoina nie jest „marnowana”; jest po to, aby bronić Bitcoina przed edycjami, aby księga była niezmienna bez konieczności ufania władzom centralnym.

Co się stanie, jeśli dwóch górników znajdzie blok w tym samym czasie?

Tak naprawdę zdarza się to od czasu do czasu i zawsze układa się w następujący sposób:

Każdy węzeł otrzyma najpierw jeden z nowych, prawie równoczesnych bloków i zaakceptuje ten jeden, a odrzuci ten, który przybył chwilę później. Powoduje to podział sieci, ale jest to tymczasowe.

Aby to zilustrować, nazwijmy jeden z klocków niebieskim, a drugi czerwonym (nie mają koloru, po prostu znoś się ze mną).

Górnicy następnie pracują nad następnym blokiem, ale nastąpi podział na to, z którego bloku przedłużą łańcuch.

Załóżmy, że zwycięski górnik znalazł klocek za pomocą niebieskiego łańcucha. Wyślą nowy blok do wszystkich węzłów i będzie widoczny najdłuższy łańcuch. Węzły, które zaakceptowały czerwony łańcuch, porzucą go i przyjmą niebieski łańcuch.

Wszyscy górnicy, którzy pracowali nad czerwonym łańcuchem, zatrzymają się i będą teraz pracować nad dłuższym łańcuchem, który jest niebieskim łańcuchem. Czerwony łańcuch jest martwy.

dodatek

Dlaczego drugi w kolejności blok górnika jest nieważny

Załóżmy, że blok 700,000 700,000 został właśnie wydobyty przez MINER-A. Trzydzieści sekund później MINER-B stworzył również inną wersję bloku 30 700,001. Kiedy MINER-B rozgłasza tę alternatywę, każdy węzeł odrzuci ją, ponieważ już widział i zaakceptował blokadę MINER-A. Co więcej, w ciągu tych 700,000 sekund załóżmy, że MINER-C znalazł blok 700,001. Biorąc pod uwagę, że konkurujący XNUMX XNUMX blok MINER-B nie przedłuża obecnego łańcucha (który wynosi do XNUMX XNUMX), jest również odrzucany z tego powodu.

Jeszcze bardziej interesujące jest to, że gdyby MINER-B pracował nad blokiem 700,001 zamiast konkurencyjnej wersji 700,000 700,001, mieliby taką samą szansę na wydobycie prawidłowego bloku 700,000, jak musieliby w końcu znaleźć alternatywny blok XNUMX XNUMX. Tak więc, gdy tylko górnik zobaczy nowy blok, powinien skierować swój wysiłek na kolejny blok.

Jeśli jednak Miner-B znalazł blok 700,000 XNUMX jedną sekundę po tym, jak zrobił to MINER-A, to możliwe, że niektóre węzły widzą najpierw blok MINER-A, podczas gdy inne jako pierwsze widzą blok MINER-B, w zależności od lokalizacji geograficznych i prędkości Internetu. W takim przypadku istnieje tymczasowe rozwidlenie i niektórzy górnicy będą pracować nad rozszerzeniem jednej wersji, podczas gdy inni będą pracować nad rozszerzeniem drugiej. Jak wyjaśniono wcześniej, używając deskryptorów „niebieskiego łańcucha” i „czerwonego łańcucha”, w końcu jedna z wersji zostanie rozszerzona dalej przed drugą i stanie się obowiązującą wersją jednogłośnie.

To jest gościnny post autorstwa Armana The Parmana. Wyrażone opinie są całkowicie ich własnymi i niekoniecznie odzwierciedlają opinie BTC Inc lub Magazyn Bitcoin.

Znak czasu:

Więcej z Magazyn Bitcoin