Dificultate

Vezi și: target

Ce este „dificultate”?

Dificultatea este o măsură a cât de dificil este să găsești un hash sub un țintă dată.

Rețeaua Bitcoin are o dificultate globală de blocare. Blocurile valide trebuie să aibă un hash sub această țintă. Grupurile miniere au, de asemenea, o dificultate de partajare specifică grupului, stabilind o limită inferioară pentru partajări.

Cât de des se schimbă dificultatea rețelei?

Fiecare 2016 blocuri.

Care este formula pentru dificultate?

difficult = difficult_1_target / current_target

(ținta este un număr de 256 biți)

dificultate_1_target poate fi diferită pentru diferite moduri de măsurare a dificultății. În mod tradițional, reprezintă un hash în care cei 32 de biți de frunte sunt zero și restul sunt unul (acest lucru este cunoscut sub numele de „dificultate în piscină” sau „pdiff”). Protocolul Bitcoin reprezintă ținte ca tip personalizat cu virgulă mobilă cu precizie limitată; ca urmare, clienții Bitcoin deseori aproximează dificultățile pe baza acestui fapt (acest lucru este cunoscut sub numele de „bdiff”).

Cum este stocată dificultatea în blocuri?

Fiecare bloc stochează o reprezentare ambalată ( numit „Biți”) pentru ținta sa hexadecimală reală. Ținta poate fi derivată din aceasta printr-o formulă predefinită. De exemplu, dacă ținta împachetată în bloc este 0x1b0404cb (stocată în ordine puțin endiană: cb 04 04 1b), ținta hexazecimală este

0x0404cb * 2**(8*(0x1b - 3)) = 0x00000000000404CB000000000000000000000000000000000000000000000000

Rețineți că acest format ambalat conține un bit de semn în al 24-lea bit și, de exemplu, negarea țintei de mai sus ar fi 0x1b8404cb în format ambalat. Deoarece țintele nu sunt niciodată negative în practică, totuși, aceasta înseamnă că cea mai mare valoare legală pentru cei 24 de biți inferiori este 0x7fffff. În plus, 0x008000 este cea mai mică valoare legală pentru cei 24 de biți inferiori, deoarece țintele sunt întotdeauna stocate cu cel mai mic exponent posibil.

Cum se calculează dificultatea? Care este diferența dintre bdiff și pdiff?

Cea mai mare țintă posibilă (dificultatea 1) este definită ca 0x1d00ffff, ceea ce ne oferă o țintă hexagonală de

0x00ffff * 2**(8*(0x1d - 3)) = 0x00000000FFFF0000000000000000000000000000000000000000000000000000

Trebuie remarcat faptul că exploatarea combinată folosește adesea ținte netrunchiate, ceea ce plasează „dificultatea pool 1” la

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Deci dificultatea la 0x1b0404cb este deci:

0x00000000FFFF0000000000000000000000000000000000000000000000000000 /0x00000000000404CB000000000000000000000000000000000000000000000000 = 16307.420938523983 (bdiff)

Și:

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF /0x00000000000404CB000000000000000000000000000000000000000000000000 = 16307.669773817162 (pdiff)

Aici „este o modalitate rapidă de a calculează dificultatea bitcoin. Folosește o serie Taylor modificată pentru logaritm (puteți vedea tutoriale pe flipcode și wikipedia) și se bazează pe jurnale pentru a transforma calculul dificultății:

Pentru a vedea matematica pentru a trece de la dificultatea normală calcule (care necesită mari mari inți mai mari decât spațiul din orice număr întreg normal) la calculul de mai sus, aici sunt niște python:

Care este dificultatea actuală?

Dificultatea actuală, ca rezultat al getDifficulty din Bitcoin.

Grafice

Care este maxima um dificultate?

Nu există o țintă minimă. Dificultatea maximă este aproximativ: maximum_target / 1 (deoarece 0 ar duce la infinit), care este un număr ridicol de mare (aproximativ 2 ^ 224).

