Difficoltà nel mining

La difficoltà è un valore utilizzato per mostrare quanto sia difficile trovare un hash che sarà inferiore al target definito dal sistema.

La rete Bitcoin ha una difficoltà di blocco globale. I blocchi validi devono avere un hash al di sotto di questo obiettivo. I pool di mining hanno anche una difficoltà di condivisione specifica del pool che imposta un limite inferiore per le condivisioni.

Difficoltà di mining di Bitcoin

Nella rete Bitcoin è impostata la difficoltà globale per tutti i blocchi. Per block to essere considerato legittimo deve avere un valore hash inferiore al target impostato.

Mappa delle difficoltà di mining di criptovaluta

La difficoltà cambia ogni blocchi del 2016. Questa viene calcolata utilizzando la seguente formula:

dove l’obiettivo è un numero a 256 bit.

Difficulty_1_target può richiedere diversi Tradizionalmente è “una funzione hash i cui primi 32 bit sono uguali a 0 mentre tutti gli altri sono 1 (è anche chiamata pdiff o pool difficoltà). Il protocollo Bitcoin fornisce il target come tipo con virgola mobile e precisione limitata. Diversi client Bitcoin spesso determinano la difficoltà della criptovaluta in base a questi dati.

Memorizzazione della difficoltà della criptovaluta in blocchi

Ogni blocco contiene una versione compressa (chiamata “Bits”) di target esadecimale.

L’utilizzo della seguente formula target può essere ottenuto da qualsiasi blocco. Ad esempio, se un obiettivo racchiuso in un blocco appare come 0x1b0404cb, la sua versione esadecimale avrà il seguente aspetto:

Il valore massimo per questo campo è 0x7fffff mentre il minimo è 0x008000.

Target massimo possibile ( con difficoltà uguale a 1) è definito come 0x1d00ffff che appare come segue in numerazione esadecimale:

Next è un modo semplice di calcolo della difficoltà. Utilizza una versione modificata della serie di Taylor in logaritmo e si basa sui log per trasformare il calcolo della difficoltà.

Difficoltà massima, attuale e minima

La difficoltà attuale può essere scoperto utilizzando la riga di comando di Bitcoin “getDifficulty”.

A causa della funzione target che non ha un valore minimo, la massima difficoltà può essere calcolata solo approssimativamente come segue: maximum_target / 1 (poiché 0 porterebbe l’equazione ad essere infinitamente grande ) che è un numero incredibile (da ~ 2 a 224).

La difficoltà minima è appena uguale a 1.

Cambiamenti di difficoltà

La difficoltà viene cambiata ogni 2016 blocchi in base al tempo impiegato per scoprire i blocchi precedenti del 2016. Se un blocco viene trovato ogni 10 minuti (come inizialmente previsto per l’emissione uniforme) per trovare i blocchi del 2016 ci vorranno esattamente 2 settimane. Se i blocchi precedenti del 2016 sono stati trovati in più di due settimane, la difficoltà di mining di criptovaluta verrà ridotta e se sono stati estratti più velocemente, verrà aumentata. Più tempo è stato speso (o meno) per trovare i blocchi precedenti del 2016, maggiore sarà la difficoltà ad abbassare (aumentare).

Per minare un hash di blocco deve essere inferiore a targer (proof-of-work) . L’hash è un numero casuale compreso tra 0 e 2 * 256-1.

La difficoltà è impostata come se avessimo trovato blocchi precedenti del 2016 alla velocità di un blocco ogni 10 minuti

Tempo medio di trovare un singolo blocco può essere calcolato utilizzando questa formula: tempo = difficoltà * 2 ** 32 / hashrate dove “difficoltà” è l’attuale livello di difficoltà della criptovaluta della rete di difficoltà BTC e “hashrate” è la quantità di hash che un minatore trova al secondo.

Qual è l’attuale difficoltà?

