Bitcoin (BTC)

Info Progetto
Tecnologia: Blockchain
Categoria: Electronic Cash
Max Supply: 21.000.000 BTC
Inizio Progetto: 2008
Paese origine: /
SITO WEB https://bitcoin.org
Algoritmo Proof-of-Work
EXPLORER

Che cos’è Bitcoin?

Bitcoin è un sistema di pagamento elettronico peer-to-peer basato su un sistema crittografico che si rende indipendente da un controllo centralizzato delle transazioni avvenute.

Il progetto Bitcoin vede la luce nel Novembre 2008 quando il suo ideatore, Satoshi Nakamoto, pubblica il protocollo sotto forma di whitepaper su The Cryptography Mailing list sul sito metzdowd.com. Nel 2009 viene distribuita la prima versione del client di Bitcoin, e nel 2010 Nakamoto fa perdere le sue tracce ritirandosi dalla community e lasciando in sospeso i dubbi sulla sua vera identità.

A che cosa serve Bitcoin?

Con il proliferare del commercio online si rende indispensabile una modalità di pagamento che esuli dallo spostamento di denaro contante, ovvero è necessario rendere in qualche maniera la moneta un qualcosa di elettronico.

I problemi che nascono abbandonando l’uso del contante sono svariati

  • Come verificare che il pagamento sia effettivamente avvenuto
  • Come verificare chi sia il pagatore e se disponga, al momento della transazione, del denaro che intende trasferire
  • Ordinare le transazioni in modo da non permettere la doppia spesa di una stessa quantità di denaro

Tali dubbi non sussistono in una transazione che coinvolge il contante, essendo la banconota ricevuta essa stessa una prova che il pagamento sia stato effettuato e che il pagatore ne disponesse nel momento in cui ha pagato.

Inoltre l’ordine in cui avvengono le transazioni in contante non rileva ai fini della verifica di una transazione, in quanto se la banconota passa da un possessore a un altro, automaticamente non è più a disposizione del primo e dunque è impossibile una doppia spesa della stessa banconota.

Questo perché riconosciamo convenzionalmente alla banconota un valore indiscutibile: uno spostamento fisico di contante equivale allo spostamento dell’equivalente ammontare di valore, mostrando come effettivamente per noi banconota e denaro siano la stessa cosa.

Il sistema che da ormai decenni ci accompagna e prova a risolvere i problemi legati a un sistema di pagamento elettronico è un modello basato interamente sulla fiducia: una terza parte (oltre quindi pagatore e pagato) si erge a intermediario fra i due agenti economici facendosi garante e controllore delle transazioni.

Semplificando, questa parte terza è rappresentata dal sistema bancario che è inoltre depositario del denaro degli individui coinvolti nei pagamenti elettronici: quando un utente effettua un pagamento, dai suoi soldi depositati (rappresentati da un saldo numerico e non da un pari ammontare di contante presente presso la banca) viene detratta la somma indicata che viene invece aggiunta al saldo del pagato.

L’ordine delle transazioni è stabilito dalla banca che, nel caso di due transazioni simultanee che coinvolgono lo stesso soggetto pagante, stabilisce quale sia la prima e verifichi di conseguenza se la seconda può essere permessa in base al saldo del pagante.

Ergo un sistema basato sulla fiducia in questa terza parte che gestisce il pagamento, con tutta l’incertezza e i costi di intermediazione che ne conseguono.

Bitcoin intende eliminare questo intermediario passando da un modello basato sulla fiducia a un modello basato sulla prova crittografica, ovvero un sistema di pagamento del tutto indipendente da un controllo centrale delle transazioni.

Come funziona Bitcoin?

Immaginiamo Bitcoin come una rete di computer “iscritti” al sistema che dispongono di due “password” ognuno: una la chiameremo chiave pubblica ed è conosciuta da tutti i computer della rete come una sorta di nome utente, e l’altra è la chiave privata, la quale invece è nota solamente all’utente.

