gbianchi (OP)
Legendary
Offline
Activity: 3080
Merit: 2632
|
|
July 15, 2018, 09:49:10 PM |
|
In particolare negli ultimi 6 mesi, il consumo è passato prima da 35 a 56 TWh (+ 60% nei primi 3 mesi) e poi da 56 a 71 TWh (+ 27%) negli ultimi 3 mesi. Infine negli ultimi 10 giorni il consumo non è aumentato per nulla.
Vero pero' ho 2 considerazioni 1) se guardi storicamente, ci sono altri periodo ove il consumo temporaneamente stagna o cala, pero' poi riprende a crescere in modo ancora piu' ripido. 2) da qualche giorno il grafico a cui faccio riferimento deve avere dei problemi, perhce' il consumo rimane stabile in un modo estremamente sospetto, in quanto rimane ESATTAMENTE identico fino alla 14^ cifra decimale. Direi che la fonte dati si e' (spero temporaneamente) bloccata. purtroppo come temevo la fonte dati si e' bloccata, e' piatta da tanti giorni. Conoscente un altro sito cosi' ben fatto e sopratutto aggiornato?
|
|
|
|
|
|
|
|
|
The grue lurks in the darkest places of the earth. Its favorite diet is adventurers, but its insatiable appetite is tempered by its fear of light. No grue has ever been seen by the light of day, and few have survived its fearsome jaws to tell the tale.
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
|
July 16, 2018, 06:17:20 AM |
|
purtroppo come temevo la fonte dati si e' bloccata, e' piatta da tanti giorni. Conoscente un altro sito cosi' ben fatto e sopratutto aggiornato?
Non conosco altri siti, tieni conto però che ci sono grossi dubbi sulle stime di quel sito, ad esempio in questo articolo di 1 mese fa https://cryptobriefing.com/bitcoin-mining-energy-new-report/ si riportavano delle stime di consumo intorno ai 35 TWh contro i 70 TWh proposti dal sito. Secondo me si fa prima a rifare i due calcoli che hai fatto nel primo post, tenendo sotto controllo l'hash rate ( https://bitcoinwisdom.com/bitcoin/difficulty): se ipotizziamo 200 W per TH/s, essendo al momento l'hash rate 38,400,000 TH/s, si hanno 200 * 38.400.000 = 7.680.000.000 = 7,68 GW --> 7,68 GWh ogni ora --> 67 TWh all'anno nella migliore delle ipotesi, con 100 W per TH/s --> 34 TWh all'anno. Alla fine l'unico dato da tenere sott'occhio è quello dell'hash rate, l'efficienza non penso possa migliorare più di tanto. Un dato interessante: si stima che a fine maggio il costo marginale per minare 1 bitcoin fosse approssimativamente di 6400 dollari (sempre da https://cryptobriefing.com/bitcoin-mining-energy-new-report/), praticamente al momento i miner non stanno (in media) guadagnando a questo livello dei prezzi. Se quindi il prezzo del bitcoin dovesse ancora diminuire significativamente l'hashrate dovrebbe calare anch'esso (e sostanzialmente sarebbe la prima volta nella storia del bitcoin). Detta in altri termini: non sembra sostenibile economicamente, a prezzi del btc (e dell'energia) invariati, un ulteriore aumento dell'hash rate e del consumo di energia.
|
|
|
|
gbianchi (OP)
Legendary
Offline
Activity: 3080
Merit: 2632
|
|
July 16, 2018, 07:25:19 AM |
|
Alla fine l'unico dato da tenere sott'occhio è quello dell'hash rate, l'efficienza non penso possa migliorare più di tanto.
il post iniziale l'ho fatto diversi mesi fa. Credo che per la legge di moore anche dal punto di vista dell'efficenza da quella volta ad ora qualcosa dovrebbe essere migliorato. magari do' un'occhiata in giro se sono usciti nuovi miner piu' efficenti e faccio qualche nuova stima.
|
|
|
|
gbianchi (OP)
Legendary
Offline
Activity: 3080
Merit: 2632
|
|
July 16, 2018, 07:29:54 AM |
|
Un dato interessante: si stima che a fine maggio il costo marginale per minare 1 bitcoin fosse approssimativamente di 6400 dollari (sempre da https://cryptobriefing.com/bitcoin-mining-energy-new-report/), praticamente al momento i miner non stanno (in media) guadagnando a questo livello dei prezzi. Se quindi il prezzo del bitcoin dovesse ancora diminuire significativamente l'hashrate dovrebbe calare anch'esso (e sostanzialmente sarebbe la prima volta nella storia del bitcoin). se ricordo bene, verso il 2015, quando il prezzo e' rimasto basso e stagnante per piu' di un anno, l'hashrate a volte calava. e deve essere successo anche prima, anche se non ricordo piu' quando.
|
|
|
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
Piccolo OT: ho fatto un rapido confronto sul lavoro "immagazzinato" nelle blockchain di bitcoin e bitcoin cash. Al momento questo è il lavoro totale (chainwork) effettuato sulla catena principale delle due coin, rispettivamente: bitcoin: 00000000000000000000000000000000000000000260ccefd2f8cd41f8c62bdf
bitcoin cash: 000000000000000000000000000000000000000000b0ba26de941a55d93a27b7
Quindi il lavoro totale speso finora sulla catena principale di bitcoin è circa 3,5 volte il lavoro speso sulla catena di bitcoin cash. Ora, il tempo impiegato per riscrivere completamente la blockchain di bitcoin con l'hash rate attuale (di circa 3,6*10^19 hash/s) sarebbe di 236 giorni (che scendono a 200 se si considera un certo aumento dell'hash rate nei prossimi mesi, vedere la stima di Pieter Wuille negli ultimi 2 grafici di http://bitcoin.sipa.be/). Per bitcoin cash bisogna dividere quei valori per 3,5, e si ottengono rispettivamente 68 giorni e 57 giorni. In sostanza se tutti i miner decidessero di impiegare tutte le loro risorse per riscrivere da 0 tutta la storia decennale di bitcoin cash, basterebbero circa 2 mesi per farlo. Questo per dare una misura di quanto rapidamente sia aumentata la capacità computazionale della rete.
|
|
|
|
duesoldi
Legendary
Offline
Activity: 2562
Merit: 2640
|
|
July 16, 2018, 07:20:50 PM |
|
Piccolo OT:
OT ? vorrei leggerne più spesso di post come il tuo: complimenti, considerazione molto interessante !
|
|
|
|
jack0m
Legendary
Offline
Activity: 3612
Merit: 1988
|
|
July 17, 2018, 08:36:59 AM |
|
Piccolo OT: ho fatto un rapido confronto sul lavoro "immagazzinato" nelle blockchain di bitcoin e bitcoin cash. Al momento questo è il lavoro totale (chainwork) effettuato sulla catena principale delle due coin, rispettivamente: bitcoin: 00000000000000000000000000000000000000000260ccefd2f8cd41f8c62bdf
bitcoin cash: 000000000000000000000000000000000000000000b0ba26de941a55d93a27b7
Quindi il lavoro totale speso finora sulla catena principale di bitcoin è circa 3,5 volte il lavoro speso sulla catena di bitcoin cash. Ora, il tempo impiegato per riscrivere completamente la blockchain di bitcoin con l'hash rate attuale (di circa 3,6*10^19 hash/s) sarebbe di 236 giorni (che scendono a 200 se si considera un certo aumento dell'hash rate nei prossimi mesi, vedere la stima di Pieter Wuille negli ultimi 2 grafici di http://bitcoin.sipa.be/). Per bitcoin cash bisogna dividere quei valori per 3,5, e si ottengono rispettivamente 68 giorni e 57 giorni. In sostanza se tutti i miner decidessero di impiegare tutte le loro risorse per riscrivere da 0 tutta la storia decennale di bitcoin cash, basterebbero circa 2 mesi per farlo. Questo per dare una misura di quanto rapidamente sia aumentata la capacità computazionale della rete. estremamente interessante. Di preciso come viene calcolato questo lavoro complessivo a partire dalle hash di tutti i blocchi?
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
|
July 17, 2018, 09:21:22 AM Last edit: July 17, 2018, 10:00:17 AM by arulbero |
|
estremamente interessante. Di preciso come viene calcolato questo lavoro complessivo a partire dalle hash di tutti i blocchi?
Premessa: per estrarre le informazioni necessarie dall'ultimo blocco minato: http://chainquery.com/bitcoin-api/getbestblockhash --> 0000000000000000001d5dfa77309b5cf1b3ad6f9bdc054e20bcf1c9a72f81f8 http://chainquery.com/bitcoin-api/getblock/0000000000000000001d5dfa77309b5cf1b3ad6f9bdc054e20bcf1c9a72f81f8/true --> chainwork: 00000000000000000000000000000000000000000262adde7b8bef7777dd191c Consideriamo adesso i seguenti 3 blocchi appena minati: blocco 532264 --> chainwork: 00000000000000000000000000000000000000000262adde7b8bef7777dd191c blocco 532263 --> chainwork: 00000000000000000000000000000000000000000262a928b5fcb257fa874120 blocco 532262 --> chainwork: 00000000000000000000000000000000000000000262a472f06d75387d316924
Come si può facilmente verificare, il lavoro stimato (= numero di hash effettuati teoricamente per ottenere l'hash vincente) per minare il blocco 532263 = 0x262a928b5fcb257fa874120 - 0x262a472f06d75387d316924 = 0x4b5c58f3d1f7d55d7fc = 22242562272972607182844 hash (se dividi quel numero per 600 secondi trovi l'hash rate medio, in questo caso 22242562272972607182844 / 600 = 37 * 10^18 Hash/sec = 37 EH/sec, che è lo stesso numero esatto che trovi qui https://bitcoinwisdom.com/bitcoin/difficulty alla riga 17 luglio). La stessa quantità di lavoro viene attribuito alla creazione del blocco 532264 = 0x262adde7b8bef7777dd191c - 0x262a928b5fcb257fa874120 = 0x4b5c58f3d1f7d55d7fc, infatti possiamo immaginare la blockchain come suddivisa in gruppi di 2016 blocchi consecutivi (tra due retarget) ciascuno con lavoro costante, e da poco è stata aggiornata la difficoltà. Riassumendo: non viene considerato l'hash effettivo dei vari blocchi, ma solo il lavoro che in media era necessario fare per rispettare il target. Quindi se anche un blocco ha un hash molto al di sotto del target previsto, il suo apporto di "lavoro" alla blockchain sarà considerato sempre lo stesso. D'altronde il lavoro "reale" per minare un singolo blocco non è minimamente collegato all'hash finale con il quale viene minato (a volte si mina in pochi secondi, a volte ci possono volere delle ore). Sempre per curiosità, ho trovato questo storico riguardo la crescita della potenza computazionale della rete: 2009: 0.5 MH/sec – 8 MH/sec (16× growth) 2010: 8 MH/sec – 116 GH/sec (14,500× growth) 2011: 116 GH/sec – 9 TH/sec (78× growth) 2012: 9 TH/sec – 23 TH/sec (2.5× growth) 2013: 23 TH/sec – 10 PH/sec (450× growth) 2014: 10 PH/sec – 300 PH/sec (30× growth) 2015: 300 PH/sec – 800 PH/sec (2.66× growth) 2016: 800 PH/sec – 2.5 EH/sec (3.12x growth) 2017: 2.5 EH/sec - 13.8 EH/sec (5.52x growth) 2018: 13.8 EH/sec - 37 EH/sec (metà luglio, 2.68x growth)
(fonte: "Mastering Bitcoin" https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch10.asciidoc)
|
|
|
|
gbianchi (OP)
Legendary
Offline
Activity: 3080
Merit: 2632
|
|
July 17, 2018, 11:01:32 AM |
|
Alla fine l'unico dato da tenere sott'occhio è quello dell'hash rate, l'efficienza non penso possa migliorare più di tanto.
il post iniziale l'ho fatto diversi mesi fa. Credo che per la legge di moore anche dal punto di vista dell'efficenza da quella volta ad ora qualcosa dovrebbe essere migliorato. magari do' un'occhiata in giro se sono usciti nuovi miner piu' efficenti e faccio qualche nuova stima. quando feci il post a febbraio c'era il birtmain s9 con tecnologia 16 nm, e direi che da parte loro non ci sono grosse novita', siamo sempre sui 100W TH/s sembra che si affaccino altri produttori con tecnologie a 7 nm (GMO) ma comunque il rapporto migliora di poco, siamo nell'ordine di 80W TH/s un miglioramento di un "misero" 20%. forse un miglioramento potrebbe essere stato dal prograssivo "svecchiamento" delle macchine, ossia i miner piu' vecchi saranno stati sostituiti con miner piu' efficenti, quindi un piccolo miglioramento percentuale potrebbe derivare da questo fattore. C'e' comunque sempre da considerare che ogni 100W di consumo per il calcolo, ci saranno consumi collaterali per il raffreddamento, dispersioni eccetera. In definitiva, sicuramente non scenderei come stima di consumi attuali sotto i 150W per TH/s quindi 150 W per TH/s, essendo al momento l'hash rate (oggi leggermente in ribasso) 35.000.000 TH/s, si hanno 150 * 35.000.000 = 5.2500.000.000 = 5,25 GW --> 5,25 GWh ogni ora --> 46 TWh all'anno
|
|
|
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
|
July 17, 2018, 12:01:09 PM Last edit: July 17, 2018, 04:20:56 PM by arulbero |
|
.... In definitiva, sicuramente non scenderei come stima di consumi attuali sotto i 150W per TH/s
quindi
150 W per TH/s, essendo al momento l'hash rate (oggi leggermente in ribasso) 35.000.000 TH/s, si hanno 150 * 35.000.000 = 5.2500.000.000 = 5,25 GW --> 5,25 GWh ogni ora --> 46 TWh all'anno
Il sito https://digiconomist.net/bitcoin-energy-consumption come ultima stima utile dava 71 TWh, quindi direi che per adesso almeno come ordine di grandezza ci siamo. Secondo me l'efficienza massima per una singola macchina con il tempo migliorerà sempre di meno, ci sono dei limiti fisici. Quindi il consumo diventerà a regime direttamente proporzionale all'hash rate (almeno come ordine di grandezza, trascurando altri consumi collaterali). Guardando alla tabella dell'hash rate del mio post precedente, se ipotizziamo un 3x nel prossimo anno e un 2x in quello successivo, con un consumo medio di 120W per TH/s anzichè 150W (diamo per scontato comunque un miglioramento dell'efficienza rispetto ad oggi), si otterrebbe: 120 * 6 * 35.000.000 -> 220 TWh all'anno. Se è vero che oggi servono 6000 dollari a bitcoin per i 657000 bitcoin prodotti in un anno per pagare gli attuali 46 TWh (e le spese collaterali), moltiplicando per 5 il consumo energetico dovrebbero aumentare di conseguenza anche i costi (probabilmente un po' di meno, alcuni costi non sono direttamente proporzionali all'hash rate). Quindi a spanne diciamo che il prezzo del bitcoin dovrebbe aumentare almeno di un fattore x4 affinchè risulti economicamente redditizio questo aumento di hash rate (e senza considerare l'halving del 2020 che diminuirà notevolmente le entrate dei miner). Delle due l'una: o il prezzo del bitcoin sarà ben superiore ai 30k dollari (come si augurano molti), o il consumo di energia aumenterà ancora di meno, interrompendo definitivamente la crescita esponenziale che ha catatterizzato questo prima fase di vita del bitcoin.
|
|
|
|
jack0m
Legendary
Offline
Activity: 3612
Merit: 1988
|
|
July 17, 2018, 12:41:14 PM |
|
estremamente interessante. Di preciso come viene calcolato questo lavoro complessivo a partire dalle hash di tutti i blocchi?
Premessa: per estrarre le informazioni necessarie dall'ultimo blocco minato: http://chainquery.com/bitcoin-api/getbestblockhash --> 0000000000000000001d5dfa77309b5cf1b3ad6f9bdc054e20bcf1c9a72f81f8 http://chainquery.com/bitcoin-api/getblock/0000000000000000001d5dfa77309b5cf1b3ad6f9bdc054e20bcf1c9a72f81f8/true --> chainwork: 00000000000000000000000000000000000000000262adde7b8bef7777dd191c Consideriamo adesso i seguenti 3 blocchi appena minati: blocco 532264 --> chainwork: 00000000000000000000000000000000000000000262adde7b8bef7777dd191c blocco 532263 --> chainwork: 00000000000000000000000000000000000000000262a928b5fcb257fa874120 blocco 532262 --> chainwork: 00000000000000000000000000000000000000000262a472f06d75387d316924
Come si può facilmente verificare, il lavoro stimato (= numero di hash effettuati teoricamente per ottenere l'hash vincente) per minare il blocco 532263 = 0x262a928b5fcb257fa874120 - 0x262a472f06d75387d316924 = 0x4b5c58f3d1f7d55d7fc = 22242562272972607182844 hash (se dividi quel numero per 600 secondi trovi l'hash rate medio, in questo caso 22242562272972607182844 / 600 = 37 * 10^18 Hash/sec = 37 EH/sec, che è lo stesso numero esatto che trovi qui https://bitcoinwisdom.com/bitcoin/difficulty alla riga 17 luglio). La stessa quantità di lavoro viene attribuito alla creazione del blocco 532264 = 0x262adde7b8bef7777dd191c - 0x262a928b5fcb257fa874120 = 0x4b5c58f3d1f7d55d7fc, infatti possiamo immaginare la blockchain come suddivisa in gruppi di 2016 blocchi consecutivi (tra due retarget) ciascuno con lavoro costante, e da poco è stata aggiornata la difficoltà. Riassumendo: non viene considerato l'hash effettivo dei vari blocchi, ma solo il lavoro che in media era necessario fare per rispettare il target. Quindi se anche un blocco ha un hash molto al di sotto del target previsto, il suo apporto di "lavoro" alla blockchain sarà considerato sempre lo stesso. D'altronde il lavoro "reale" per minare un singolo blocco non è minimamente collegato all'hash finale con il quale viene minato (a volte si mina in pochi secondi, a volte ci possono volere delle ore). Sempre per curiosità, ho trovato questo storico riguardo la crescita della potenza computazionale della rete: 2009: 0.5 MH/sec – 8 MH/sec (16× growth) 2010: 8 MH/sec – 116 GH/sec (14,500× growth) 2011: 116 GH/sec – 9 TH/sec (78× growth) 2012: 9 TH/sec – 23 TH/sec (2.5× growth) 2013: 23 TH/sec – 10 PH/sec (450× growth) 2014: 10 PH/sec – 300 PH/sec (30× growth) 2015: 300 PH/sec – 800 PH/sec (2.66× growth) 2016: 800 PH/sec – 2.5 EH/sec (3.12x growth) 2017: 2.5 EH/sec - 13.8 EH/sec (5.52x growth) 2018: 13.8 EH/sec - 37 EH/sec (metà luglio, 2.68x growth)
(fonte: "Mastering Bitcoin" https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch10.asciidoc) ah ho capito, quindi è un valore indicativo dato dalla sommatoria su tutti i blocchi del numero teorico di hash provate per risolvere il pow di quel blocco. Non è detto che corrisponda al numero medio di hash da generare per riscrivere tutta la storia, anche se probabilmente torna come ordine di grandezza
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
|
July 17, 2018, 12:59:08 PM |
|
ah ho capito, quindi è un valore indicativo dato dalla sommatoria su tutti i blocchi del numero teorico di hash provate per risolvere il pow di quel blocco. Non è detto che corrisponda al numero medio di hash da generare per riscrivere tutta la storia, anche se probabilmente torna come ordine di grandezza
Corrisponde al numero medio di hash che sono stati utilizzati per scrivere la blockchain, quindi corrisponde anche al numero medio di hash che bisognerebbe generare per riscriverla.
|
|
|
|
picchio
Legendary
Offline
Activity: 2506
Merit: 1120
|
|
July 17, 2018, 03:17:00 PM |
|
... Se è vero che oggi servono 6000 dollari a blocco x 52560 blocchi in un anno per pagare gli attuali 46 TWh (e le spese collaterali), ...
Sbaglio o hai dimenticato il premio? Comunque ... 6000*12,5*52596=USD 3.944.700.000,00 sono tanti ... NB: ho considerato l'anno di 365,25 giorni.
|
Waves mi piaceva ora non più.
|
|
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
|
July 17, 2018, 04:19:16 PM |
|
... Se è vero che oggi servono 6000 dollari a blocco x 52560 blocchi a bitcoin per i 657000 bitcoin prodotti in un anno per pagare gli attuali 46 TWh (e le spese collaterali), ...
Sbaglio o hai dimenticato il premio? Comunque ... 6000*12,5*52596=USD 3.944.700.000,00 sono tanti ... NB: ho considerato l'anno di 365,25 giorni. Sì, detta in altri termini ci vogliono circa 6000 dollari per pagare l'energia necessaria per produrre ciascun singolo bitcoin. Per ottenere la spesa totale bisogna moltiplicare ovviamente questa spesa per tutti i bitcoin prodotti in un anno.
|
|
|
|
jack0m
Legendary
Offline
Activity: 3612
Merit: 1988
|
|
July 17, 2018, 08:21:21 PM |
|
ah ho capito, quindi è un valore indicativo dato dalla sommatoria su tutti i blocchi del numero teorico di hash provate per risolvere il pow di quel blocco. Non è detto che corrisponda al numero medio di hash da generare per riscrivere tutta la storia, anche se probabilmente torna come ordine di grandezza
Corrisponde al numero medio di hash che sono stati utilizzati per scrivere la blockchain, quindi corrisponde anche al numero medio di hash che bisognerebbe generare per riscriverla. ho scritto che non corrisponde nel senso che è un'approssimazione, dato che ipotizza un hash rate costante in ogni periodo di 2016 blocchi
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
|
July 19, 2018, 08:33:39 AM Last edit: September 02, 2018, 06:29:03 AM by arulbero |
|
ah ho capito, quindi è un valore indicativo dato dalla sommatoria su tutti i blocchi del numero teorico di hash provate per risolvere il pow di quel blocco. Non è detto che corrisponda al numero medio di hash da generare per riscrivere tutta la storia, anche se probabilmente torna come ordine di grandezza
Corrisponde al numero medio di hash che sono stati utilizzati per scrivere la blockchain, quindi corrisponde anche al numero medio di hash che bisognerebbe generare per riscriverla. ho scritto che non corrisponde nel senso che è un'approssimazione, dato che ipotizza un hash rate costante in ogni periodo di 2016 blocchi Ok. Ho trovato questa spiegazione più approfondita sul concetto di chainwork e di difficulty: https://bitcoin.stackexchange.com/questions/26869/what-is-chainworkLa difficulty di oggi è pari a 5.178.671.069.072,251, cioè oltre 5 mila miliardi di volte quella con la quale si minavano i primi blocchi.
|
|
|
|
jack0m
Legendary
Offline
Activity: 3612
Merit: 1988
|
|
July 19, 2018, 12:47:57 PM |
|
ah ho capito, quindi è un valore indicativo dato dalla sommatoria su tutti i blocchi del numero teorico di hash provate per risolvere il pow di quel blocco. Non è detto che corrisponda al numero medio di hash da generare per riscrivere tutta la storia, anche se probabilmente torna come ordine di grandezza
Corrisponde al numero medio di hash che sono stati utilizzati per scrivere la blockchain, quindi corrisponde anche al numero medio di hash che bisognerebbe generare per riscriverla. ho scritto che non corrisponde nel senso che è un'approssimazione, dato che ipotizza un hash rate costante in ogni periodo di 2016 blocchi Ok. Ho trovato questa spiegazione più approfondita sul concetto di chainwork e di difficulty: https://bitcoin.stackexchange.com/questions/26869/what-is-chainworkLa difficulty di oggi è pari a 5.178.671.069.072,251, cioè oltre 5 miliardi di volte quella con la quale si minavano i primi blocchi. interessante, a parte che non riesco a capire che razza di notazione sarebbe questa: [0x7e00,0x7e00,0x7e00] [0x7e01,acd4,2dd2]
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
|
July 19, 2018, 07:01:37 PM Last edit: September 02, 2018, 06:31:46 AM by arulbero |
|
interessante, a parte che non riesco a capire che razza di notazione sarebbe questa: [0x7e00,0x7e00,0x7e00] [0x7e01,acd4,2dd2]
Anch'io non l'ho mai vista, mi sembra solo un modo di suddividere un numero molto grande in gruppi di 4 cifre a partire da destra per leggere meglio il numero (un po' come si fa in notazione decimale con il punto). In Python con le quadre si indicano le liste. Io ho trovato interessante il fatto che all'inizio satoshi con l'espressione "catena più lunga" intendesse proprio "con più blocchi", e solo in un secondo momento si è passati al concetto attuale di "catena con più lavoro" Un altro fatto interessante è che il concetto base è quello di target, non di difficulty. Nell'header di ogni blocco c'è infatti solo il campo per il target (non per la difficulty, nè per il chainwork) come si può vedere dal codice sorgente di Core : class CBlockHeader { public: // header int32_t nVersion; uint256 hashPrevBlock; uint256 hashMerkleRoot; uint32_t nTime; uint32_t nBits; <-- TARGET uint32_t nNonce;
gli altri valori (difficulty e chainwork) si ricavano dal target, che costituisce quindi l'elemento fondamentale della pow. Il target del primo blocco è "1d00ffff" e corrisponde al valore massimo che era accettabile per i primi blocchi: target = 0x00000000ffff0000000000000000000000000000000000000000000000000000
invece il valore massimo per un numero rappresentabile con 256 bit -> 2**256 - 1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Quindi l'hash dell'header di ciascun blocco della blockchain deve avere almeno 8 zeri iniziali **. Il valore più alto tra gli hash presenti nella blockchain è 00000000fff9e01287736bee2fecdd88ae31b5602858c5273d43351cfadecd58 (blocco numero 32009), molto vicino al valore massimo del target iniziale. Dal blocco numero 32256 la difficoltà è aumentata (e quindi il target si è abbassato). Da notare che l'hash del primo blocco ha in realtà ben 10 zeri anzichè i 6 minimi necessari: 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f Se invece vogliamo stimare quale dovrebbe essere il valore più basso tra gli hash presenti in blockchain, una stima attendibile dovrebbe essere: numero di tutti i possibili hash / numero tentativi effettuati finora(chainwork) = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / 00000000000000000000000000000000000000000262adde7b8bef7777dd191c = 00000000000000000000006b510b511d47c84885b242d50f324021701d5d4b36
che è abbastanza vicino (è più della metà) del minimo valore realmente trovato finora: 0000000000000000000000ab789f6d71d9642ae3f697975ccd00afcb98fe6bd2
nel blocco 515910. Ora per difficoltà si intende il numero medio di tentativi necessari per colpire il target. Se per esempio ho 100 valori possibili (da 0 a 99) e sono interessato solo ad ottenere il valore 0, in media ogni 100 tentativi otterrò 0. Si dice allora che la difficoltà è 100. Se invece mi basta ottenere un numero minore o uguale a 19, poichè ogni 5 tentativi in media otterrò uno dei venti valori accettabili, si dice che la difficoltà è 5. Più grande è il target (si può immaginare come un bersaglio) minore è la difficoltà (intesa come numero di tentativi) di colpirlo. Di fatto è semplicemente il reciproco della probabilità di soddisfare il target ad ogni tentativo. E' così ad esempio che software tipo vanitygen stimano la difficoltà di trovare un indirizzo con un certo prefisso (che formalmente è lo stesso tipo di problema di quello che devono risolvere i miner). Quindi di per sè la difficoltà altro non è che il lavoro necessario in media per minare un blocco, ed è uguale a: numero di tutti i possibili hash / numero valori accettabili per il target -> 2^256 / (target + 1) come si può ben vedere da quiarith_uint256 GetBlockProof(const CBlockIndex& block) { arith_uint256 bnTarget; bool fNegative; bool fOverflow; bnTarget.SetCompact(block.nBits, &fNegative, &fOverflow); if (fNegative || fOverflow || bnTarget == 0) return 0; // We need to compute 2**256 / (bnTarget+1), but we can't represent 2**256 // as it's too large for an arith_uint256. However, as 2**256 is at least as large // as bnTarget+1, it is equal to ((2**256 - bnTarget - 1) / (bnTarget+1)) + 1, // or ~bnTarget / (bnTarget+1) + 1. return (~bnTarget / (bnTarget + 1)) + 1; }
questo è il contributo che sommato su tutti i blocchi da il valore del parametro "chainwork" NOTA 1: Se il target fosse tutto lo spazio, allora la difficoltà di per sè dovrebbe essere 1 (basterebbe un tentativo per soddisfarlo). Ma nel caso di bitcoin non aveva senso iniziare con un blocco che fosse minabile con qualsiasi hash (si sarebbero trovati troppi blocchi in pochi istanti **) quindi si è deciso di partire da un target di 0x00000000ffff0000000000000000000000000000000000000000000000000000, che corrisponde a una difficulty pari a : dimensione(spazio di tutti i possibili hash) / dimensione (target) =
0x10000000000000000000000000000000000000000000000000000000000000000 / 0x00000000ffff0000000000000000000000000000000000000000000000000001 =
4.295.032.833
I casi possibili sono 4 milioni e rotti volte i casi accettabili, quindi la difficoltà iniziale prevedeva di dover eseguire in media 4 milioni di hash per poter minare un blocco. A quel punto si è fissato questa difficoltà come difficoltà base, punto di riferimento, quindi quando si dice relativamente alla blockchain "difficoltà 1" si intende "4.295.032.833 tentativi", quando si dice, come nel blocco del post precedente, "difficoltà 5.178.671.069.072,251", si intende 5 mila miliardi di volte la difficoltà iniziale, e cioè "5.178.671.069.072 * 4.295.032.833 = 22.242.562.272.971.450.840.976" (ho tralasciato i decimali), ovvero oggi ci vogliono in media 22 * 10^21 (circa 2^74) tentativi per minare un blocco (inoltre 22.242.562.272.971.450.840.976 / 600 secondi = 37 EH/sec) **NOTA 2 Usando la regtest, si possono ottenere molti blocchi con hash qualsiasi (difficoltà 1 nel vero senso della parola): $ bitcoind -regtest
$ bitcoin-cli -regtest generate 10 [ "2c40f580288fb80446d367cba7bdcf65e1e2f286c4e035c180d7de7e96341853", "5e8449f73b697c7f27f2a6c8e82d4ca533459f3f7c804598b971c23be920f920", "1427aa50038a67ef9b660af10cff1a3cee1c60d541b5da368b4c1a735274001d", "043ba499f8e331a572be9ac6f0401d3283fa86fd0b26c99b06aaffb43680e2d5", "18326cda138a975cd8e926f47bc33cd66253387531155a1425d9df3058548477", "643e6394a06caf557e3e72a94d2f52ffd6df2e3f39c8c0909b3e65cc941b245a", "2a487b5a7ca93b4b3e08befc47c6ae885c3e678adcc033706d184bc0075fa577", "3c18e578b6baa69819ea782c376723806c1d968e2aa4d78a5bfcb0b48798c75a", "301c54360b300ce46a46e31ae3f9d9e2486e617f04889c06fb7a3ad283fb6554", "4883d47e84e2b82a3994c80252021f36371b64227cd5093ec3556c28a599850f" ]
come si può vedere ho generato 10 blocchi (in un attimo) con hash qualsiasi, infatti il lavoro per minare ciascun blocco è stato praticamente nullo: ./bitcoin-cli -regtest getblockheader 2c40f580288fb80446d367cba7bdcf65e1e2f286c4e035c180d7de7e96341853 { "hash": "2c40f580288fb80446d367cba7bdcf65e1e2f286c4e035c180d7de7e96341853", "confirmations": 10, "height": 1, "version": 536870912, "versionHex": "20000000", "merkleroot": "f9706f3bc9fb2802b5af2efe431eec53c3d5767352137e16d052c07d6c72303e", "time": 1532026224, "mediantime": 1532026224, "nonce": 6, "bits": "207fffff", "difficulty": 4.656542373906925e-10, "chainwork": "0000000000000000000000000000000000000000000000000000000000000004", "previousblockhash": "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206", "nextblockhash": "5e8449f73b697c7f27f2a6c8e82d4ca533459f3f7c804598b971c23be920f920" }
|
|
|
|
jack0m
Legendary
Offline
Activity: 3612
Merit: 1988
|
|
July 20, 2018, 11:35:07 AM |
|
Ora per difficoltà si intende il numero medio di tentativi necessari per colpire il target. Se per esempio ho 100 valori possibili (da 0 a 99) e sono interessato solo ad ottenere il valore 0, in media ogni 100 tentativi otterrò 0. Si dice allora che la difficoltà è 100. Se invece mi basta ottenere un numero minore o uguale a 19, poichè ogni 5 tentativi in media otterrò uno dei venti valori accettabili, si dice che la difficoltà è 20. Più grande è il target (si può immaginare come un bersaglio) minore è la difficoltà (intesa come numero di tentatvi) di colpirlo. Di fatto è semplicemente il reciproco della probabilità di soddisfare il target ad ogni tentativo.
credo che volessi scrivere 5, in quel caso
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
arulbero
Legendary
Offline
Activity: 1914
Merit: 2071
|
|
July 20, 2018, 12:17:24 PM |
|
Ora per difficoltà si intende il numero medio di tentativi necessari per colpire il target. Se per esempio ho 100 valori possibili (da 0 a 99) e sono interessato solo ad ottenere il valore 0, in media ogni 100 tentativi otterrò 0. Si dice allora che la difficoltà è 100. Se invece mi basta ottenere un numero minore o uguale a 19, poichè ogni 5 tentativi in media otterrò uno dei venti valori accettabili, si dice che la difficoltà è 20. Più grande è il target (si può immaginare come un bersaglio) minore è la difficoltà (intesa come numero di tentatvi) di colpirlo. Di fatto è semplicemente il reciproco della probabilità di soddisfare il target ad ogni tentativo.
credo che volessi scrivere 5, in quel caso Corretto, grazie.
|
|
|
|
|