Che cosa è la Difficulty?
La Difficulty è una misura della complessità del processo di mining del Bitcoin. Per poter estrarre un blocco, i miner devono fornire la Proof-of-Work corretta, rappresentata da un hash valido del blocco che intendono pubblicare sulla blockchain. Un hash è un numero generato tramite una funzione hash crittografica, che deve essere inferiore a un certo numero target prefissato. Questo numero target determina la difficoltà del mining ed è definito dalle regole del protocollo Bitcoin.
La Difficulty del mining non è fissa, ma viene aggiornata ogni 2016 blocchi, circa ogni due settimane, per mantenere il tempo di creazione dei blocchi intorno ai 10 minuti. Se più miner si uniscono alla rete e la velocità di mining aumenta, la difficoltà viene aumentata. Al contrario, se i miner si ritirano e la velocità di mining diminuisce, la difficoltà viene ridotta. Questo sistema consente di mantenere la stabilità e la prevedibilità del processo di creazione dei blocchi nella rete Bitcoin.
Nel contesto tecnico, la rete Bitcoin stabilisce un obiettivo, rappresentato dal numero target. Tutte le Proof-of-Work valide devono essere inferiori a questo obiettivo. La Difficulty del mining, quindi, è semplicemente l’inverso del numero target. Aumentando il numero target, si rende più facile per i miner trovare un hash valido, abbassando così la Difficulty. Al contrario, riducendo il numero target, si aumenta la Difficulty del mining.
Il numero target viene codificato come parte dell’intestazione di ogni blocco ed è chiamato “bits” di un blocco. Questo consente ai nodi della rete di verificare direttamente se la Proof-of-Work fornita per un blocco è inferiore al numero target. Se la Proof-of-Workè valida, il blocco viene accettato e aggiunto alla blockchain.