Satoshi Nakamoto ha concepito la moneta nel suo sistema come una catena di firme digitali.

Quando l’utente A vuole effettuare una transazione verso l’utente B, deve inserire all’interno di questo documento virtuale l’importo della transazione in bitcoin, e la sua firma digitale sia delle passate transazioni tramite cui ha ricevuto quei bitcoin sia della chiave pubblica dell’utente a cui intende inviare denaro: in questo modo chi valida il pagamento potrà verificare da chi è stato fatto il pagamento (o quantomeno da quale chiave pubblica) e potrà potenzialmente verificare tutti i movimenti precedenti delle monete coinvolte e assicurarsi che esse siano effettivamente a disposizione del pagante.

Proprio la validazione delle transazioni è il punto cruciale del protocollo di Nakamoto, in quanto è in questa fase che si è reso necessario l’intervento di una terza parte.

L’idea è quella di trasferire il meccanismo di validazione da un ente centralizzato a un protocollo decentralizzato dove tutti gli utenti partecipano democraticamente alla verifica della transazione e dove la garanzia di bontà del sistema è basata sull’assunzione che la maggioranza del sistema sia in buona fede.

La transazione deve essere annunciata pubblicamente a tutti gli utenti del sistema in modo tale che, attraverso il protocollo, questi si accordino su un singolo storico di transazioni e sul loro ordine; questo perché il pagato vuole assicurarsi di essere il primo a ricevere una determinata transazione e non rischiare di ricevere denaro in una transazione non valida.

Ma come avviene questo “accordo”? Come viene validata praticamente una transazione?

Tutti i nodi (computer partecipanti) della rete che ricevono l’annuncio della transazione, mettono quest’ultima insieme ad altre a formare un blocco di transazioni, un oggetto che racchiude i dati delle transazioni, un numero casuale chiamato “nonce” e l’hash del blocco precedente.

L’hash è il risultato dell’applicazione di una funzione matematica non invertibile che genera, a partire da un determinato oggetto, una stringa che cambia ad ogni minimo cambiamento dell’oggetto in questione, come si vede nell’esempio.

Hash applicato a “Mario”: 61c8e16ad90d4e6da317180fa445e262e9313bbf21fd4d30b3b9b4425886b2f5

Hash applicato a “Maria”: 9ff18ebe7449349f358e3af0b57cf7a032c1c6b2272cb2656ff85eb112232f16

Gli utenti, per creare il blocco, applicano la funzione hash SHA256 al blocco proposto: il sistema richiede che questo hash inizi con un predeterminato numero di zeri. Per raggiungere questo obiettivo, gli utenti proveranno a cambiare la “nonce” del blocco fino a quando l’output della funzione soddisferà le richieste del sistema.

Questo procedimento è chiamato Proof of Work e generalmente richiede una grande potenza di calcolo per effettuare velocemente tutte le numerosissime prove necessarie.

Una volta che un utente riesce a trovare la giusta combinazione, il blocco è creato, e non potrà essere cambiato se non ripetendo di nuovo lo stesso gravoso lavoro già svolto.

Il sistema riconoscerà la validità del blocco, e dunque delle transazioni in esso contenute, cominciando a lavorare al blocco successivo inserendoci l’hash di quello creato dal nostro utente. Si creerà dunque una catena di blocchi (per questo, Blockchain), in cui sono scritte tutte le transazioni che sono state iscritte e che sono quindi verificate.

Ogni nodo lavorerà sui blocchi che egli ritiene coerenti con le informazioni che risultano sul suo registro, e quando non condividerà le informazioni contenute nel blocco creato proverà a costruirne un altro che lo possa sostituire e che sia ad esso “parallelo”.

In questo caso si formerà una fork, ovvero una biforcazione: la catena di riferimento per tutti i nodi della rete sarà quella più lunga, e a meno di anomalie lavoreranno sempre a partire dall’ultimo blocco di questa.

