network

timestamp

Każdy blok Bitcoin zawiera znacznik czasu ustawiony przez górnika. Znaczniki czasu zakotwiczają blockchain w czasie, umożliwiają korektę trudności i były kluczowe dla rozwiązania Satoshiego Nakamoto problemu podwójnego wydatku.

Każdy blok w blockchainie Bitcoin zawiera znacznik czasu, zapis tego, kiedy górnik, który stworzył blok, twierdzi, że go wytworzył. Znacznik czasu jest wyrażony jako czas Unix, liczba sekund, które upłynęły od 1 stycznia 1970 roku. Jest ustawiany przez górnika i dołączany do nagłówka bloku przed rozpoczęciem obliczenia proof-of-work. Chociaż górnicy mają pewną elastyczność w ustawianiu znacznika czasu, protokół narzuca zasady: znacznik czasu bloku musi być większy niż mediana poprzednich jedenastu bloków, a węzły odrzucają bloki oznaczone znacznikiem czasu ponad dwie godziny w przyszłości zgodnie z ich własnymi zegarami lokalnymi.

Znaczniki czasu pełnią krytyczną funkcję w mechanizmie korekty trudności Bitcoina. Co 2016 bloków, mniej więcej co dwa tygodnie, protokół porównuje znaczniki czasu pierwszego i ostatniego bloku w danym okresie, aby obliczyć, ile czasu faktycznie zajęło wyprodukowanie tych bloków. Jeśli rzeczywisty czas był krótszy niż dwa tygodnie, trudność wzrasta; jeśli zajęło to dłużej, trudność maleje. Ta pętla sprzężenia zwrotnego utrzymuje średni interwał bloków bliski dziesięciu minutom niezależnie od tego, ile mocy wydobywczej wchodzi lub wychodzi z sieci.

Znaczniki czasu były również integralną częścią rozwiązania Satoshiego Nakamoto dla problemu podwójnego wydatku. Whitepaper opisuje rozproszony serwer znaczników czasu: włączając kryptograficzny skrót poprzedniego bloku do każdego nowego bloku, każdy blok certyfikuje istnienie wszystkich poprzednich transakcji w danym momencie. Ten łańcuch bloków ze znacznikami czasu sprawia, że przepisanie historii jest obliczeniowo niemożliwe, ponieważ jakakolwiek zmiana unieważniłaby proof-of-work każdego kolejnego bloku.

Frequently asked questions