Difficoltà attuale online, come output di getDifficulty di Bitcoin.

Grafico difficoltà Bitcoin

Qual è la difficoltà massima?

Lì non è un obiettivo minimo. La difficoltà massima è approssimativamente: maximum_target / 1 (poiché 0 risulterebbe in infinito), che è un numero ridicolmente enorme (circa 2 ^ 224).

La difficoltà massima effettiva è quando current_target = 0, ma non saremmo in grado di calcolare la difficoltà se ciò accadesse. (Fortunatamente non lo farà mai, quindi siamo a posto.)

La difficoltà di rete può diminuire?

Sì, è possibile.

Qual è la difficoltà minima di BTC?

La difficoltà minima, quando l’obiettivo è al valore massimo consentito, è 1.

Quale tasso di hash di rete risulta in una data difficoltà?

La difficoltà viene modificata ogni 2016 blocchi in base al tempo impiegato per trovare i precedenti blocchi 2016. Alla velocità desiderata di un blocco ogni 10 minuti, i blocchi del 2016 impiegherebbero esattamente due settimane per essere trovati. Se i precedenti blocchi del 2016 hanno richiesto più di due settimane per essere trovati, la difficoltà si riduce. Se hanno impiegato meno di due settimane, la difficoltà è aumentata. La variazione di difficoltà è proporzionale al tempo impiegato per trovare un blocco superiore o inferiore a due settimane dai precedenti blocchi del 2016.

Per trovare un blocco, l’hash deve essere inferiore all’obiettivo. L’hash è effettivamente un numero casuale compreso tra 0 e 2 ** 256-1.L’offset per la difficoltà 1 è

e per la difficoltà D è

Il numero atteso di hash che dobbiamo calcolare per trovare un blocco con difficoltà D è quindi

o semplicemente

La difficoltà è impostata in modo tale che i precedenti blocchi del 2016 sarebbero stati trovati al ritmo di uno ogni 10 minuti, quindi stavamo calcolando gli hash (D * 2 ** 48 / 0xffff) in 600 secondi . Ciò significa che il tasso di hash della rete era

rispetto ai precedenti blocchi del 2016. Può essere ulteriormente semplificato in

senza troppa perdita di precisione.

Alla difficoltà 1, si tratta di circa 7 Mhash al secondo.

Al momento della scrittura, la difficoltà è 22012.4941572, il che significa che nel precedente set di blocchi del 2016 il tasso di hash di rete medio era

Quanto presto potrei aspettarmi di generare un blocco?

(L’eterna domanda.)

Il tempo medio per trovare un blocco può essere approssimato calcolando:

dove la difficoltà è la difficoltà attuale, l’hashrate è la numero di hash che il tuo minatore calcola al secondo e il tempo è la media in secondi tra i blocchi che trovi.

Ad esempio, usando Python calcoliamo il tempo medio per generare un blocco usando un mining rig da 1Ghash / s quando la difficoltà è 20000:

e scopri che ci vogliono in media poco meno di 24 ore.

  • Qualsiasi macinatura dell’hash ha le stesse possibilità di “vincere” di qualsiasi altro. Il gioco dei numeri è quanti tentativi può fare il tuo hardware al secondo.
  • Devi conoscere la difficoltà (sopra) e il tuo tasso di khash / sec (riportato dal client).
    • Mining il confronto hardware ha alcune statistiche che possono aiutarti a prevedere cosa potresti ottenere.
  • Visita una calcolatrice o esegui tu stesso i calcoli,
    • http://www.alloscomp.com/bitcoin/calculator.php
    • http://www.vnbitcoin.org/bitcoincalculator.php
    • https://bitknock.com/calculator
  • Ricorda che è solo probabilità! Non ci sono garanzie che vincerai ogni N giorni.

Vedi anche

  • Prova di lavoro
  • Blocca
  • Elenco di criptovaluta
  • Conferma della transazione
  • Pool di mining

Write a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *