La velocità con cui vengono aggiunti nuovi blocchi dipende dal numero di partecipanti alla rete che lavorano alla convalida o dalla potenza di calcolo utilizzata. Se vengono generati troppi blocchi nell'arco di un'ora, la complessità del compito, ovvero la sua "difficoltà", viene aumentata per ritardare deliberatamente la generazione di nuovi blocchi.
La blockchain valida è la catena più lunga con la maggiore potenza di calcolo investita in tale catena dai partecipanti onesti della rete.
La rete
La sezione successiva del Whitepaper di Bitcoin illustra il processo implicato nelle transazioni.
Un mittente invia una transazione che viene trasmessa a tutti i partecipanti alla rete (anche se non è necessario che tutte le transazioni raggiungano tutti i nodi). Ogni nodo partecipante raggruppa le nuove transazioni in un blocco e cerca di trovare una proof-of-work per esso.
Una volta trovata e accertato che la transazione non sia stata spesa in precedenza (doppia spesa), il nuovo blocco viene nuovamente trasmesso alla rete Bitcoin e accettato come valido (o rifiutato) dagli altri computer che lavorano alla creazione di un nuovo blocco utilizzando l'hash dell'ultimo blocco valido. La catena più lunga della blockchain è considerata la catena corretta.
Può accadere che due nodi trasmettano contemporaneamente versioni diverse del blocco successivo alla rete Bitcoin. Di conseguenza, alcuni degli altri nodi riceveranno prima una versione, mentre altri nodi riceveranno prima l'altra. In questo caso, i nodi passeranno alla catena più lunga. Se un nodo non riceve un blocco, richiede il blocco mancante quando si rende conto di averlo perso.
Incentivi
Per incoraggiare i nodi informatici a partecipare alla rete, Satoshi Nakamoto ha proposto che i nodi che forniscono potenza di calcolo vengano premiati se sono i primi a creare un blocco. L'idea era che gli utenti della rete Bitcoin pagassero delle commissioni di transazione, che in un secondo momento sarebbero diventate l'unica ricompensa quando vi fosse in circolazione un numero sufficiente di monete.
Dato che per frodare la rete sarebbe necessaria un'enorme potenza di calcolo, è più probabile che i nodi rimangano onesti piuttosto che frodare la rete. Il motivo è che investire la potenza di calcolo nel mining e nella generazione di nuove monete è più redditizio che investire fondi per ottenere il controllo della rete. Tieni presente che nessuna azienda o persona singola è responsabile della gestione della rete Bitcoin, che è invece gestita e messa in sicurezza da un'ampia community di computer indipendenti.
Recuperare spazio su disco
Poiché la blockchain di Bitcoin è immutabile e non può essere modificata in nessun caso, era evidente che sarebbe cresciuta di dimensioni fino a raggiungere un punto tale da richiedere grandi quantità di memoria per l'archiviazione. Nel Whitepaper di Bitcoin, si ipotizza che l'intestazione di un singolo blocco che non contiene transazioni abbia una dimensione approssimativa di circa 80 byte.
Per ovviare al problema della memoria necessaria, Satoshi Nakamoto aveva proposto che una volta che una transazione è "sepolta" sotto un numero sufficiente di blocchi, le transazioni precedenti possano essere "scartate" per risparmiare spazio sul disco.
Per garantire che le strutture crittografiche - gli hash - non vengano violate, il Whitepaper suggerisce di ridurre tutte le transazioni a un singolo hash, ovvero un hash radice o hash principale, che può essere realizzato in modo efficiente utilizzando un albero di Merkle.
Un albero di Merkle o albero di hash, dal nome dello scienziato Ralph Merkle, è una struttura di dati basata su hash, utilizzata nella crittografia e nell'informatica. Questa struttura assegna i dati a una chiave. Un semplice esempio di questo concetto è la composizione rapida sulla tastiera di un telefono: ogni numero di telefono viene assegnato a ciascun tasto in una struttura basata su hash. Nella rete Bitcoin, per la verifica dei dati vengono utilizzati gli alberi di Merkle, che sono efficienti perché vengono utilizzati degli hash invece di un file di informazioni completo.
Un albero di Merkle o albero di hash, dal nome dello scienziato Ralph Merkle, è una struttura di dati basata su hash, utilizzata nella crittografia e nell'informatica.
Gli alberi di Merkle utilizzano tipicamente una struttura ad albero binario, ovvero ogni nodo ha al massimo due nodi figli, ma è possibile utilizzare anche un livello di output superiore. L'hash radice è l'hash più elevato della struttura dati basata sugli hash e fa parte dell'intestazione del blocco. Assicura che le transazioni siano presenti.
Al momento della pubblicazione del Whitepaper di Bitcoin nel 2008, si stimava che sarebbero stati necessari almeno 4,2 MB (megabyte) di memoria all'anno. Questo si basava sull'ipotesi che i blocchi venissero generati ogni dieci minuti e che ogni blocco fosse pari a 80 byte. All'ora, questo sarebbe equivalso a 80 moltiplicato per 6, poi moltiplicato per il costo giornaliero e quindi annuale, cioè equivalente a 80 moltiplicato per (6X24) moltiplicato per 365.
Nel 2008 i sistemi informatici più diffusi venivano venduti con 2 GB (gigabyte) di RAM e all'epoca la Legge di Moore prevedeva una crescita di 1,2 GB all'anno. Nel Whitepaper di Bitcoin si presumeva che l'archiviazione non sarebbe diventata un problema, anche dovendo conservare in memoria le intestazioni dei blocchi.
Verifica semplificata dei pagamenti
I pagamenti nella rete Bitcoin possono essere verificati anche senza che un utente gestisca un nodo completo della rete, costruendo un'implementazione Bitcoin che si basa sulla connessione a un nodo completo affidabile e scaricando solo le intestazioni dei blocchi.
Al termine del download, il computer client verifica il corretto collegamento delle intestazioni della catena e un livello di difficoltà sufficiente a garantire che si tratti della blockchain corretta. Infine, le copie delle transazioni, insieme a un ramo dell'albero di Merkle che le collega al rispettivo blocco corretto, sono fornite come prova della loro inclusione.
Finché i nodi onesti controllano una rete e ci si connette a un nodo di cui si conosce l'affidabilità, la verifica è affidabile. Tuttavia, per garantire che le transazioni non vengano create da un malintenzionato su una catena non valida, Satoshi Nakamoto suggerisce alle aziende che utilizzano Bitcoin per i pagamenti frequenti di gestire i propri nodi per garantire velocità e maggiore sicurezza.
In parole povere, questo significa che non è necessario l'intero registro della catena per verificare la correttezza di una transazione. È sufficiente scaricare un ramo dell'albero di Merkle e verificare che abbia lo stesso hash radice.
Combinare e dividere il valore
Gli insegnamenti alla base del Bitcoin si applicano anche alle transazioni che contengono più entrate e uscite. Si pensi al caso in cui si debbano spendere 35 centesimi: è necessario combinare 20 centesimi, 10 centesimi e 5 centesimi. Nella rete Bitcoin, le transazioni possono avere più entrate e uscite che consentono di dividere e combinare il valore.
Privacy
Le banche tradizionali garantiscono la privacy delle transazioni limitando le informazioni sulle transazioni alle parti coinvolte, compresa la parte intermediaria. La rete Bitcoin, invece, diffonde pubblicamente tutte le transazioni. Tutti possono vedere che qualcuno sta inviando una transazione, ma la transazione non può essere ricollegata a nessuno in particolare, perché nessuno sa chi siano le parti che interagiscono.
Gli utenti si identificano nella rete utilizzando una chiave pubblica, ma hanno bisogno di una chiave privata per accedere alla transazione. Per questo motivo, il Whitepaper di Bitcoin raccomanda di utilizzare una nuova coppia di chiavi per ogni transazione, al fine di garantire che le transazioni non possano essere rintracciate o collegate a uno stesso proprietario.
Calcoli
Infine, Satoshi Nakamoto voleva illustrare l'improbabilità che la rete Bitcoin venisse attaccata con successo da utenti fraudolenti. Questa sezione del whitepaper contiene calcoli che mostrano quanto sarebbe complicato per un potenziale attacco avviare una nuova catena che rivaleggi con quella valida. Dal momento che i nodi onesti non accetterebbero una transazione corrispondente, un truffatore dovrebbe fare concorrenza alla catena valida utilizzando un’enorme potenza di calcolo per raggiungerla e la probabilità che riesca a raggiungere il pareggio è minima.
Per concludere
Bitcoin è un sistema peer-to-peer per il trasferimento trustless di denaro elettronico che utilizza un algoritmo proof-of-work per registrare la cronologia pubblica delle transazioni; è altamente sicuro contro gli attacchi purché i nodi onesti controllino la maggior parte della potenza di calcolo. La rete è composta da nodi che hanno bisogno di poco coordinamento e possono unirsi e andarsene a piacimento, accettando solo blocchi validi e rifiutando quelli non validi sulla base di un meccanismo di consenso.
Dopo aver fatto luce sui concetti tecnologici alla base del Bitcoin, la Bitpanda Academy ti fornirà ulteriori lezioni avanzate su come applicarli al mondo delle criptovalute.