Se hai a che fare con la criptovaluta, allora sei sicuramente entrato in contatto con una blockchain ad un certo punto. Le blockchain sono importanti anche nella gestione della catena di approvvigionamento, nella logistica, nella verifica dell'identità e in una serie di altri campi, quindi potresti aver utilizzato questa tecnologia anche se non ti piacciono le criptovalute. Ma quali dati memorizzano le blockchain? E, se queste blockchain sono pubbliche, dovresti preoccuparti di cosa contengono?
Una rapida panoramica della tecnologia Blockchain
Prima di discutere i dati archiviati su blockchain, dovremmo prima esaminare cos'è una blockchain in termini semplici in modo da sapere con che tipo di tecnologia abbiamo a che fare.
Le blockchain sono meglio immaginate come catene virtuali di blocchi, da cui il nome. Ogni blocco memorizza i dati utilizzando l'hashing, un metodo crittografico. Ciò impedisce alle persone illecite di sfruttare i dati blockchain. Una volta che la capacità di un blocco è stata raggiunta e confermata per entrare a far parte della catena, un altro blocco inizia ad essere confermato, sia pure attraverso
prova del lavoro, prova del palo, o un altro meccanismo di consenso.I blocchi variano in dimensioni, il che significa che la quantità di informazioni che possono memorizzare è diversa. Un blocco Bitcoin, ad esempio, ha una dimensione di solo 1 MB. Lo stesso vale per Litecoin e Dogecoin. Bitcoin Cash, tuttavia, ha una dimensione del blocco molto più grande di 32 MB, il che significa che è possibile archiviare più transazioni per blocco.
I blocchi più grandi di solito lasciano il posto a tempi di transazione più rapidi e commissioni più basse, ma oggi non entreremo in questo elemento della tecnologia blockchain. Invece, iniziamo con il tipo di dati archiviati sulla blockchain.
Quali dati memorizza un blocco?
Il tipo specifico di dati che un determinato blocco memorizzerà può variare a seconda dello scopo e della natura della blockchain. Ma usiamo Bitcoin, una delle blockchain più popolari al mondo, per avere una buona comprensione dell'archiviazione blockchain.
I blocchi di bitcoin vengono estratti attraverso il meccanismo di consenso della prova del lavoro, in cui i minatori utilizzano hardware specializzato per risolvere complessi problemi computazionali. Finora sono stati minati oltre 760.000 blocchi di Bitcoin, con circa 900 BTC messi in circolazione ogni giorno. Ogni blocco mette in circolazione 6,25 BTC, che equivalgono alla ricompensa spettante al miner, o mining pool, che estrae il blocco.
Bitcoin si sta avvicinando al suo limite di offerta di 21 milioni di BTC. Una volta raggiunto questo limite, non è più possibile estrarre BTC. Ma poiché le transazioni Bitcoin continuano ad essere eseguite, i blocchi dovranno continuare ad essere aggiunti alla blockchain per mantenere il libro mastro immutabile.
I dati all'interno di un blocco Bitcoin vengono sottoposti ad hashing utilizzando l'algoritmo di hashing crittografico SHA-256. Diverse criptovalute utilizzano diversi algoritmi di hashing. Ethereum, ad esempio, utilizza Ethash. Molti governi usano SHA-256 anche per eseguire l'hashing dei dati.
Un blocco Bitcoin è composto da poche sezioni diverse. Iniziamo con l'intestazione del blocco.
L'intestazione del blocco
Un'intestazione di blocco Bitcoin memorizza il seguente tipo di dati:
- Tempo di transazione
- Nonce
- Bit
- hashMerklRoot
- hashPrevBlock
- Versione
IL tempo di transazione contiene un timestamp che rappresenta l'ora in cui è avvenuta la transazione. Blocca le transazioni del negozio in ordine cronologico.
IL nonce (abbreviato da "numero usato solo una volta") svolge un ruolo molto importante nel processo di estrazione della prova del lavoro. Questo è il numero che un minatore deve raggiungere risolvendo problemi computazionali. Se un minatore risolve il nonce, può estrarre con successo il blocco. Nel corso del tempo, diventa sempre più difficile estrarre i blocchi man mano che aumenta la difficoltà di estrazione di Bitcoin (ovvero quanto è difficile estrarre un blocco).
Successivamente, abbiamo il bit. Questo campo si riferisce anche a Bitcoin difficoltà mineraria, in quanto contiene la difficoltà stessa. Questo può aumentare o diminuire nel tempo. Se la difficoltà aumenta, un miner deve usare più hash power per estrarre il blocco. Se diminuisce, il minatore può usarne di meno. Naturalmente, i minatori preferiscono una difficoltà inferiore in quanto ciò consente di risparmiare energia e tempo. In generale, se il numero di minatori aumenta, aumenta anche la difficoltà.
IL hashMerklRoot è associato a una radice di Merkle. Questo è un metodo matematico utilizzato per confermare le informazioni su un albero di Merkle, che è essenzialmente una struttura di memorizzazione dei dati. Gli alberi Merkle utilizzano la crittografia per archiviare i dati, con hashMerklRoot che è l'hash di tutti gli hash delle transazioni archiviate in un determinato blocco.
hashPrevBlock, come suggerisce il nome, si riferisce all'hash a 256 bit del blocco precedente. Ogni blocco Bitcoin sulla catena contiene l'hash del blocco precedente.
Infine, hai il versione. Questo campo si riferisce semplicemente alla versione del protocollo Bitcoin utilizzata. Il protocollo Bitcoin utilizzato oggi non è esattamente lo stesso di quello utilizzato quando Bitcoin è stato lanciato per la prima volta nel 2008. Gli aggiornamenti vengono effettuati di tanto in tanto per migliorare alcune parti della rete. La versione più recente del protocollo è la 70015, introdotta nel 2017. Questo aggiornamento ha fornito la possibilità di vietare i blocchi compatti non validi dalla catena.
Il resto di un blocco Bitcoin
Ma le cose non si fermano all'intestazione. Ci sono altri tipi di dati memorizzati in ogni blocco Bitcoin, tra cui:
- Misura del blocco
- Contatore di transazioni
- Numero magico
- Transazioni
Cominciamo con il misura del blocco. Questo campo impone un limite alla quantità di dati che possono essere memorizzati all'interno di un blocco. Come affermato in precedenza, il limite della dimensione del blocco di Bitcoin è di 1 MB, ma questo cambia da cripto a cripto.
IL contatore delle transazioni conta semplicemente il numero di transazioni registrate all'interno di un dato blocco Bitcoin. Non esiste un numero costante di transazioni che i blocchi memorizzano, poiché ogni transazione può avere una dimensione diversa. Ma, in media, ogni blocco Bitcoin contiene tra le 1.500 e le 2.000 transazioni, più o meno qualche centinaio su entrambi i lati.
IL numero magico ha un valore costante di 0xD9B4BEF9 e identifica il tipo di file e la struttura utilizzati nel blocco. I numeri magici fungono anche da identificatore di rete per ogni blocco. Questo valore costante è stato fissato da Satoshi Nakamoto quando è stato creato Bitcoin.
IL campo delle transazioni elenca tutte le transazioni incluse in qualsiasi blocco Bitcoin (a differenza del campo del contatore delle transazioni, che indica il numero di transazioni nel blocco). Come abbiamo già discusso, il numero di transazioni memorizzate in un blocco non può superare la capacità di 1 MB.
La Blockchain memorizza i tuoi dati personali?
Il tuo nome, i dettagli di contatto, le informazioni di pagamento e altri dati privati non vengono memorizzati sulla blockchain. Gli unici dati che si riferiscono a te sono l'indirizzo del tuo portafoglio pubblico. Nella maggior parte degli scenari, questo è totalmente benigno. Ma strumenti di tracciamento più sofisticati utilizzati da agenzie governative e altri analisti blockchain possono scoprire la tua identità tramite il tuo indirizzo se ci provano abbastanza.
La maggior parte delle criptovalute là fuori sono pseudonime e rintracciabile fino a un certo punto. Per questo alcuni preferiscono monete private, come ZCash e Monero, in quanto possono nascondere l'indirizzo del loro portafoglio quando scambiano questi asset.
I dati blockchain giocano un ruolo importante nella rete
Senza i dati di blocco, non ci sarebbe modo di registrare e tenere traccia delle transazioni, che è una parte intrinsecamente importante della tecnologia blockchain. Fornire un libro mastro immutabile fornisce sicurezza e trasparenza, consentendo agli utenti di controllare vari tipi di informazioni all'interno della rete, come gli importi delle transazioni,