Translate

martedì 1 marzo 2016

Come funziona Bitcoin ?


Bitcoin è un sistema decentralizzato, che si basa sulla tecnologia peer-to-peer. Ciò significa
che il suo funzionamento non è gestito da un ente centrale ma avviene tramite un database distribuito tra i nodi della rete. Ogni computer che abbia installato il relativo software opensource costituisce un nodo e l'insieme dei nodi dà vita ad un network che gestisce collettivamente tutte le operazioni necessarie al corretto funzionamento del sistema stesso, quali la generazione di nuova moneta, la garanzia solo per il legittimo proprietario di spenderla, il controllo sull'utilizzo dei BTC finalizzato ad evitare la duplicazione di transazioni con la stessa moneta, ecc.

Ogni utente registrato possiede un wallet, ossia una sorta di portafoglio virtuale in cui custodire la moneta generata o comprata, e due chiavi, una pubblica e una privata. La chiave pubblica, definita anche indirizzo Bitcoin, è un codice alfanumerico di 34 o 36 caratteri che inizia sempre con il numero 1, della forma ad esempio 1Ai83aafRLWYtMDNbP8b3uiWyquun6ot46. La chiave pubblica, a differenza di quella privata, è visibile a tutti e funge da punto di invio o di ricezione per qualsiasi pagamento.

Occorre precisare che ogni utente può ottenere un numero indefinito di indirizzi Bitcoin, senza alcun limite, dato che la loro generazione richiede poco tempo di calcolo e non interferisce in alcun modo con quelli creati dagli altri nodi della rete. Il vantaggio derivante dall’utilizzo di coppie di chiavi diverse per ogni singola transazione risiede in una maggiore garanzia di anonimato offerta all'operatore. Infatti chiunque all’interno della rete Bitcoin può vedere le transazioni effettuate da un certo indirizzo, anche se non è possibile risalire all’identità della persona fisica che ha realizzato lo scambio: per questo motivo non è del tutto corretto affermare che Bitcoin è una moneta anonima, ma piuttosto si tratta di una moneta relativamente anonima o pseudonima (la differenza è sottile, ma importante). La chiave privata invece viene utilizzata per far sì che ogni pagamento sia autorizzato solo dall'effettivo proprietario della moneta, dato che soltanto quest'ultimo ne è a conoscenza senza possibilità per gli altri utenti di entrarvi in possesso.

Per fare un esempio, quando l'utente A trasferisce dei BTC all'utente B, egli rinuncia alla proprietà sulle monete in oggetto aggiungendo la chiave pubblica di B sulle stesse e firmandole con la propria chiave privata. A questo punto però non si può ancora dire che la transazione si sia conclusa. Quest’ultima infatti, per dirsi completata, deve essere confermata dai miners, i quali effettuano una vera e propria operazione di controllo, verificandone l’autenticità e la correttezza, al fine di evitare il
cosiddetto “double-spending”, ossia che l’utente A scambi la stessa moneta con un altro operatore, diverso dall’utente B, assicurando così l'irreversibilità dello scambio. Una sola conferma è abbastanza sicura, ma per grandi somme il destinatario può aspettarne più di una, solitamente sei: ogni nuova conferma riduce esponenzialmente il rischio di inversione della transazione. L’utente A inoltre è libero di pagare una tassa, in modo tale da incentivare i miners a confermare con una certa priorità la transazione in oggetto, aumentando così la velocità di trasferimento della moneta. Le transazioni non viaggiano in rete per conto proprio, ma sono raggruppate in blocchi d’informazioni. I blocchi sono univoci, cioè tutti diversi tra loro, e consecutivi, cioè ognuno legato al precedente e al successivo.

Nasce così una vera e propria catena, che prende il nome di blockchain, la quale contiene tutte le transazioni che sono state effettuate a partire dal punto zero, vale a dire dal momento della nascita di Bitcoin. Ogni singola transazione porta con sé le seguenti informazioni: l’ora dell’invio, l’importo,
l’indirizzo di provenienza, l’indirizzo di destinazione e i dati della transazione precedente. La blockchain è pubblica, nel senso che tutti i nodi che appartengono alla rete Bitcoin possono accedere alle informazioni in essa contenute, e viene aggiornata ogni dieci minuti. Questo infatti è il tempo mediamente impiegato dai peers per svolgere la prova di lavoro, cioè per risolvere una sorta di enigma crittografico sfruttando la potenza computazionale della rete, al fine di chiudere il blocco in questione. La natura pubblica della blockchain e gli algoritmi di crittografia che controllano il processo di aggiornamento garantiscono la sicurezza e l’affidabilità del nucleo del sistema. Possiamo considerare la blockchain come una sorta di libro mastro, in cui tutte le transazioni sono tracciate, registrate e costantemente aggiornate.

Questa è la vera anima di Bitcoin, la vera innovazione a livello di contabilità introdotta da Satoshi Nakamoto: tenere un registro pubblico di tutte le transazioni, corretto e veritiero, ordinato cronologicamente, senza dover riporre fiducia in alcun specifico soggetto. Infatti mentre nel sistema bancario tradizionale il libro mastro è tenuto e garantito da una singola entità o da un numero ristretto di entità, nel sistema Bitcoin tale registro risiede sui terminali di tutti gli utenti della rete ed è da questi ultimi liberamente consultabile. Questo meccanismo porta con sé due importanti implicazioni: in primo luogo, mentre con un libro mastro centralizzato la conoscenza delle proprie transazioni è riservata, in Bitcoin ognuno è a conoscenza anche delle transazioni effettuate dagli altri indirizzi; in secondo luogo, mentre con un libro mastro tenuto da una singola entità ci si fida di quest’ultima o è comunque possibile rivalersi su di essa, nel sistema Bitcoin la condivisione della blockchain da parte di un numero così ampio di utenti esclude di fatto la possibilità di riporre fiducia in un qualche soggetto specifico. A questo punto sorge spontanea una domanda: per quale motivo qualcuno dovrebbe mettere a disposizione della rete Bitcoin il proprio computer, consumando risorse di calcolo ed energia elettrica? La risposta risiede in un meccanismo di premiazione che offre una sorta di incentivo: ad ogni blocco sono associati nuovi BTC, appena coniati, che vengono assegnati a chi per primo riesce a chiudere il blocco in questione. Questa attività, che descriverò meglio nel prossimo paragrafo, prende il nome di “mining”, creando così un’analogia con il processo di estrazione  dell’oro realizzato dai minatori.