BITCOIN: Tutto quello che devi sapere

bitcoin

BITCOIN cosa sono? UNA RETE DI PAGAMENTO O UNA NUOVA MONETA? ENTRAMBI! SCOPRI COSA È IL BITCOIN, COME FUNZIONA, COME GUADAGNARE E COME ACCITTARE PAGAMENTI NELLE NOSTRE APPLICAZIONI WEB: INIZIAMO A USARE DA SUBITO LA MONETA DEL FUTURO, PER GARANTIRE IL SUCCESSO Al NOSTRI SITI

Il 3 gennaio del 2009 Satoshi Nakamoto presento al grande pubblico il Bitcoin, una nuova forma monetaria, elettronica, sicura e anonima.

I LIMITI DELLE MONETE TRADIZIONALI (SUPERATI DA BITCOIN)
Quali sono le vulnerabilità del denaro? Sicuramente, la contraffazione: fin da quando è apparso per la prima volta, il denaro è stato soggetto a falsificazioni.
I progettisti delle varie monete hanno sempre cercato metodi per rendere la vita più difficile possibile ai falsari. Nel corso degli ultimi secoli si sono utilizzate monete realizzate con punzoni particolari, difficili da replicare fedelmente, mentre oggi siamo abituati a vedere sulle banconote filigrane molto particolari. Ma i falsari, prima o poi, riescono sempre a trovare un metodo per duplicare il denaro.

bitcoinL’avvento della contabilità digitale ha in buona parte risolto questo problema, ma ne ha introdotto un altro: la tracciabilità, che può generare nella violazione della privacy.

“DIGITALE” NON BASTA

C’è una precisazione da fare: abbiamo parlato di “contabilità digitale” e non di “denaro digitale”. Infatti, quando facciamo un acquisto online tramite Visa o Mastercard, il denaro è sempre reale: la contabilità delle transazioni è digitale. In pratica, non cambia il meccanismo di pagamento: alla fin fine se acquistiamo una penna su ebay, il denaro che paghiamo arriverà in mano al venditore. Possiamo schematizzare in questo modo: noi versiamo dei contanti alla nostra banca, la somma entra nel nostro conto corrente online, paghiamo la cifra dovuta al commerciante, tale cifra viene spostata sul conto del venditore, e questo va alla sede della sua banca per prelevare, tramite bancomat il denaro.
Il denaro rimane sempre sotto forma di monete o banconote, anche se la banconote che il venditore si ritroverà in mano non saranno fisicamente le stesse che noi avevamo versato in banca.
Quello che cambia è il modo in cui le transazioni vengono registrate: con la contabilità “classica”  è facile perdere le tracce dopo un paio di intermediari.
[amazon_link asins=’B00N9D6ISI,B01J824R7M,B01FM8S1HS,8895029771,B00Z1W2U9Q’ template=’ProductCarousel’ store=’giugio-21′ marketplace=’IT’ link_id=’4ced5639-0be8-11e7-b98f-e12794808e24′]

Per esempio, se acquistiamo un ombrello pagando in banconote, innanzitutto non è possibile sapere che siamo stati davvero noi ad eseguire l’acquisto. In secondo luogo, il commerciante avrà segnato la cifra che gli abbiamo corrisposto tra le sue entrate, ma a sua volta è difficile capire (anche se non impossibile) quale parte del denaro che gli abbiamo corrisposto rappresenta davvero il valore dell’ombrello e quale parte, invece, è il guadagno personale del commerciante che nulla ha a che vedere con il valore dell’oggetto in sé.
Riassumendo, il problema sta nel fatto che gli acquisti sono facilmente tracciabili, e questo può rivelarsi un problema soprattutto in paesi privi delle libertà fondament ali. Un dissidente di un regime autoritario ha sicuramente il conto corrente sotto controllo.
Inoltre, il sistema è centralizzato, ed i gestori possono commettere violazioni sui correntisti: l’esempio più noto è quello di Julian Assange, che dopo avere messo in imbarazzo il governo degli Stati Uniti si è ritrovato con i conti correnti congelati, impossibilitato ad eseguire qualsiasi pagamento, tra l’altro senza che vi fosse un provvedimento del tribunale, ma per spontanea decisione degli istituti bancari.

Dunque, il denaro · analogico” ha due punti deboli: la falsificazione e la tracciabilità, e l’entità dei problemi varia a seconda del fatto che si usi una contabilità “tradizionale” oppure “digitale”. Qualcuno, però, ha pensato ad un modo per risolvere queste vulnerabilità: passare completamente al digitale. Il programmatore Satoshi Nakamoto ha proposto, nel 2008, una idea di cryptocurrency, cioè di “moneta virtuale cifrata”. Il concetto stesso di cryptocurrency
era già stato suggerito nel 1998, ma nessuno aveva mai realizzato prima una implementazione ben funzionante come quella di Satoshi Nakamoto, conosciuta col nome di Bitcoin.

COME FUNZIONA UNA MONETA DIGITALE “TECNICAMENTE”?
Abbiamo visto che una moneta è in realtà un qualsiasi oggetto a cui viene dato un valore preciso, e che viene scambiata con altri oggetti come in una sorta di baratto. Quindi, per realizzare una moneta virtuale potremmo utilizzare un qualsiasi oggetto digitale, ed assegnargli un va lore: una immagine, un file audio, una stringa di testo. Naturalmente, questi esempi non vanno bene, perché sono troppo facili da replicare: è necessario qualcosa di univoco, cioè una tipologia di oggetto in cui ogni esemplare è riconoscibile e non duplicabile (un meccanismo, quindi, simile a quello dei numeri di serie sulle banconote). La matematica ci viene in aiuto, ed ecco quindi il concetto di cryptocurrency. L’idea è di utilizzare particolari funzioni matematiche che consentono di calcolare coppie di numeri tra essi collegati ma ta li da non poter risalire ad uno dei due anche se si conosce l’altro, di modo che l’unico a conoscerli entrambe sia chi li ha calcolati. È la stessa logica della crittografia asimmetrica.

DAI MESSAGGI ALLE MONETE
La rete Bitcoin è costruita come una rete P2P. Ogni utente della rete ha diverse (potenzialmente illimitate) coppie di chiavi, che può raccogliere in un portafoglio digitale. In ciascuna di queste coppie, la chiave pubblica è resa nota a tutti e funziona da punto di invio o di ricezione per i vari pagamenti: è in un certo senso un po’ come un IBAN. Per tale motivo la chiave pubblica, (costituita da 33 caratteri alfanumerici), viene chiamata indirizzo bitcoin. Invece, la chiave privata corrispondente è nota esclusivamente al suo proprietario e serve a consentire il pagamento (cioè la cessione, non la riscossione). In questo modo, solo il proprietario della coppia di chiavi può davvero autorizzare la cessione di alcune sue monete Bitcoin.
Un Bitcoin è una stringa di testo, contenente !’indi- rizzo del proprietario, cifrata con la chiave privata del proprietario stesso. In seguito, se il proprietario vorrà cedere la sua moneta a qualcun altro per eseguire un acquisto,
dovrà aggiungere ad essa l’indirizzo (la chiave pubblica) del nuovo proprietario e firmare il tutto con la propria chiave privata. Il fatto che si debba oggetto di una transazione economica: è addirittura costruita dall’insieme dei vari indirizzi che l’hanno posseduta. In fondo, ciò che conta di una moneta è poter eseguire delle transizioni: sono  proprio queste il punto focale del meccanismo, quind i incentrare su queste il protocollo Bitcoin è la soluzione più semplice. Le transizioni sono cifrare con la propria chiave privata fa sì che solo pubbliche, anzi: quando si esegue un pagamento, l’attuale proprietario possa porre la firma neces- le Informazioni sulle monete (quantità di Bitcoin saria a concludere l’acquisto. Ciò significa che è spesi, indirizzo del mittente e del destinatario) sempre possibile risal ire alla storia di una moneta: tramite l’ultima chiave pubblica è possibile decifrare la parte criptata. Questa è costituita da due parti: un’altra chiave pubblica e un altro “blob” criptata (da decifrare con l’indirizzo bitcoin appena citato). A sua volta, questo blob contiene un ulteriore indirizzo bitcoin e relativo blocco di testo criptato con esso. È quindi possi bile proseguire fino al la stringa di testo originale, ricostruendo l’intera storia della moneta dal suo ultimo acquirente fino al creatore ottenendo tutti i vari indirizzi bitcoin attraverso cui vengono inviate all’intera rete. Inoltre, ogni client Bitcoin, per poter funzionare, deve scaricare dalla rete gli aggiornamenti in tempo reale sulle transizioni eseguite nel mondo. In questo modo è impossibile che un utente spenda due volte una propria moneta: quando esegue la prima transazione, tutti sanno che quel particolare Bitcoin è passato ad un altro utente e dunque non è più di sua proprietà, la moneta in questione è passata.

