Bitcoin Forum
March 29, 2024, 11:50:05 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 »  All
  Print  
Author Topic: Stima consumo energetico rete bitcoin.  (Read 19994 times)
gbianchi (OP)
Legendary
*
Offline Offline

Activity: 3052
Merit: 2592



View Profile
July 15, 2018, 09:49:10 PM
 #141


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?

GUIDA PER NUOVI UTENTI https://bitcointalk.org/index.php?topic=1241459.0
DO NOT HOLD YOUR BTC ON THIRD PARTY EXCHANGES – BE YOUR OWN BANK https://bitcointalk.org/index.php?topic=945881.0
BITCOIN... WHAT IS IT ? https://bitcointalk.org/index.php?topic=2107660.0
1711713005
Hero Member
*
Offline Offline

Posts: 1711713005

View Profile Personal Message (Offline)

Ignore
1711713005
Reply with quote  #2

1711713005
Report to moderator
I HATE TABLES I HATE TABLES I HA(╯°□°)╯︵ ┻━┻ TABLES I HATE TABLES I HATE TABLES
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1711713005
Hero Member
*
Offline Offline

Posts: 1711713005

View Profile Personal Message (Offline)

Ignore
1711713005
Reply with quote  #2

1711713005
Report to moderator
1711713005
Hero Member
*
Offline Offline

Posts: 1711713005

View Profile Personal Message (Offline)

Ignore
1711713005
Reply with quote  #2

1711713005
Report to moderator
1711713005
Hero Member
*
Offline Offline

Posts: 1711713005

View Profile Personal Message (Offline)

Ignore
1711713005
Reply with quote  #2

1711713005
Report to moderator
arulbero
Legendary
*
Offline Offline

Activity: 1914
Merit: 2071


View Profile
July 16, 2018, 06:17:20 AM
Merited by Micio (1)
 #142


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 Offline

Activity: 3052
Merit: 2592



View Profile
July 16, 2018, 07:25:19 AM
 #143



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.

GUIDA PER NUOVI UTENTI https://bitcointalk.org/index.php?topic=1241459.0
DO NOT HOLD YOUR BTC ON THIRD PARTY EXCHANGES – BE YOUR OWN BANK https://bitcointalk.org/index.php?topic=945881.0
BITCOIN... WHAT IS IT ? https://bitcointalk.org/index.php?topic=2107660.0
gbianchi (OP)
Legendary
*
Offline Offline

Activity: 3052
Merit: 2592



View Profile
July 16, 2018, 07:29:54 AM
 #144



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.

GUIDA PER NUOVI UTENTI https://bitcointalk.org/index.php?topic=1241459.0
DO NOT HOLD YOUR BTC ON THIRD PARTY EXCHANGES – BE YOUR OWN BANK https://bitcointalk.org/index.php?topic=945881.0
BITCOIN... WHAT IS IT ? https://bitcointalk.org/index.php?topic=2107660.0
arulbero
Legendary
*
Offline Offline

Activity: 1914
Merit: 2071


View Profile
July 16, 2018, 04:15:59 PM
Merited by jack0m (2), duesoldi (2), picchio (1)
 #145

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:

Code:
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 Offline

Activity: 2534
Merit: 2618


View Profile
July 16, 2018, 07:20:50 PM
 #146

Piccolo OT:

OT ? vorrei leggerne più spesso di post come il tuo: complimenti, considerazione molto interessante !

jack0m
Legendary
*
Offline Offline

Activity: 3570
Merit: 1985


View Profile
July 17, 2018, 08:36:59 AM
 #147

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:

Code:
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 Offline

Activity: 1914
Merit: 2071


View Profile
July 17, 2018, 09:21:22 AM
Last edit: July 17, 2018, 10:00:17 AM by arulbero
Merited by Micio (3)
 #148

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:
Code:
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:
Code:
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 Offline

Activity: 3052
Merit: 2592



View Profile
July 17, 2018, 11:01:32 AM
Merited by Micio (3)
 #149



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


GUIDA PER NUOVI UTENTI https://bitcointalk.org/index.php?topic=1241459.0
DO NOT HOLD YOUR BTC ON THIRD PARTY EXCHANGES – BE YOUR OWN BANK https://bitcointalk.org/index.php?topic=945881.0
BITCOIN... WHAT IS IT ? https://bitcointalk.org/index.php?topic=2107660.0
arulbero
Legendary
*
Offline Offline

Activity: 1914
Merit: 2071


View Profile
July 17, 2018, 12:01:09 PM
Last edit: July 17, 2018, 04:20:56 PM by arulbero
 #150

....
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 Offline

Activity: 3570
Merit: 1985


View Profile
July 17, 2018, 12:41:14 PM
 #151

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:
Code:
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:
Code:
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 Offline

Activity: 1914
Merit: 2071


View Profile
July 17, 2018, 12:59:08 PM
 #152

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
*
Online Online

Activity: 2506
Merit: 1120



View Profile
July 17, 2018, 03:17:00 PM
 #153

...
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 Offline

Activity: 1914
Merit: 2071


View Profile
July 17, 2018, 04:19:16 PM
 #154

...
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 Offline

Activity: 3570
Merit: 1985


View Profile
July 17, 2018, 08:21:21 PM
 #155

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 Offline

Activity: 1914
Merit: 2071


View Profile
July 19, 2018, 08:33:39 AM
Last edit: September 02, 2018, 06:29:03 AM by arulbero
 #156

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-chainwork

La 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 Offline

Activity: 3570
Merit: 1985


View Profile
July 19, 2018, 12:47:57 PM
 #157

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-chainwork

La 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:

Quote
[0x7e00,0x7e00,0x7e00]
[0x7e01,acd4,2dd2]

Money is a hoax. Debt is slavery. Consumerism is toxic.
arulbero
Legendary
*
Offline Offline

Activity: 1914
Merit: 2071


View Profile
July 19, 2018, 07:01:37 PM
Last edit: September 02, 2018, 06:31:46 AM by arulbero
Merited by Micio (6)
 #158


interessante, a parte che non riesco a capire che razza di notazione sarebbe questa:

Quote
[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 :

Code:
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:
Code:
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:
Code:
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:
Code:
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 qui
Code:
arith_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 :

Code:
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):

Code:
$ 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:

Code:
./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 Offline

Activity: 3570
Merit: 1985


View Profile
July 20, 2018, 11:35:07 AM
 #159

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 Offline

Activity: 1914
Merit: 2071


View Profile
July 20, 2018, 12:17:24 PM
 #160

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.
Pages: « 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!