Mostra tutti

Bitcoin e tecnologia blockchain – Evoluzione della moneta virtuale

Bitcoin e tecnologia blockchain – Evoluzione della moneta virtuale

Cosa è un Bitcoin

Bitcoin (simbolo: Bitcoin, blockchain, cryptovaluta, ; codice: BTC o XBT) è una moneta elettronica creata nel 2009 da un anonimo inventore, noto con lo pseudonimo di Satoshi Nakamoto, che sviluppò un’idea da lui stesso presentata su Internet a fine 2008. Per convenzione, il termine Bitcoin, con l’iniziale maiuscola, si riferisce alla tecnologia e alla rete, mentre il minuscolo bitcoin si riferisce alla valuta in sé.

A differenza della maggior parte delle valute tradizionali, Bitcoin non fa uso di un ente centrale: esso utilizza un database distribuito tra i nodi della rete che tengono traccia delle transazioni, ma sfrutta la crittografia per gestire gli aspetti funzionali, come la generazione di nuova moneta e l’attribuzione della proprietà dei bitcoin.

La rete Bitcoin consente il possesso e il trasferimento anonimo delle monete; i dati necessari a utilizzare i propri bitcoin possono essere salvati su uno o più personal computer sotto forma di “portafoglio” digitale, o mantenuti presso terze parti che svolgono funzioni simili a una banca. In ogni caso, i bitcoin possono essere trasferiti attraverso Internet verso chiunque disponga di un “indirizzo bitcoin”. La struttura peer-to-peer della rete Bitcoin e la mancanza di un ente centrale rende impossibile a qualunque autorità, governativa o meno, il blocco dei trasferimenti, il sequestro di bitcoin senza il possesso delle relative chiavi o la svalutazione dovuta all’immissione di nuova moneta.

Bitcoin è una delle prime implementazioni di un concetto definito come criptovaluta, descritto per la prima volta nel 1998 da Wei Dai su una mailing list.

Cosa è un blockchain

Una blockchain (in italiano letteralmente: catena di blocchi) è una base di dati distribuita, introdotta dalla valuta Bitcoin che mantiene in modo continuo una lista crescente di record, i quali fanno riferimento a record precedenti presenti nella lista stessa ed è resistente a manomissioni. La prima e più conosciuta applicazione della tecnologia blockchain è la visione pubblica delle transazioni per i bitcoin, che è stata ispirazione per altre criptovalute e progetti di database distribuiti.

Analisi dei Bitcoin e tecnologia blockchain

Nel corso degli ultimi anni i Bitcoin, e la relativa tecnologia, sono apparsi spesso nei titoli di tutti i giornali. Tuttavia, i dibattiti sull’argomento di solito sono ad esclusività di esperti e pochi eletti: l’uomo comune ha l’impressione che qualcosa di nuovo e importante stia per accadere con questa criptomoneta ma non sa molto di più in merito. In realtà questo nuovo tipo di tecnologia è sì elegante ma non poi così difficile da comprendere. Per questo vi spiegheremo il funzionamento di blockchain con termini semplici e diretti, evitando il gergo tecnico il più possibile.

Per analizzare e capire con facilità come funziona blockchain bisogna aver chiari alcuni concetti..

  • FIRMA DIGITALE
    Chiunque può generare un nome digitale e una firma digitale; non somigliano a un nome e cognome stampati o a una firma a mano, si tratta rispettivamente di una chiave pubblica e di una privata. Questi due strumenti digitali aprono gli scenari seguenti:
    – Una persona può scrivere messaggi, firmarli in maniera digitale e pubblicarli online;
    – Il resto del mondo può vedere che il messaggio è originale, identificando il nome digitale del mittente grazie alla firma digitale;
    – Nessuno può contraffare il messaggio firmato;
    – Una persona può generare varie coppie di nome – firma digitale (pensiamo a degli pseudonimi) per differenti scopi.
  • L’ hashing ed il suo funzionamento 
    Mettiamo il caso che io scriva un messaggio (ad esempio “Hello”) e voglia mandarlo a un amico. Ho bisogno di essere sicuro che il messaggio non venga alterato in nessun modo, come posso fare? Il modo migliore sarebbe chiedere al mio amico di rinviarmi il messaggio per poter fare il confronto. In molti utilizziamo questo metodo quando dettiamo per telefono dei numeri o un indirizzo email.
    Può accadere, però, che il messaggio arrivi correttamente al mio amico ma che ci sia qualche problema in quello di conferma; in questo caso, non possiamo essere sicuri che non sia stato alterato. E poi il messaggio potrebbe essere molto lungo. E se il messaggio contenesse un video ad alta definizione? Non ha senso inviare nuovamente tanti gigabyte di dati solo per verificare che il destinatario abbia ricevuto il video correttamente. Per questo motivo viene utilizzato un altro metodo, chiamato.
    – Creiamo una rappresentazione numerica della parola “Ciao” (Hello). Ecco un modo per farlo:
    – Associamo a ogni lettera una sequenza numerica (ad esempio, a=1; b=2; z=26). “Hello” diventerebbe quindi 8 5 12 12 15 (in alfabeto inglese).
    – Moltiplichiamo i numeri tra loro e otterremo 86400. Ecco come funziona l’hashing semplice.
    – Dopo aver inviato il messaggio originale al mio amico, invio l’hash così si può verificare se il messaggio ricevuto coincide con quello che davvero si voleva inviare.
    Se il messaggio venisse alterato durante l’invio (invece di “Hello” diventa “Hallo”) anche l’hash cambierebbe, diventando: 8x1x12x12x15=17280. Il mio amico si aspetterebbe di ricevere il numero 86400 e, quando riceve invece il numero 17280, si accorgerebbe della differenza e saprebbe che qualcosa è andato storto.
    Dovremmo far notare che lo stesso hash potrebbe essere modificato o compromesso. Il suo scopo non è quello di proteggere l’integrità del messaggio (di questo si occupa la firma), ma serve solo per semplificare e velocizzare il procedimento di controllo. Inoltre, per come viene utilizzato al momento, gli utenti non cifrano gli hash inviandoli agli amici in un messaggio a parte; sono i computer a gestire l’intero processo senza l’intervento dell’utente.
    Il metodo di hashing semplice non coglie lo scambio di lettere in un messaggio, stiamo solo facendo un esempio. Nel mondo reale vengono utilizzati algoritmi molto più complessi. Creare un messaggio con un hash “crittograficamente robusto” è un processo molto lungo. Prendete, ad esempio, il famoso algoritmo SHA-1 (che non è poi così robusto come dovrebbe essere, ma questa è un’altra storia). Un hash di “Hello” potrebbe avere queste sembianze:
    f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
    Invece per “Hallo” l’hash potrebbe essere questo:
    59d9a6df06b9f610f7db8e036896ed03662d168f
    Non sembrano avere molto in comune, vero? Beh, lo scopo è proprio quello, utilizzare un codice.
  • Adesso affrontiamo la parte pratica del “denaro virtuale”
    Immaginate che 30 bambini in un’aula vogliano utilizzare il proprio denaro di gioco, che dovrebbe essere completamente virtuale (ad esempio dei semplici numeri su dei foglietti o, nel nostro caso, immagazzinati su Internet).
    Per fare ciò, i bambini scrivono sulla lavagna il valore del denaro inizialmente in proprio possesso e poi segnano quanto denaro ha dato ognuno a un proprio compagno di classe. Scrivono a mano ogni “transazione” e poi la firmano così nessuno può fare confusione con le transazioni durante la ricreazione. Questo metodo funziona alla perfezione fino a quando la maestra non arriva e cancella tutto quello che c’è scritto sulla lavagna, prendendo il controllo del flusso di denaro perché ha il potere di farlo o perché vuole evitare che i bambini utilizzino il denaro per scopi illeciti.
    In seguito a queste condizioni sfavorevoli, i bambini iniziano a registrare le proprie transazioni su un quaderno. Ognuno ha un quaderno sotto il banco e aggiorna costantemente le proprie transazioni effettuate. Ovviamente non possono parlarne ad alta voce durante la lezione, per questo utilizzano i foglietti (nel nostro caso, sarebbe Internet).
    Questo, grossomodo, è il funzionamento alla base della criptomoneta.
  • Raccogliere le transazioni in pagine “blockchain”
    Ora ci sono 30 foglietti che circolano in classe: come sapere che ogni studente ha copiato i contenuti di tutti gli appunti sul quaderno? Quale foglietto è stato copiato da tutti gli studenti ed è disponibile? Come sapere se Billy deve 50 monete a Johnny e non le ha pagate già a qualcun altro senza che Johnny lo sappia?
    Esiste una soluzione a questo problema: i bambini hanno bisogno di scambiare non solo brevi appunti contenenti righe di transazioni, ma pagine intere. Quando qualcuno ha accumulato un sacco di transazioni, copia accuratamente tutte le righe, calcola l’hash della pagina precedente, lo copia all’inizio della nuova pagina e distribuisce la nuova pagina a tutti gli studenti della classe.
    Ricevendo la pagina, Johnny effettua un controllo: tutte le righe dovrebbero essere scritte con la stessa calligrafia, la pagina dovrebbe contenere un nuovo numero, e l’hash della pagina precedente dovrebbe corrispondere con l’hash scritto nella nuova pagina. E un’altra cosa: ogni partecipante alle transazioni dovrebbe essere in possesso della quantità di denaro da pagare. Per assicurarsi di questo, Johnny ha bisogno di esaminare l’intero registro delle transazioni e contare i soldi. Sembra piuttosto scomodo ma un computer gestisce il tutto con facilità.
    Quindi se i numeri sono stati sommati bene, Johnny scrive accuratamente una nuova pagina del suo registro e accetta le transazioni. Separa le righe/transazioni che sono ora incluse nella pagina e che non hanno bisogno di essere girate in classe; possono essere a disposizione di tutti e la nuova pagina viene distribuita.
    Se qualcosa va storto (qualcuno non ha soldi sufficienti per la transazione o il numero della pagina sembra sembra dispari o gli hash non combaciano), Johnny dice: “qui c’è puzza di bruciato”, e si libera dell’intera pagina e poi torna ai sui affari come se nulla fosse.
    Alla fine si ha una serie di pagine numerate (blocchi), ovvero una (catena di blocchi).È semplice e non c’è nessun magia.

Come vengono generati i Bitcoin

La rete Bitcoin crea e distribuisce in maniera completamente casuale un certo ammontare di monete all’incirca sei volte l’ora ai client che prendono parte alla rete in modo attivo, ovvero che contribuiscono tramite la propria potenza di calcolo alla gestione e alla sicurezza della rete stessa. L’attività di generazione di bitcoin viene spesso definita come “mining”, un termine analogo al gold mining (estrazione di oro). La probabilità che un certo utente riceva la ricompensa in monete dipende dalla potenza computazionale che aggiunge alla rete relativamente al potere computazionale totale della rete.

Inizialmente il client stesso si occupava di svolgere i calcoli necessari all’estrazione dei Bitcoin, sfruttando la sola CPU. Con l’aumentare della potenza di calcolo totale della rete e a seguito della natura competitiva della generazione di bitcoin, questa funzionalità è diventata antieconomica ed è stata rimossa. Oggigiorno esistono dei programmi specializzati che inizialmente sfruttavano la potenza delle GPU e delle FPGA, e che ora utilizzano hardware dedicato basato su processori ASIC progettati per questo utilizzo. Dal momento che la quantità di operazioni mediamente necessarie a chiudere con successo un singolo blocco è diventata talmente elevata da richiedere grandi quantità di risorse in termini di energia elettrica e potenza computazionale, la maggior parte dei minatori si unisce in “gilde” chiamate mining pool dove tutti i partecipanti mettono in comune le proprie risorse, spartendosi poi i blocchi generati in funzione del contributo di ognuno.

Il numero di bitcoin creati per blocco era inizialmente di 50 BTC (aggiunti agli eventuali costi delle singole transazioni). Tale quantità è stata programmata per diminuire nel tempo secondo una progressione geometrica con un dimezzamento del premio ogni 4 anni circa. Così dimensionata, questa serie comporta che in totale verranno creati esattamente 21 milioni di bitcoin nel giro di 130 anni circa, con l’80% degli stessi creati nei primi 10 anni. A partire dal 28 novembre 2012, la ricompensa è passata a 25 BTC per blocco, e così sarà per i successivi 4 anni. Con la progressiva riduzione della ricompensa di generazione nel tempo, la fonte del guadagno per i minatori passerà dalla generazione della moneta alle commissioni di transazione incluse nei blocchi, fino al giorno in cui la ricompensa cesserà di essere elargita: per allora l’elaborazione delle transazioni verrà ricompensata unicamente dalle commissioni di transazione stesse.

L’importo della commissione può essere impostato liberamente da chi effettua una transazione, sebbene da maggio 2013, con l’aggiornamento alla versione 0.8.2 del client ufficiale, commissioni al di sotto della soglia di 0.0001 BTC vengono considerate non standard e, di conseguenza, le transazioni associate rischiano di non essere mai confermate. Tanto più è alta la commissione tanto più è probabile che venga inclusa nel primo blocco estratto, accelerando quindi la prima conferma. Gli utilizzatori hanno dunque un incentivo a includere tali commissioni, perché ciò significa che la transazione sarà probabilmente elaborata più rapidamente: ogni minatore ha la libertà di scegliere quali transazioni includere nel blocco che sta elaborando, che ha una dimensione massima prefissata dal protocollo, e che quindi sarà invogliato a includere per prime le transazioni con commissioni maggiori.

Tutti i nodi della rete competono per essere i primi a trovare una soluzione di un problema crittografico che riguarda il blocco candidato, un problema che non può essere risolto in altri modi che tramite bruteforce e che quindi richiede sostanzialmente un enorme numero di tentativi. Quando un nodo trova una soluzione valida l’annuncia al resto della rete attribuendosi contemporaneamente i bitcoin in premio previsti dal protocollo, i nodi che ricevono il nuovo blocco lo verificano e lo aggiungono alla loro catena, ricominciando il lavoro di mining al di sopra del blocco appena ricevuto.

Dal punto di vista tecnico il processo di mining non è altro che un’operazione di hashing inverso: determinare un numero (nonce) tale per cui l’hash SHA-256 di un insieme di dati rappresentante il blocco sia inferiore a una soglia data. Questa soglia, chiamata difficoltà, è ciò che determina la natura concorrenziale del mining di bitcoin: più potenza di calcolo viene aggiunta alla rete bitcoin e più questo parametro aumenta, aumentando di conseguenza il numero di calcoli mediamente necessari a creare un nuovo blocco e aumentando quindi il costo di creazione dello stesso, spingendo i nodi a migliorare l’efficienza dei loro sistemi di mining per mantenere un bilancio economico positivo. L’aggiornamento di questo parametro avviene ogni 14 giorni circa, dimensionandosi in modo che un nuovo blocco venga generato in media ogni 10 minuti.

Costi di transazione dei Bitcoin

Visto che i nodi non hanno l’obbligo di includere le transazioni nei blocchi che generano, chi invia bitcoin potrà volontariamente pagare una tassa di trasferimento. Facendo questo la velocità di trasferimento aumenterà e offrirà un incentivo agli utenti per tenere attivi i nodi, specialmente quando la difficoltà per generare bitcoin aumenterà o se la quantità di premio per blocco decrescerà nel tempo. I nodi collezionano le tasse di transazione associate a tutte le transazioni presenti nel loro blocco dedicato.

Cosa è il mining

Il mining (letteralmente: processo minerario) è un sistema di consenso distribuito utilizzato per confermare le transazioni in attesa includendole nella block chain. Questo mantiene un ordine cronologico nella block chain, protegge la neutralità della rete e consente a diversi computer di concordare sullo stato del sistema. Per essere confermate, le transazioni devono essere impacchettate in un blocco che rispetti regole crittografiche molto rigide, che verranno verificate dalla rete. Queste regole impediscono che qualunque blocco precedente venga modificato, perché ciò invaliderebbe tutti i blocchi successivi. Il mining crea inoltre l’equivalente di una lotteria competitiva che impedisce a chiunque di aggiungere facilmente nuovi blocchi consecutivamente nella block chain. In questo modo nessuno può controllare cosa è incluso nella blockchain o sostituire parti della block chain in modo da riottenere quanto speso.

ATM (Bancomat) Bitcoin

In Italia sono funzionanti alcuni punti Automated Teller Machine (ATM) nei quali è possibile prelevare contanti o versare contanti nel proprio conto bitcoin, i quali verranno convertiti secondo il tasso di cambio vigente in quel momento.[48] Prima di utilizzare un ATM bitcoin è necessario installare il portafoglio elettronico nel proprio smartphone e generare il proprio indirizzo bitcoin (il numero del proprio conto corrente virtuale, analogo al codice IBAN) e il relativo QR Code da far riconoscere alla macchina per il successivo accreditamento o prelievo di valuta bitcoin. Il primo ATM (Bancomat) bitcoin al mondo, marchiato Robocoin, fu installato a Vancouver (Canada) e cominciò a funzionare il 1º novembre 2013. Il primo installato in Italia (terzo in Europa dopo quelli di Helsinki e Zurigo), a marca Lamassu, ha cominciato a operare a Udine il 20 febbraio 2014.

Gli ATM (Bancomat) del circuito di Bitcoin sono separati e non integrati con Visa, Mastercard, o altri circuiti di pagamento utilizzati dagli istituti bancari.

Bitcoin Central

Con il Bitcoin-Central, l’utente ha un proprio codice IBAN che così permette un’identificazione univoca internazionale del conto corrente, anche fuori dal circuito di pagamento Bitcoin: la conversione del Bitcoin in euro e nelle altre valute, consente di effettuare bonifici bancari internazionali verso qualsiasi altro circuito di pagamento.

Quanto vale un Bitcoin in Euro

1 BTC = 3904.68 Euro Questa conversione Bitcoin / Euro è aggiornata con tassi di cambio al 2 settembre 2017.

Caratteristiche BITCOIN:
Freq. Difficulty Adj: 2016 blocks – Riduzione Block Reward: 50% – Algoritmo: SHA256 – Indirizzo Twitter: @bitcoin
Sito Web: Bitcoin.org – Algoritmo Consensus: PoW

libro vita da hacker