Hashrate to szybkość obliczeń wydobywczych. Każda próba daje hash, wynik liczbowy porównywany z warunkiem znalezienia bloku. Większy Hashrate oznacza więcej prób w tym samym czasie, a nie pewną liczbę bloków czy gwarantowany zysk. Wydajność urządzenia, oszacowanie poola i oszacowanie sieci trzeba rozróżniać.
Anna uruchamia ASIC Miner, komputer przeznaczony do wydobycia Bitcoina, i widzi 100 TH/s. Liczba nie mówi, ile bitcoinów zarobi. Oznacza około 100 bilionów prób na sekundę. Każda może przypadkiem spełnić warunek znalezienia bloku; prawie żadna go nie spełnia. Ten sposób wykazywania pracy obliczeniowej nazywa się Proof of Work. Urządzenie o wydajności 200 TH/s wykonywałoby około dwukrotnie więcej prób w tym samym czasie. Nie zwiększa to szansy pojedynczej próby ani nie obiecuje dokładnie dwukrotnie większego zarobku co miesiąc. Liczą się też trudność, konkurencja, przypadek i koszty. Hashrate opisuje tempo pracy, nie wynik finansowy. Skróty zastępują wielkie liczby: H/s to próby na sekundę, 1 TH/s to bilion prób na sekundę, 1 PH/s to 1 000 TH/s, a 1 EH/s to 1 000 PH/s. Porównanie zacznij więc od sprawdzenia jednostki. [3] [7]
Prawdopodobieństwo nie jest terminarzem wygranych. Wariancja jest statystyczną miarą rozrzutu wyników wokół wartości oczekiwanej. Tutaj opisuje wahania wynikające z losowego znajdowania bloków. Przy tej samej trudności oczekiwana częstotliwość bloków rośnie w przybliżeniu proporcjonalnie do Hashrate, lecz pojedyncze odkrycia pozostają losowe. Górnik mający 1 % całkowitego Hashrate ma około 1 % szans na znalezienie następnego bloku, a nie gwarancję jednego bloku na sto. Ta wariancja wyjaśnia zarówno istnienie pooli, jak i wahania wykresów krótkoterminowych. [7]
Anna porównuje ekran koparki z kontem w Mining Pool, usłudze koordynującej wielu górników. Wartości mogą być różne. Urządzenie podaje własną wydajność obliczeń, natomiast pool szacuje ją z zaakceptowanych shares i ich trudności. Share to sprawdzalny wynik spełniający łatwiejszy warunek poola: dokumentuje pracę, ale zwykle nie jest nowym blokiem. Ich liczba losowo się waha. Przerwy połączenia i odrzucone wyniki mogą powiększyć różnicę. Wykres Hashrate całej sieci powstaje jeszcze inaczej. Nikt nie ma miernika podłączonego do wszystkich koparek świata. Obserwator widzi znalezione bloki, ich trudność i dane czasowe, po czym szacuje tempo wydobycia. Krótka seria szybkich bloków może podnieść oszacowanie bez rzeczywistego wzrostu mocy. Dłuższy okres wygładza przypadkowe wahania, ale wolniej pokazuje faktyczne zmiany. [3]
Anna czyta o gwałtownym spadku Hashrate sieci. Zanim uzna, że koparki masowo się wyłączają, sprawdza źródło, jednostkę i okno pomiarowe, czyli okres uwzględniony w oszacowaniu. Krótkie okno może pokazywać głównie przypadkową serię wolniejszych bloków. Prawdziwa awaria też jest możliwa, ale pojedynczy punkt jej nie dowodzi. Warto porównać dłuższe okresy i inne dane. Dla własnego urządzenia Anna może zestawić wskazanie ASIC z oszacowaniem poola z odpowiednio długiego okresu, sprawdzić odrzucone shares i połączenie. Dla sieci Bitcoin Core udostępnia polecenie getnetworkhashps: zwraca ono oszacowanie, nie bezpośredni pomiar. Do porównania trzeba znać okno, trudność i znaczniki czasu bloków. Bez tego pozornie precyzyjna liczba mówi mniej, niż sugerują cyfry po przecinku. [1] [5] [6]
J/TH to energia w dżulach na bilion prób. Niższa wartość oznacza wydajniejsze obliczenia, niekoniecznie mniejszy rachunek całego obiektu. Z samego Hashrate nie można wyznaczyć zużycia energii elektrycznej. Pobór mocy zależy od efektywności energetycznej danej generacji ASIC w J/TH, ustawień napięcia i częstotliwości, chłodzenia oraz urządzeń pomocniczych. Ta sama wydajność w EH/s przy innej efektywności może wymagać znacznie innego poboru mocy elektrycznej. [9]
Mainnet to główna sieć Bitcoin. Korekta trudności ma zbliżać długoterminową średnią do jednego bloku co dziesięć minut; znacznik czasu to czas zapisany w bloku. Na mainnecie target jest przeliczany co 2 016 bloków, z docelowym okresem dwóch tygodni, w granicach dozwolonych przez protokół. Dwa tygodnie to cel, a nie stały termin kalendarzowy. Po nagłym wzroście Hashrate bloki zwykle pojawiają się szybciej do następnej korekty, a po spadku wolniej. Bitcoin nie mierzy Hashrate bezpośrednio, lecz reaguje na znaczniki czasu bloków. [2] [4]
Szybkość urządzenia i surowość warunku są odrębne. Koparka może liczyć tak samo szybko, choć znalezienie bloku staje się trudniejsze. Target to najwyższa dozwolona wartość hasha Proof of Work. Difficulty wyraża względną trudność spełnienia tego targetu w stosunku do trudności referencyjnej. Niższy target oznacza więcej oczekiwanych prób. Hashrate opisuje szybkość prób; trudność wyraża oczekiwaną pracę potrzebną do spełnienia warunku Proof of Work, a nie spełnienie wszystkich pozostałych reguł poprawności bloku. [2] [8]
Potwierdzenie oznacza, że płatność trafiła do bloku, za którym mogą już iść kolejne. Chainwork nie liczy obserwowanych prób wszystkich maszyn, lecz wyprowadza pracę z trudności znalezionych bloków. Hashrate jest szybkością pracy, natomiast chainwork to skumulowana oczekiwana praca reprezentowana przez bloki danej gałęzi. Kolejne potwierdzenia zwiększają odporność historii, ponieważ jej zastąpienie wymaga utworzenia poprawnej konkurencyjnej gałęzi o większej skumulowanej pracy. Dzisiejsza zmiana Hashrate nie zmienia wstecznie chainwork starszych bloków. [7] [8]
Reorg zmienia przyjętą gałąź historii. Full Node to program samodzielnie sprawdzający bloki i transakcje zgodnie z regułami Bitcoina; potężny górnik nie zmienia jego kontroli. Wyższy Hashrate zwiększa prawdopodobieństwo, że górnik przedłuży własną gałąź. Kontrola nad większością Hashrate sieci znacznie zwiększa zdolność do cenzurowania transakcji lub przeprowadzenia głębokiego Reorg, ale nie może uczynić poprawnym bloku naruszającego reguły konsensusu danego węzła. Moc haszująca wpływa na wybór między poprawnymi historiami; reguły poprawności niezależnie egzekwują węzły Full Node. [4] [7]
Szczegóły techniczne: nagłówek zwięźle opisuje blok. Nonce jest zmienianą w nim liczbą, Extranonce dodatkową zmienianą wartością w transakcji nagrody, a Merkle Root odciskiem podsumowującym transakcje. Pola version i nTime określają wersję i znacznik czasu. 1 H/s oznacza jedną próbę uzyskania hasha Proof of Work na sekundę. Bitcoin oblicza double-SHA-256 dla 80-bajtowego nagłówka bloku. Górnik zmienia Nonce, Merkle Root za pośrednictwem Extranonce w transakcji coinbase albo pola version i nTime w dozwolonych granicach. Wyższy Hashrate oznacza więcej niezależnych prób w jednostce czasu, a nie większe prawdopodobieństwo sukcesu pojedynczej próby. [3] [4]
RPC to interfejs pozwalający pytać węzeł o dane. Liczy się tu metoda obliczeń, nie odczyt światowego licznika. RPC getnetworkhashps w Bitcoin Core zwraca oszacowanie liczby hashy na sekundę na podstawie ostatnich bloków. Implementacja dzieli przyrost skumulowanej pracy przez różnicę między najwyższym a najniższym znacznikiem czasu bloków w wybranej próbce. Domyślne okno wynosi 120 bloków; parametr nblocks o wartości -1 wybiera okres od ostatniej zmiany trudności. Krótsze okno reaguje szybciej, ale silniej waha się pod wpływem przypadku. [1] [5]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Wydobywanie, ASIC Miner, Difficulty Adjustment, Proof of Work, Hashprice, Bitcoin. Do tego hasła prowadzą również odsyłacze z ASIC Miner, Mining Pool, Selfish Mining, Solo Mining.