COME NASCE UN BITCOIN
In pratica, ogni moneta Bitcoin esiste in quanto tutto ruota attorno ad un software che lavora costantemente per cercare di risolvere un algoritmo inviato da un server remoto. Un algoritmo talmente complesso (con una difficoltà variabile nel tempo) che anche il più potente mainframe del mondo non sarebbe in grado di trovarne la soluzione in pochi minuti. Proprio per questo motivo, tutti i PC sui quali è installato il software di mining (è questo il gergo tecnico che viene utilizzato per identificare la produzione di Bitcoin) si uniscono fra loro creando un pool. Ogniqualvolta il pool riesce a risolvere l’algoritmo, il server assegna 25 Bitcoin all’intero gruppo. Il gruzzolo viene poi diviso in maniera proporzionale (a seconda della potenza di calcolo, calcolata in MHash/ s, Mega-hash al secondo) fra tutti i PC che hanno partecipato all’operazione.
Le monete guadagnate vengono poi conservate in un portafogli digitale: si tratta di un “semplice” file conservato sul nostro PC. Perso il file, persi i soldi! Appare evidente, quindi, che i segreti per generare tanta moneta digitale sono due: procurarsi un computer decisamente potente e iscriversi ad un pool fatto da PC altrettanto prestanti. Maggiore sarà la qualità delle macchine del gruppo, minore sarà il tempo necessario per la soluzione dell’algoritmo.

È DAVVERO SICURO?
Si potrebbe obiettare che se davvero è possibile conoscere tutti gli indirizzi proprietari di una moneta, e tutti conoscono tutte le monete esistenti (grazie al database di informazioni), il sistema sia tracciabile. In realtà, gli indirizzi bitcoin sono generati in modo casuale, e non possono essere collegati direttamente ad una persona: è infatti consigliabile utilizzare un indirizzo diverso per ogni transazione.
Facciamo un esempio: se vogliamo permettere al lettori del nostro blog di inviarci un pagamento tramite bitcoin, dovremo fornire pubblicamente un indirizzo a cui far arrivare i pagamenti. Ciò significa che tutti, Guardia di Finanza e Polizia Postale incluse saranno in grado di conoscere questo indirizzo ed i suoi movimenti, compresi e soprattutto quelli futuri: potrebbero facilmente scoprire quali oggetti servizi acquisteremo con quelle monete. La soluzione consiste nell’avere a disposizione diversi indirizzi bitcoin ma non dirlo a nessuno.
Dal momento che le chiavi pubbliche non si possono collegare alle persone in modo automatico, ma solamente se il proprietario decidere di farlo sapere a tutti, è sufficiente avere un indirizzo “pubblico”, a cui tutti possono inviare denaro, e diversi indirizzi “privati”su cui trasferire le monete che arrivano a quello pubblico. In questo modo, eventuali inquirenti potrebbero sapere quante monete ci sono state cedute, ed anche quante ne abbiamo inviate ad altri indirizzi Bitcoin. Ma non potrebbero in alcun modo sapere chi sia il reale proprietario di questi indirizzi di arrivo: certo, potrebbero sospettare che si tratti di indirizzi che appartengono comunque a noi e che sia tutta una messa in scena per far perdere le tracce, ma non potrebbero dimostrarlo.
Va anche detto che in realtà la “cronologia” di una moneta si può ricostruire solo grazie al database delle transazione, e non direttamente dalla moneta stessa. Questo perché, di norma, invece di cifrare l’intero testo che costituisce la moneta per eseguire la firma che garantisce una transazione economica, si cifra soltanto un hash (con algoritmo SHA-2) del testo in questione. Un hash è un’altra stringa di testo ottenuta con una funzione di hash dalla stringa che rappresenta la moneta. La funzione di hash è per definizione non iniettiva, quindi non biettiva e non si può invertire. Di conseguenza, dalla moneta si ottiene l’hash, ma dall’hash non si può ottenere la moneta. Tuttavia, ogni moneta realizza un unico hash, e questo può essere realizzato cJ ,11111t1 \ olo moneta: due stringhe di t esto, cioè due monete Bitcoin, differenti non possono generare lo stesso hash. Ciò significa che chi possiede una monete può risalire fino all ‘hash generato dal suo precedente proprietario, ma lì deve fermarsi: non può ricostruire il contenuto della moneta prima che questa arrivasse nelle mani della persona da cui egli stesso l’ha ottenuta. Certo, può comunque risalire all’intera cronologia senza nemmeno bisogno di avere la moneta “in mano”: gli basta controllare il database comune delle varie transazioni.

