8 Set 2016

Blockchain, in parole semplici

Sicurezza

Nel corso degli ultimi anni i Bitcoin, e la relativa tecnologia blockchain, 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.

Blockchain, simplified

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.

Prima un paio di concetti tecnici…

Come funzionano le firme digitali

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:

  1. Una persona può scrivere messaggi, firmarli in maniera digitale e pubblicarli online;
  2. Il resto del mondo può vedere che il messaggio è originale, identificando il nome digitale del mittente grazie alla firma digitale;
  3. Nessuno può contraffare il messaggio firmato;
  4. Una persona può generare varie coppie di nome – firma digitale (pensiamo a degli pseudonimi) per differenti scopi.

Come funziona l’hashing

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 hashing.

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.

Il denaro virtuale

Ok, abbiamo superato la parte più difficile. Quante cose interessanti si possono fare con queste tecnologie?

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!

Problemi

Raccogliere le transazioni in pagine

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 blockchain (catena di blocchi). È semplice e non c’è nessun magia.

Grafomania

Se questo processo non è controllato da norme supplementari, ogni studente inizierebbe la propria versione della pagina #123. Di conseguenza, ci sarebbero 30 versioni del registro delle transazioni circolando in classe. Come si fa a individuare la corretta? La routine rende tutto questo possibile: la pagina viene creata ogni 10 minuti, quindi può essere distribuita all’intera classe, e il responsabile di compilare il registro viene scelto in maniera casuale.

Con i Bitcoin, hanno deciso di affrontare la questione nel modo seguente. Gli studenti devono svolgere dei compiti utili (come risolvere problemi matematici scelti a caso dal libro di testo). Il primo a risolvere il problema raccoglie tutti i foglietti e inizia a creare una nuova pagina. Mentre il resto continua a risolvere il problema, la pagina dello studente migliore viene distribuita alla classe e accettata da tutti, per poi iniziare a risolvere un altro problema matematico.

Non è un problema se le pagine sono scritte da un unico studente modello; è molto più importante che lo faccia qualcuno molto veloce. E se ci sono più studenti modello in classe, i problemi si risolvono più velocemente e il gruppo può passare al capitolo successivo del libro di testo.

Ad ogni modo, se si affida sempre a Karl, studente modello, il compito di compilare la pagine, questi potrebbe rifiutare a Johnny la possibilità di passare denaro virtuale. Chiunque sia disposto a farlo, dovrebbe essere veramente uno studente strafottente (lui o lei dovrebbe avere abilità informatiche che superino la metà delle capacità informatiche di tutti gli utenti di Bitcoin, generate da milioni di computer nel mondo). Quindi, se Karl fosse capace di fare tutto questo (il che vorrebbe dire che ha investito tanto in capacità informatiche), le truffe insignificanti non avrebbero senso.

C’è un’altra peculiarità. Uno studente modello scrive la soluzione del problema matematico anche sulla pagina (badate bene, questo problema matematico non è proprio casuale ma è importante per la pagina in sé). È importante impedire a qualcuno di falsificare tutte le pagine dalla 123 alla pagina attuale anche nel giro di un anno. In questo modo un imbroglione dovrebbe risolvere una gran quantità di problemi.

Vantaggi

Con il suddetto approccio, il nostro registro viene incrementato da nuove pagine correttamente compilate.

  1. Questo processo non dipende dal numero di partecipanti.
  2. Questo processo non è centralizzato. Non può essere chiuso o contraffatto (qualsiasi collaboratore del sistema può controllare l’integrità di tutte le pagine in qualsiasi momento).
  3. Questo processo è anonimo, fornendo un nome digitale che non può essere tracciato da quello reale. Qualsiasi Johnny può provare che il portafoglio concernente un particolare cognome digitale appartiene a lui (se ha una firma digitale corrispondente, può utilizzare il portafoglio). Ma sarebbe estremamente impegnativo provare che il portafogli appartiene a Johnny nella vita reale se lo stesso Johnny non vuole che questo avvenga.
  4. Non viene fatta pagare alcuna tassa. Ad ogni modo, potete pagare uno studente modello per assicurarvi che la vostra transazione sia copiata sulla pagina in modalità preferenziale.
  5. Una volta effettuata una transazione, questa non può essere stornata (questo vuol dire che nessuno può depennare la riga in cui si afferma che Billy ha ceduto dei soldi a Johnny, dal momento che ogni pagina fa riferimento a quella precedente). Quando si modifica una pagina (anche con il consenso degli altri partecipanti), si devono modificare anche le altre pagine, e questo comporta tanti, ma davvero tanti problemi matematici da risolvere. Quando si hanno dubbi, i partecipanti faranno affidamento alla catena di pagine più lunga.

Se corrompo più della metà della classe (preferibilmente, studenti modello), posso far spostare la classe in un’aula diversa e iniziare una storia alternativa in cui non ho mai dato soldi a nessuno. Dopodiché, posso tornare alla classe precedente e presentare loro un registro di transazioni più lungo. Questo trucchetto è l’essenza di quello che si chiama attacco del 51 per cento (anche se abbiamo già parlato sul perché sarebbe molto arduo nella vita reale, come abbiamo fatto vedere nell’esempio di Karl, l’alunno modello “strafottente”).

Da dove proviene il denaro

Inizialmente, tutti i bitcoin si sarebbero potuti distribuire tra i fortunati che hanno compilato la prima pagina. Ma questo sarebbe stato ingiusto e senza senso. Affinchè più gente fosse coinvolta nel sistema, i fondatori si sono accordati per distribuire gradualmente il denaro: la persona che risolve un problema e che inizia una nuova pagina inserisce una riga in alto che dice: “Accreditatemi 50 monete”.

