09 / 7362016

Difficulty Adjustment

dostosowanie trudności wydobycia

Jak Bitcoin dostosowuje nakład pracy przy wydobyciu, aby nowe bloki powstawały w dłuższym okresie średnio co dziesięć minut.

Difficulty Adjustment automatycznie zmienia trudność wydobycia bloku. Gdy górnicy znajdują bloki zbyt szybko, reguły utrudniają poszukiwania; gdy zbyt wolno, ułatwiają je. Dzięki temu Bitcoin może zachować zbliżone tempo mimo dużych zmian mocy obliczeniowej. Każdy węzeł w pełni sprawdzający reguły weryfikuje tę zmianę w ten sam sposób. Nie decyduje o niej żaden administrator.

Wyobraź sobie, że do wydobycia dołącza wiele nowych maszyn. Razem wykonują więcej prób na sekundę, więc przy tej samej trudności znajdują bloki średnio szybciej. Blok to pakiet potwierdzonych transakcji, a wraz z nim mogą powstać nowe bitcoiny. Bez dostosowania trudności silniejsze maszyny przyspieszałyby więc także emisję. Górnicy wielokrotnie obliczają hash, czyli liczbowy odcisk nagłówka bloku. Próba kończy się sukcesem, gdy wynik jest dostatecznie mały. Surowszy próg oznacza mniejszą szansę powodzenia jednej próby, a więc średnio więcej potrzebnej pracy. [3]

W głównej sieci Bitcoina, nazywanej mainnet, trudność jest przeliczana co 2 016 bloków. Przy średnio dziesięciu minutach na blok daje to około dwóch tygodni. Nie działa tu jednak budzik: zmianę uruchamia osiągnięcie odpowiedniego numeru bloku, czyli jego wysokości. Jeśli wielu górników nagle wyłączy urządzenia, na pozostałe bloki trzeba będzie czekać dłużej. Sieć najpierw kończy okres ze starą trudnością; mainnet nie ma natychmiastowej awaryjnej obniżki. [1] [2]

Załóżmy, że czas użyty do przeliczenia wynosi 10 dni zamiast docelowych 14. Następny okres będzie trudniejszy: trudność wzrośnie mniej więcej w stosunku 14 do 10, czyli o 40%. Jeżeli zmierzony okres trwa 28 dni, trudność spadnie mniej więcej o połowę. To uproszczone przykłady: pomijają zaokrąglenia i zakładają, że nie zostaje osiągnięta najniższa dozwolona trudność. Jeśli później moc obliczeniowa się nie zmieni, nowe ustawienie zbliży oczekiwany czas między blokami z powrotem do dziesięciu minut. [1] [2]

Dziesięć minut to średnia długoterminowa, a nie obiecany czas oczekiwania. Dwa bloki mogą pojawić się niemal jeden po drugim, a na kolejny poczekamy znacznie dłużej. Twoja transakcja też nie musi trafić do najbliższego bloku: znaczenie mają jej opłata i inne oczekujące transakcje. Dostosowanie trudności nie steruje ceną BTC ani nie gwarantuje górnikom zysku. Nie zmienia również ilości nowych bitcoinów dozwolonej w jednym bloku. Jej okresowe zmniejszanie o połowę, Halving, podlega osobnej regule. [2] [3]

Reguły posługują się liczbowym progiem określanym jako target. Mniejszy target oznacza trudniejsze wydobycie; liczba nazywana trudnością wyraża tę zależność odwrotnie. Nowy target to poprzedni target pomnożony przez zmierzony czas i podzielony przez czas docelowy, czyli 1 209 600 sekund. Przed obliczeniem zmierzony czas ogranicza się do zakresu od jednej czwartej do czterokrotności czasu docelowego. To ogranicza wielkość pojedynczej zmiany. Target nie może też przekroczyć największej dozwolonej wartości powLimit. W nagłówku zapisuje się go w zwartej postaci nBits, która ma ograniczoną dokładność. Dlatego procenty w przykładach są przybliżone. [1] [2]

Bitcoin Core porównuje znacznik czasu z nagłówka ostatniego bloku zakończonego okresu ze znacznikiem pierwszego. Między 2 016 blokami jest 2 015 odstępów; reguły zachowują tę historyczną osobliwość. Znaczniki czasu wpisują górnicy w granicach zasad sieci. Nie są to dokładne pomiary chwili znalezienia bloku ani Median Time Past, inna wartość czasu obliczana z poprzednich bloków. Ten szczegół nie jest potrzebny, by zrozumieć cel dostosowania, ale ma znaczenie przy dokładnym odtwarzaniu obliczeń. [1]

Strony internetowe często pokazują przewidywaną następną zmianę trudności. Dopóki okres trwa, dochodzą kolejne bloki i prognoza może się zmieniać. Zakończone przeliczenie można sprawdzić na własnym węźle: porównać czasy bloków na krańcach okresu, zamienić ich nBits na liczbowe wartości target i powtórzyć obliczenie wraz z ograniczeniami i zaokrągleniem. Każdy Full Node, czyli węzeł samodzielnie weryfikujący zasady Bitcoina, sprawdza wymagany target przy przyjmowaniu bloku. Ten opis dotyczy mainnetu; sieci testowe mogą mieć inne zasady. [1] [2]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Proof of Work, Wydobywanie, Timechain / Blockchain, Block Subsidy. Do tego hasła prowadzą również odsyłacze z Timechain / Blockchain, Proof of Work, Wydobywanie, Halving.

DOC · 001Bitcoin Core v29.0: retargetŹródło pierwotne DOC · 002Bitcoin Core v29.0: network parametersŹródło pierwotne DOC · 003Bitcoin Developer Guide — Proof of Work and difficultyŹródło pierwotne
Zaktualizowano: Najpierw źródła · To nie jest porada inwestycyjna