Buongiorno ragazzi,
ho un dubbio sul tempo della creazioni dei blocchi...
Se ho ben capito nella blockchain BTC i ndoi creano un blocco ogni 10 minuti, ma se vado su blockchain.info noto che l'age tra i vari blocchi non è di 10 minuti... a volte di meno a volte di piu
Ad esempio tra il blocco 535760 e 535761 ci sono piu di 10 minuti.
Come è da interpretare?
Ciao,
l'intervallo tra i blocchi di bitcoin pari a 10 minuti è da intendersi in senso statistico: nel white paper Satoshi Nakamoto aveva previsto che quello dovesse essere l’intervallo medio tra due blocchi consecutivi.
Una dei più grandi fraintendimenti riguardo al bitcoin è però che chi cerca di mantenere la Blockchain “minando I blocchi” ex ottenendo la relativa ricompensa, esegua dei calcoli complicatissimi. In realtà la funzione di hash è davvero molto semplice e potrebbe essere davvero eseguita a mano (Non ci credete? Ecco qui:https://youtu.be/y3dqhixzGVo ). Essendo molto semplice la funzione di hash, il tempo di ricerca del blocco “fortunato” ovvero quello con quel numero di zeri iniziale stabilito nel livello di difficoltà di bitcoin, deriva sostanzialmente dal numero di tentativi fatti ogni secondo (hash/sec) quindi deriva sostanzialmente dalla potenza di calcolo dei miner. Ogni miner ha la stessa probabilità di minare il blocco: la differenza sta quindi solo nel numero di tentativi fatti ogni secondo: più il l’hardware del miner è efficiente, più tentativi al secondo fa, più probabilità avrà il miner di trovare l’hash “fortunato”. Fai conto che a momento siamo a circa 70 ExaHash al secondo: vuoi l’idre che ogni secondo sono fatti 70 miliardi di tentativi per risolvere il problema.
Ecco un grafico dell’hashrate di bitcoin:
https://data.bitcoinity.org/bitcoin/hashrate/6m?c=m&g=15&t=aMa se il numero di tentativi è aumentato cosi esponenzialmente, perché i blocchi arrivano fornamentalmente ancora ogni 10 minuti? Perché già nel whitepaper (lettura che consiglio davvero di fare al più presto)SN aveva previsto di modificare la “difficoltà” di Bitcoin, in modo che in media i blocchi mantenessero sempre un intervallo di 10 minuti.
Ogni 2016 blocchi (all, incirca ogni due settimane quindi che contengono 2016*10 minuti) il protocollo analizza il tempo di generazione medio dei blocchi ed aumenta la difficoltà se il tempo era inferiore ax10 minuti, ol la diminusce se superiore a 10 minuti.
Ecco un grafico della difficoltà di bitcoin:
https://data.bitcoinity.org/bitcoin/difficulty/5y?r=day&t=lOgni volta checè aumentata era perché la potenza di calcolo dei miner eraxaunentata (più miner o più efficienti) ed ogni volta che è scesa era perché la potenza di calcolo era diminuita (dopo il fork di BCH o dopo gli halving della coin base, la ricompensa dei miner, ad esempio).
A questo punto però qualcuno potrebbe chiedersi:”perché aggiustare la difficolta ogni due settimane?Non sarebbe meglio aggiustarla istantaneamente per avere sempre una distanza dei blocchi di 10minuti?”
Beh, la risposta è no almeno per due ragioni:
1- la potenza di mining fluttua incessantemente: anche ad aggiustare la difficoltà di blocco vista la “casualità “ della funzione e le fluttuazioni della potenza di mining si avrebbero swing enormi ingiustificati.
2- difesa dai fork: chi volesse forkare la Blockchain di bitcoin dovrebbe ereditarne anche la difficoltà, in caso di potenza di hash non sufficiente avrebbe quindi serissime difficoltà fini al primo aggiustamento di difficoltà. Per questo tutto i fork da BCh in poi (che comunque aveva un bastare pari al 10% ed ancora un po’ moriva) sono previsti dei meccanismi di aggiustamento di emergenza che in BTC non sono previsti.
Spero di essere stato chiaro, aver detto cose corrette ed averti stimolato a studiare di più il BTC!
RR