Inoltre, tutti concordano sulla correttezza della pagina se la somma è esattamente di 50 monete, e sul fatto che in un paio di anni 50 diverranno 25, e così via. Di conseguenza, la gente accresce i propri beni, ma la somma totale delle monete è limitato: non possono esserci più di 21 milioni di bitcoin (ad oggi, ne sono state “emessi” circa 15 milioni).

Grazie a questo principio, tanta gente voleva far parte subito del progetto e guadagnare un po’ di soldi grazie al fatto di essere i primi (successivamente, il denaro sarebbe stato distribuito in porzioni più piccole e a più partecipanti). Inoltre, ancora più gente sta lavorando duramente per risolvere quei problemi matematici il più rapidamente possibile.

Quindi, adesso tanta gente possiede tante criptomonete. E questo è il momento in cui annunciamo che la criptomoneta è la scorta del nuovo Money Of The Future, Inc., e che questa inizia a scambiarsi in borsa con soldi veri. Per molta gente, l’opzione più vantaggiosa sarebbe acquistare la criptomoneta, adesso che viene distribuita in lotti di 25 ogni 10 minuti, e ottenerla in questo modo vuol dire che si devono risolvere vari problemi matematici… sì, è più facile da acquistare che da ottenere.

Successivamente, i commercianti online si renderanno conto che le monete possono essere scambiate con denaro vero in borsa, e inizieranno ad accettare criptomonete (considerando il fatto che diventa sempre più costosa, è una scelta saggia).

Le critiche

Adesso che i lettori sono informati sul concetto di Bitcoin, posso dare il mio parere.

1. I bitcoin sono una vera innovazione. Un autore misterioso (o un gruppo di autori ancora più misteriosi) hanno fatto un buon lavoro, al primo tentativo, e la loro idea funziona ancora.

2. I bitcoin sono oro zecchino per diverse azioni illegali. Il traffico di armi e droga, la corruzione e l’estorsione sono diventati semplici da gestire perché le transazioni sono molto difficili da tracciare e impossibili bloccare. Nel mondo offline, in casi del genere la gente pagherebbe in contanti, ma online, i sistemi di pagamento tradizionali sono controllati e non sono anonimi (da qui il valore dei bitcoin).

 3. Per azioni legali, il decentramento e l’anonimato sono inutili e anche pericolosi. Abbiamo usato Visa/MasterCard, bonifici bancari e PayPal/WebMoney per anni. Questi sistemi hanno le loro imperfezioni ma anche funzioni molto utili:

a. Paghiamo le tasse (soprattutto quando inviamo un pagamento transfrontaliero), ma otteniamo un servizio molto valido.

b. I bonifici impiegano un po’ di tempo, ma si possono controllare e revocare.

Utilizzare i bitcoin è un metodo veloce ed economico, ma per usufruire dei suoi benefici, dobbiamo consumare una gran quantità di elettricità e duplicare ripetutamente le informazioni. Se avessimo deciso di trasferire questi compiti a PayPal, per esempio, la situazione non potrebbe andare peggio.

4. Alla gente piacciono i bitcoin perché il loro prezzo aumenta di continuo. È come un investimento di Ponzi che produce sempre più bolle speculative. La gente non perderà completamente interesse nello schema, e più compratori ci sarabno, più ci sarà domanda. Ecco perché quelli che hanno già comprato la propria quota di monete promuovono attivamente “il denaro del futuro” (per aumentare gli interessi e il prezzo). La domanda sta surclassando l’offerta, che si riduce nel tempo.

5. Alla gente non piacciono i bitcoin perché il loro prezzo aumenta costantemente. L’economia tradizionale è regolata da una banca centrale, che controlla che il volume del denaro disponibile corrisponda al volume dei beni e dei servizi, facendo in modo che questi ultimi siano più economici nel tempo. Così come per i bitcoin, questo processo è falsato: il prezzo dei bitcoin aumenta continuamente e repentinamente, e questo vuol dire che spenderli in beni non è redditizio; meglio spendere denaro vero e lasciare i bitcoin per dopo (o, meglio, per sempre).

6. Perché a chi fa le leggi non piacciono i bitcoin.

a. È uno schema Ponzi. Se le persone di un paese si affrettassero a comprare i bitcoin e poi la bolla scoppiasse (come succede ogni paio d’anni), questo segnerebbe l’inizio di una crisi. Ecco perché lo schema di Ponzi è illegale in molti paesi.

b. I bitcoin sono associati a droghe, evasione fiscale, reddito in nero e terrorismo (dovuto all’assenza di controllo). I legislatori di conseguenza vietano le criptomonete e costringono la gente a utilizzare strumenti tradizionali che sono disponibili ovunque.

7. Così come per l’utilizzo della tecnologia blockchain in aree oltre lo scambio, la maggior parte dei progetti che implicano la blockchain gestiscono gli stessi compiti in maniera centralizzata. Sono in grado di farlo utilizzando uno o più hub di computer, che sono molto più economici in termini di potenza informatica ed efficienza. Nell’esempio della lavagna menzionato in precedenza, è ovvio che scrivere le transazioni sulla lavagna è più facile che fare lo stesso in maniera discreta, nei quaderni sotto un banco. Ma, ovviamente, questo si può fare se non c’è un professore autoritario che cancella all’improvviso la lavagna.

Questo è tutto. Adesso sapete qualcosa in più sui bitcoin e sulla blockchain rispetto alla maggior parte del mondo. È bello essere così intelligenti, vero?