Dificultatea maximă reală este atunci când current_target = 0, dar noi nu ar putea calcula dificultatea dacă s-ar întâmpla asta. (din fericire nu se va întâmpla niciodată, așa că „suntem ok.)

Poate că dificultatea rețelei să scadă?

Da se poate. Vedeți discuția în țintă.

Care este dificultatea minimă?

Dificultatea minimă, atunci când ținta este la valoarea maximă permisă, este 1.

Ce rata hash de rețea are ca rezultat o anumită dificultate?

Dificultatea este ajustată la fiecare blocuri 2016 în funcție de timpul necesar pentru a găsi blocurile anterioare 2016. La rata dorită de un bloc la fiecare 10 minute, blocurile 2016 ar dura exact două săptămâni pentru a fi găsite. Dacă blocurile anterioare din 2016 a durat mai mult de două săptămâni pentru a găsi, dificultatea este redusă. Dacă au durat mai puțin de două săptămâni, dificultatea este crescută. .

Pentru a găsi un bloc, hash-ul trebuie să fie mai mic decât ținta. Hash-ul este efectiv un număr aleatoriu între 0 și 2 ** 256-1. Decalajul pentru dificultatea 1 este

0xffff * 2**208

și pentru dificultatea D este

(0xffff * 2**208)/D

Numărul așteptat de hashuri pe care trebuie să îl calculăm pentru a găsi un bloc cu dificultate D este, prin urmare,

D * 2**256 / (0xffff * 2**208)

sau doar

D * 2**48 / 0xffff

Dificultatea este setată astfel încât blocurile anterioare din 2016 ar fi fost găsit la o rată de la fiecare 10 minute, așa că am calculat (D * 2 ** 48 / 0xffff) hashuri în 600 de secunde. Asta înseamnă că rata hash a rețelei a fost

D * 2**48 / 0xffff / 600

față de blocurile anterioare din 2016. Poate fi simplificat în continuare la

D * 2**32 / 600

fără prea multe pierderi de precizie.

La dificultatea 1, adică aproximativ 7 Mhashes pe secundă.

La momentul scrierii, dificultatea este 22012.4941572, ceea ce înseamnă că peste setul anterior de blocuri 2016 găsite, rata medie de hash a rețelei a fost

22012.4941572 * 2**32 / 600 = around 157 Ghashes per second.

Cât de curând m-aș putea aștepta să generez un bloc?

(Întrebarea eternă.)

Timpul mediu pentru găsirea unui bloc poate fi aproximat prin calcularea:

time = difficulty * 2**32 / hashrate

unde dificultatea este dificultatea actuală, hashrate este numărul de hashuri pe care minerul le calculează pe secundă, iar timpul este media în secunde între blocurile pe care le găsiți.

De exemplu, folosind Python calculăm timpul mediu până la generați un bloc folosind un dispozitiv de exploatare minieră 1Ghash / s când dificultatea este de 20000:

$ python -c "print 20000 * 2**32 / 10**9 / 60 / 60.0"23.85

și constatați că durează în medie puțin mai puțin de 24 de ore.

  • Orice măcinare a hash-ului are aceeași șansă de a „câștiga” ca oricare alta. Jocul cu numere este numărul de încercări pe care le poate face hardware-ul dvs. pe secundă.
  • Trebuie să cunoașteți dificultatea (de mai sus) și rata de khash / sec (raportată de client).
    • Exploatarea minieră Comparația hardware conține câteva statistici care vă pot ajuta să preziceți ce puteți obține.
  • Accesați un calculator sau efectuați singuri calculele,
    • http://www.alloscomp.com/bitcoin/calculator.php
    • http://www.vnbitcoin.org/bitcoincalculator.php
    • https://bitknock.com/calculator
  • Amintiți-vă că este doar probabilitate! Nu există garanții că veți câștiga la fiecare N zile.

Linkuri conexe

  • Istoricul dificultăților Bitcoin
  • Ce este dificultatea minării Bitcoin?
  • Vezi și: target

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *