Viz také: cíl
Co je „obtížnost“?
Obtížnost je měřítkem toho, jak obtížné je najít hash pod a daný cíl.
Síť bitcoinů má globální obtížnost blokování. Platné bloky musí mít pod tímto cílem hodnotu hash. Těžařské fondy mají také obtížnost sdílení pro konkrétní fond, která stanoví nižší limit pro sdílení.
Jak často se mění obtížnost sítě?
Každý Bloky z roku 2016.
Jaký je vzorec pro obtížnost?
obtížnost = obtížnost_1_cíl / aktuální_cíl
(cíl je 256bitové číslo)
obtížnost_1_cíl se může pro různé způsoby měření obtížnosti lišit. Tradičně představuje hash, kde je prvních 32 bitů nula a zbytek je jedna (toto je známé jako „obtížnost fondu“ nebo „pdiff“). Protokol Bitcoin představuje cíle jako vlastní typ s plovoucí desetinnou čárkou s omezenou přesností; výsledkem je, že bitcoinoví klienti na základě toho často přibližují obtížnost (toto se nazývá „bdiff“).
Jak se obtížnost ukládá do bloků?
Každý blok ukládá zabalenou reprezentaci ( „Bity“) pro jeho skutečný hexadecimální cíl. Cíl lze z něj odvodit pomocí předdefinovaného vzorce. Pokud je například zabalený cíl v bloku 0x1b0404cb (uložen v pořadí malého endianu: cb 04 04 1b
), je hexadecimální cíl
0x0404cb * 2**(8*(0x1b - 3)) = 0x00000000000404CB000000000000000000000000000000000000000000000000
Všimněte si, že tento zabalený formát obsahuje bit znaménka ve 24. bitu a například negace výše uvedeného cíle bude 0x1b8404cb v zabaleném formátu. Jelikož cíle nejsou v praxi nikdy negativní, znamená to, že největší legální hodnota pro 24 bitů je 0x7fffff. Navíc 0x008000 je nejmenší legální hodnota pro spodních 24 bitů, protože cíle jsou vždy uloženy s nejnižším možným exponentem.
Jak se počítá obtížnost? Jaký je rozdíl mezi bdiff a pdiff?
Nejvyšší možný cíl (obtížnost 1) je definován jako 0x1d00ffff, což nám dává hexadecimální cíl
0x00ffff * 2**(8*(0x1d - 3)) = 0x00000000FFFF0000000000000000000000000000000000000000000000000000
Je třeba poznamenat, že sdružená těžba často používá nezkrácené cíle, což staví „obtížnost fondu 1“ na
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Takže obtížnost na 0x1b0404cb je tedy:
0x00000000FFFF0000000000000000000000000000000000000000000000000000 /0x00000000000404CB000000000000000000000000000000000000000000000000 = 16307.420938523983 (bdiff)
A:
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF /0x00000000000404CB000000000000000000000000000000000000000000000000 = 16307.669773817162 (pdiff)
Tady je rychlý způsob, jak vypočítat obtížnost bitcoinu. Pro logaritmus používá upravenou Taylorovu řadu (můžete vidět výukové programy pro flipcode a wikipedia) a při transformaci výpočtu obtížnosti se spoléhá na protokoly:
Chcete-li zobrazit matematiku, která má přejít od běžné obtížnosti výpočty (které vyžadují velké velké ints větší než prostor v jakémkoli normálním celém čísle) k výpočtu výše, zde je nějaký python:
Jaká je aktuální obtížnost?
Aktuální obtížnost, jako výstup bitcoinové getDifficulty.
Grafy
Jaká je maxima um potíže?
Neexistuje žádný minimální cíl. Maximální obtížnost je zhruba: maximum_target / 1 (protože 0 by vedlo k nekonečnu), což je směšně obrovské číslo (asi 2 ^ 224).
Skutečná maximální obtížnost je, když current_target = 0, ale my pokud by se to stalo, nebylo by možné vypočítat obtížnost. (naštěstí to nikdy nebude, takže jsme v pořádku.)
Může síťová obtíž klesnout?
Ano, může. Viz diskuse v cíli.
Jaká je minimální obtížnost?
Minimální obtížnost, když je cíl na maximální povolené hodnotě, je 1.
Jaká síťová hash rychlost má za následek danou obtížnost?
Obtížnost se upravuje každých 2016 bloků na základě času potřebného k nalezení předchozích bloků z roku 2016. Při požadované rychlosti jednoho bloku každých 10 minut by hledání bloků z roku 2016 trvalo přesně dva týdny. Pokud by předchozí bloky z roku 2016 hledání trvalo déle než dva týdny, obtížnost se sníží. Pokud trvaly méně než dva týdny, obtížnost se zvýší. Změna obtížnosti je úměrná množství času trvajícího nebo méně než dva týdny, než předchozí bloky 2016 .
Chcete-li najít blok, hodnota hash musí být menší než cíl. Hodnota hash je ve skutečnosti náhodné číslo mezi 0 a 2 ** 256-1. Posun pro obtížnost 1 je
0xffff * 2**208
a pro obtížnost D je
(0xffff * 2**208)/D
Očekávaný počet hashů, které musíme vypočítat, abychom našli blok s obtížností D, je tedy
D * 2**256 / (0xffff * 2**208)
nebo jen
D * 2**48 / 0xffff
Obtížnost je nastavena tak, že předchozí bloky 2016 by byly našel rychlostí jednoho každých 10 minut, takže jsme vypočítali (D * 2 ** 48 / 0xffff) hashe za 600 sekund. To znamená, že hašovací rychlost sítě byla
D * 2**48 / 0xffff / 600
v porovnání s předchozími bloky roku 2016. Lze jej dále zjednodušit na
D * 2**32 / 600
bez velké ztráty přesnosti.
Při obtížnosti 1 je to zhruba 7 Mhash za sekundu.
V době psaní tohoto článku je obtížnost 22012.4941572, což znamená, že v porovnání s předchozí sadou bloků z roku 2016 byla průměrná hašovací rychlost sítě
22012.4941572 * 2**32 / 600 = around 157 Ghashes per second.
Jak brzy mohu očekávat vygenerování bloku?
(Věčná otázka.)
Průměrnou dobu nalezení bloku lze odhadnout výpočtem:
time = difficulty * 2**32 / hashrate
kde obtížnost je aktuální obtížnost, hashrate je počet hashů, které váš miner vypočítá za sekundu, a čas je průměr v sekundách mezi bloky, které najdete.
Například pomocí Pythonu vypočítáme průměrný čas do vygenerujte blok pomocí těžební soupravy 1Ghash / s, když je obtížnost 20000:
$ python -c "print 20000 * 2**32 / 10**9 / 60 / 60.0"23.85
a zjistěte, že to v průměru trvá necelých 24 hodin.
- Kdokoli, kdo brousí hash, má stejnou šanci na „výhru“ jako kterýkoli jiný. Hra s čísly určuje, kolik pokusů může váš hardware provést za sekundu.
- Musíte znát obtížnost (výše) a vaši rychlost khash / s (nahlášenou klientem).
- Těžba Porovnání hardwaru obsahuje některé statistiky, které vám mohou pomoci předpovědět, co byste mohli získat.
- Navštivte kalkulačku nebo si sami proveďte matematiku,
- http://www.alloscomp.com/bitcoin/calculator.php
- http://www.vnbitcoin.org/bitcoincalculator.php
- https://bitknock.com/calculator
- Pamatujte, že je to jen pravděpodobnost! Neexistují žádné záruky, že vyhrajete každých N dní.
Související odkazy
- Historie obtížnosti bitcoinů
- Co je obtížnost těžby bitcoinů?
- Viz také: cíl