
Kluczowe punkty
- Blok 974,988 wydobyto po bloku 974,987, ale miał znacznik czasu o 3 minuty i 22 sekundy wcześniejszy.
- Bitcoin dopuszcza znaczniki czasu, które nie są zgodne z czasem bezpośrednio poprzedniego bloku, z zastrzeżeniem limitów konsensusu.
- Powiązania kryptograficzne ustalają kolejność bloków; znaczniki czasu wskazują przybliżony czas.
Dwa kolejne bloki, odwrócona kolejność znaczników czasu
7 listopada znaczniki czasu bloków Bitcoina zdawały się cofać, gdy nowo wydobyty blok miał wcześniejszy czas niż jego bezpośredni poprzednik. Te dwa wpisy to blok 974,987 ze znacznikiem 21:22:24 UTC oraz blok 974,988 ze znacznikiem 21:19:02 UTC. Ponieważ blok 974,988 wydobyto później, wyświetlane godziny wyglądały na niezgodne z kolejnością o trzy minuty i 22 sekundy. Ta rozbieżność wzbudziła pytania, czy blockchain Bitcoina nie uległ awarii.
Rozbieżność była widoczna w publicznym eksploratorze blockchaina, a uwagę na nią zwrócił Alex Thorn, szef działu badań w Galaxy Digital. Thorn zauważył, że serwis mempool.space i jego własny pulpit nawigacyjny pokazywały to samo pozorne odwrócenie kolejności, podkreślając zarazem, że żaden z tych widoków nie był błędny. Kluczowe jest to, że wyświetlana godzina to wartość zapisana w bloku, a nie precyzyjny zapis dostarczony przez centralny zegar sieci w chwili wydobycia.
Na pierwszy rzut oka sytuacja, w której późniejszy blok wskazuje wcześniejszą godzinę, może wyglądać tak, jakby łańcuch zaprzeczał własnej historii. Incydent dotyczy jednak znaczników czasu, a nie kolejności bloków. Te dwa wpisy pokazują konkretny przypadek, w którym te miary się rozeszły. To, czy wskazuje to na awarię mechanizmu konsensusu, zależy od reguł faktycznie sprawdzanych przez Bitcoin, a reguły te nie wymagają, by znacznik czasu każdego bloku był późniejszy niż w jego bezpośrednim poprzedniku.
Jak ustawia się i sprawdza znaczniki czasu w Bitcoinie
Górnicy Bitcoina wybierają znacznik czasu przypisany do bloku. Z wyjaśnienia wynika, że mogą go zmieniać podczas poszukiwania prawidłowego bloku, zwiększając liczbę kombinacji, które ich komputery muszą sprawdzić. Ta elastyczność oznacza, że znacznik czasu nie jest po prostu odczytem zsynchronizowanego zegara, przekazywanym bez zmian z jednego bloku do następnego. To pole, które górnicy ustawiają podczas wykonywania pracy niezbędnej do utworzenia bloku akceptowanego zgodnie z regułami Bitcoina.
Ta swoboda ma swoje ograniczenia. Znacznik czasu bloku musi być późniejszy niż mediana czasu z poprzednich 11 bloków i nie może wyprzedzać zegara węzła weryfikującego o więcej niż dwie godziny. Te kontrole ograniczają dopuszczalną wartość, ale nie wymagają, by znaczniki czasu rosły ściśle z bloku na blok. Innymi słowy, dopuszczalny czas ocenia się w odniesieniu do szerszej, niedawnej historii oraz zegara węzła, a nie tylko znacznika czasu bloku nadrzędnego.
Reguła mediany ma kluczowe znaczenie dla zrozumienia pozornej niezgodności. Znacznik czasu może być wcześniejszy niż w bezpośrednio poprzedzającym bloku, a mimo to późniejszy niż mediana z poprzednich 11 bloków. Reguły konsensusu Bitcoina dopuszczają więc pewne lokalne nieregularności znaczników czasu. Para z 7 listopada ilustruje tę różnicę: wyświetlany czas nowszego bloku był wcześniejszy, ale sam ten fakt nie dowodzi, że sieć zaakceptowała nieprawidłowy blok.
Dlaczego znacznik czasu nie określa kolejności bloków
Analiza Thorna pokazuje, jak często znaczniki czasu odbiegają od prostego, stale biegnącego zegara. Powiedział, że znaczniki czasu około 3% bloków Bitcoina są wcześniejsze niż znaczniki czasu ich bloków nadrzędnych. Dodał też, że mniej więcej co dziesiąty blok dociera ze znacznikiem czasu wyprzedzającym o ponad minutę moment, w którym odebrał go jego węzeł. Te dane opisują dwa odrębne zachowania związane ze znacznikami czasu i pomagają zrozumieć, dlaczego nie należy traktować tego pola jako precyzyjnego, nieprzerwanie zsynchronizowanego zapisu czasu rzeczywistego.
Liczby te nie oznaczają, że bloki są rutynowo przestawiane ani że ignoruje się zasady konsensusu. Pokazują, że znaczniki czasu mogą odbiegać od oczekiwań czytelnika co do dokładnej chronologii, a jednocześnie spełniać określone wymogi. Źródło nie wskazuje, by w tym przypadku doszło do awarii sieci; wyjaśnia natomiast dozwoloną rolę znaczników czasu ustawianych przez górników. Ta konkretna para zwróciła uwagę, ponieważ wyświetlane godziny wyjątkowo wyraźnie uwidoczniły tę różnicę.
Bitcoin ustala kolejność bloków za pomocą powiązań kryptograficznych, a nie przez sortowanie znaczników czasu. Każdy blok zawiera unikatowy skrót poprzedniego bloku, łączący go z blokiem nadrzędnym i jednoznacznie określający kolejność tych zapisów. Dlatego wcześniejszy znacznik czasu w późniejszym bloku nie usuwa ani nie odwraca tego powiązania. Aby ustalić, który z tych dwóch bloków pojawił się w łańcuchu jako pierwszy, należy kierować się właśnie tą relacją kryptograficzną.
Co ten przypadek oznacza dla zapisów opartych na czasie
Według źródła prawdziwa reorganizacja blockchaina wymaga konkurencyjnego łańcucha z większą skumulowaną pracą wydobywczą. Sama zmiana znaczników czasu nie może do tego doprowadzić. Niezgodność znaczników czasu nie oznacza więc, że transakcje zostały cofnięte ani że wcześniejszy blok przestał poprzedzać późniejszy. To ważne rozróżnienie: zaskakująca etykieta czasowa i zmiana zaakceptowanej historii łańcucha to różne zdarzenia, działające według odmiennych mechanizmów.
Dla osób korzystających z zapisów blockchaina, by ustalić, kiedy coś się wydarzyło, praktyczne ograniczenie polega na tym, że znacznik czasu jest przybliżeniem, a nie dokładnym, niezależnym zegarem. Wysokość bloku określa kolejność, natomiast znacznik czasu podaje szacunkowy czas zgodnie z zasadami Bitcoina. Źródło wyraźnie zaznacza, że ta różnica ma znaczenie dla każdego, kto polega na zapisach blockchaina, by dokładnie ustalić moment zdarzenia. Przy interpretacji zdarzeń zależnych od czasu nie należy mylić wyświetlanego znacznika czasu z dowodem na dokładny czas rzeczywisty.
Satoshi Nakamoto opisał Bitcoina w oryginalnym whitepaperze jako „serwer znaczników czasu”, ale przykład z 7 listopada pokazuje, dlaczego ten opis nie oznacza idealnie uporządkowanych odczytów zegara. System opiera się na dowodzie kryptograficznym, który określa kolejność bloków, oraz na ograniczonych znacznikach czasu wskazujących przybliżony czas. Na podstawie opisanego incydentu nie da się ustalić dokładnego powodu, dla którego górnik wybrał akurat tę wartość; źródło wyjaśnia zasady i rezultat, ale nie wskazuje konkretnego motywu nadania znacznikowi czasu temu blokowi.
Źródło: BeInCrypto

![[[alloc] init] Publikuje propozycję Shielded Bitcoin w sprawie prywatnych transakcji bitcoinowych](/uploads/posts/resize/280x280/1790260582_alloc-init-releases-shielded-bitcoin-proposal-for-private-bitcoin-transactions.jpg)



