225 / 691TARGET

Mining Target

Liczbowy próg dowodu pracy

Mining Target to próg porównania hasha nagłówka. Rozróżniaj samą liczbę, jej zwarte kodowanie nBits oraz cel faktycznie wymagany regułami dla danego bloku.

Mining Target jest nieujemnym progiem liczbowym dla hasha nagłówka przy weryfikacji dowodu pracy. Poprawny cel sieci musi być dodatni i dozwolony; hash nie może go przekroczyć. Niższy cel utrudnia wyszukiwanie.

Bitcoin Core v29.0 odrzuca przy sprawdzaniu pracy hash większy niż wyznaczony cel. Warunek to zatem hash ≤ target, nie wyłącznie ostre mniej niż. Porównuje się liczbowy hash całego nagłówka, nie samo nonce. [Bitcoin Core v29.0 — Proof-of-work checks]

Hashe o różnych wartościach mogą mieć tyle samo początkowych zer. Liczą się także pozostałe cyfry i wartość liczbowa względem celu. Zera obrazują rzadkość, ale nie zastępują pełnego porównania hash ≤ target. [Bitcoin Core v29.0 — Proof-of-work checks]

Pole nBits ma 32 bity, natomiast cel interpretuje się w przestrzeni 256-bitowej. Kodowanie zawiera wykładnik i współczynnik z bitem znaku. Przykładowo 0x04123456 dekoduje się do 0x12345600; to ilustracja formatu, nie obecnie wymagany cel sieci. [Bitcoin Core v29.0 — Compact arithmetic]

W 80-bajtowym nagłówku nBits jest serializowane jako cztery bajty little-endian. Liczbie 0x1d00ffff odpowiada więc ff ff 00 1d. Nie myl kolejności bajtów w odczytywanych danych z kolejnością cyfr wyświetlanej liczby. [Bitcoin Developer Reference — Block headers and nBits]

DeriveTarget w Bitcoin Core v29.0 odrzuca cele ujemne, zero, przepełnienia i wartości ponad powLimit danej sieci. Dowolne zwiększenie nBits nie wystarczy. Poprawne rozpakowanie zwartego zapisu nie dowodzi poprawności celu. [Bitcoin Core v29.0 — Proof-of-work checks]

Kontrola kontekstowa porównuje nBits z GetNextWorkRequired dla poprzedniego bloku i reguł sieci. Niezgodność daje bad-diffbits. Nawet hash poniżej samodzielnie wybranego łatwiejszego celu nie usprawiedliwia błędnego nBits w nagłówku. [Bitcoin Core v29.0 — Contextual and block validation]

Dla modelu równomiernego 256-bitowego hasha i dozwolonego celu T prawdopodobieństwo na próbę wynosi p = (T + 1) / 2^256: akceptowalne są wartości od zera do T włącznie. To wniosek z reguły porównania; sam cel nie określa hashrate’u ani dokładnego czasu następnego bloku. [Bitcoin Core v29.0 — Proof-of-work checks]

Oprócz nagłówka Bitcoin Core sprawdza korzeń transakcji, coinbase, limity bloku i poprawność transakcji. Spełnienie właściwego celu jest konieczne, ale nie zastępuje tych kontroli. Niski hash nie naprawi niepoprawnej zawartości bloku. [Bitcoin Core v29.0 — Contextual and block validation]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Share Difficulty, Proof of Work, Nonce, Nagłówek bloku. Do tego hasła prowadzą również odsyłacze z ASIC Miner, Nonce, Mining Share, Share Difficulty.

DOC · 001Bitcoin Core v29.0 — Proof-of-work checksŹródło pierwotne ↗DOC · 002Bitcoin Developer Reference — Block headers and nBitsDokumentacja ↗DOC · 003Bitcoin Core v29.0 — Compact arithmeticŹródło pierwotne ↗DOC · 004Bitcoin Core v29.0 — Contextual and block validationŹródło pierwotne ↗
Najpierw źródła · To nie jest porada inwestycyjna