COME SI PRODUCE UN BITCOIN
L’ultima cosa che dobbiamo ancora scoprire sui Bitcoin è in che modo si possono ottenere. In fondo, per ogni moneta è fondamentale stabilire in che modo possa essere prodotta, per indicare anche un limite di produzione (anche nella realtà, la banca centrale europea non può stampare tutti gli euro che vuole, ci sono delle regole da rispettare).
Di solito nessuno si preoccupa di come vengano creati i bitcoin, perché esistono già strumenti in grado di farlo. Il fatto è che per degli sviluppatori è fondamentale saperlo, soprattutto perché man mano che passa il tempo servono sistemi sempre più efficienti per produrre nuovi blocchi, e quindi è necessario che qualcuno sappia come programmare quest i “generatori di blocchi“.
Cos’è un blocco? Abbiamo detto che tutte le transizioni vengono comunicate, sottoforma di messaggio, all’intera rete Bitcoin. E la rete memorizza questi messaggi in diversi “blocchi”, che sono quindi semplicemente dei contenitori realizzati periodicamente.
Questo permette a nuovi client di scaricare facilmente l’intero elenco delle t ransizioni mai eseguite: basta ottenere tutti i blocchi, che tra l’altro sono identificabili (ci sono i blocchi della settimana scorsa, quelli di due mesi fa, quelli di t re anni cinque mesi e tre giorni fa, eccetera).
I Bitcoin vengono forniti agli utenti come ricompensa per avere risolto un problema matematico, operazione chiamata “mining” (letteralmente “scavare in miniera”) fondamentale per tenere in vita tutto il sistema dei bitcoin. Il problema in questione consiste nell’identificare un numero (chiamato nonce) tale che dopo essere stato sottoposto due volte all’algoritmo di hash SHA-2 si ottenga una stringa che inizia con un certo numero di zeri.
Naturalmente, visto che la funzione hash non è invertibile, si deve procedere per tentativi (un po’ come nel caso del brute force). Il numero di zeri che devono essere presenti al l’inizio della stringa viene variato automaticamente per rendere l’operazione più semplice o più complessa in modo che venga sempre generato, in media, un nuovo blocco ogni 10 minuti.
La difficoltà di trovare il numero nonce aumenta esponenzialmente con la quantità di zeri che devono essere presenti all’inizio della stringa ottenuta con il doppio hash.
Ogni nodo della rete, rappresentato da un utente con il proprio client, si occupa quindi di calcolare questo numero ed utilizzarlo per ottenere assieme al contenuto del blocco su cui sta lavorando un hash. Quando riesce ad ottenere l’hash che inizia con il giusto numero di zeri, comunica l’avvenuta scoperta a tutta le rete. Quando gli altri nodi della
rete riconoscono che la soluzione proposta è corretta, “archiviano” il blocco, che entra dunque a far parte dello “storico” delle transazioni, e cominciano ad inserire le prossime transizioni che riceveranno in un blocco completamente nuovo. L’insieme in ordine cronologico dei vari blocchi è chiamato “catena dei blocchi”. In pratica, la rete Bitcoin si comporta in questo modo:
Quando due utenti eseguono una transazione, questa viene comunicata a tutti i nodi Ogni nodo minatore raccoglie le nuove transizioni di cui viene informato in un blocco Ogni minatore calcola la funzione per risolvere il problema matematico (questo è il mining vero e proprio)
Quando un nodo trova la soluzione, cioè il nonce, la invia a tutto il resto della rete I nodi accettano il blocco soltanto se le transizioni in esso contenute sono valide Il minatore ottiene una ricompensa in bitcoin per il blocco contenente la soluzione che ha appena scoperto I nodi dichiarano di avere accettato il blocco ricevuto e cominciano a lavorare su un altro blocco uti lizzando l’hash del blocco appena accettato.
SI RICOMINCIA DA CAPO
Per ogni blocco vengono forniti dei Bitcoin, in numero decrescente nel tempo. Infatti, nel 2008 per ogni blocco venivano forniti 50 Bitcoin, mentre  dal 2012 ne vengono prodotti 25 (e così sarà fino al 2016). La ricompensa verrà dimezzata ogni 4 anni fino ad arrivare a zero: secondo questo meccanismo, sarà possibile generare al massimo 21 milioni di monete.
Visto che la complessità di calcolo aumenta sempre più, è oggi praticamente impossibile ottenere qualcosa con il proprio computer: è necessario utilizzare dei minicomputer dedicati (per esempio ASIC) oppure collaborare con altri minatori (per esempio tramite il sito www.bitminter.com). Nel caso della collaborazione, il sito si occupa di distribuire i bitcoin tra i vari utenti che hanno contribuito a risolvere il problema sul blocco.
Ovviamente, visto che vengono forniti solo 25 Bitcoin e probabilmente ci sono ben più di 25 collaboratori tra cui distribui rl i, ogni utente otterrà una frazione di moneta. In pratica, invece di ottenere 1 Bitcoin, riceverà O,OOX Bitcoin. Questo non è un problema, sia perché i Bitcoin possono essere divisi fino all’ottava cifra decimale, sia perché oggi un Bitcoin vale ben 96 euro.
Quando i bitcoin non potranno p iù essere prodotti (perché la ricompensa per ogni b locco sarà diventata pari a zero) i nodi potranno comunque a realizzare i blocchi finanziandosi in altri modi, per esempio guadagnando dalle varie transazioni gestite.