Ricapitolando:

  1. Nuove transazioni sono trasmesse a tutti i nodi
  2. Ogni nodo mette insieme le nuove transazioni in un blocco
  3. Ogni nodo lavora per completare la Proof of Work per il loro blocco
  4. Quando un nodo completa la Proof of Work, la trasmette a tutti i nodi
  5. I nodi accettano il blocco solo se tutte le transazioni sono valide e non già spese
  6. I nodi manifestano la loro approvazione per il blocco lavorando per creare il blocco successivo nella catena usando l’hash del blocco accettato

Il lavoro necessario per completare la Proof of Work è gravoso, essendo necessaria una grande potenza di calcolo, sia in termini di hardware sia in termini di elettricità. Perché dunque gli utenti del sistema dovrebbero fare questo lavoro?

L’ennesima trovata brillante di Nakamoto è quella di inserire un sistema di incentivi per coloro che creano i blocchi. Infatti, la prima transazione iscritta nel blocco assegna bitcoin di nuova emissione (e altri derivanti dalle commissioni pagate sulle transazioni nel blocco) al creatore di quest’ultimo.

I bitcoin infatti sono emessi ad ogni blocco creato, con una ricompensa che era inizialmente di 50 BTC e che si dimezza ogni 4 anni (attualmente è di 12.5 BTC). I bitcoin saranno emessi fino a un numero massimo di 21 milioni, dopo di ché l’incentivo consisterà soltanto nelle commissioni.

Ci sarà dunque una sorta di corsa all’oro, dove gli utenti proveranno ad aumentare la loro potenza di calcolo per risolvere per primi la Proof of Work e creare un nuovo blocco: coloro che effettuano questo lavoro si chiamano miner, e rappresentano chiaramente solo una parte degli utenti visti gli elevati costi da sostenere per effettuare questo lavoro.

Bitcoin può essere hackerato?

Se un nodo volesse provare ad attaccare il sistema non potrebbe creare nuovi bitcoin o rubare bitcoin che non gli sono mai appartenuti,  ma potrebbe soltanto cercare di riprendere coin che ha già speso: per rubare i bitcoin di un altro utente di cui conosce la chiave pubblica l’hacker dovrebbe conoscere la corrispondente chiave privata.

Potrebbe invece tentare, dopo aver effettuato un pagamento poi iscritto in blockchain, di creare un nuovo blocco che includa una transazione in cui invia quegli stessi bitcoin ma ad un altro destinatario.

Per fare ciò deve rieffettuare la Proof of Work per il blocco in cui è iscritta la transazione in cui l’hacker, per la prima volta, spendeva quei bitcoin; tuttavia, anche riuscisse a risolvere la Proof of Work per questo blocco, dovrà anche rendere la catena parallela che si verrebbe a creare la più lunga di tutte, poiché fino a quel momento sarà l’unico nodo a lavorare su essa (come detto, i nodi lavorano sulla chain più lunga).

Per raggiungere e superare la lunghezza della catena “onesta”, dovrà riuscire a risolvere la Proof of Work molto più spesso di tutti gli altri miner: questo potrà accadere solamente per una impensabile fortuna oppure per una potenza di calcolo che rappresenti almeno il 51% di quella totale nel sistema.

Ma in quest’ultimo caso, l’hacker sarebbe incentivato a lavorare sulla catena onesta e a guadagnare con probabilità maggiore del 50% le ricompense stabilite per ogni blocco, ottenendo molti più bitcoin di quelli della transazione che vorrebbe spendere due volte.

 

Bitcoin si presenta dunque come un sistema di pagamento che non necessita di intermediari e che permette all’utente di essere l’unico a disporre dei suoi fondi, senza dover dipendere da una terza parte che gestisca i fondi per lui: in poche parole si passa da un sistema basato sulla fiducia e centralizzato a un sistema basato sulla crittografia e completamente decentralizzato.

Mercati:
• Bittrex • Binance • Hitbtc
• Etherdelta • Liqui  • Eidoo
• Qryptos

No Comments

Post A Comment