La tecnologia alla base delle criptovalute permette di fare
a meno dell’autorità centrale tipica delle banche, ma non è
completamente sicura come si crede. Vi spieghiamo il perché!
Praticamente sconosciuta al grande pubblico sino a pochi anni fa, da qualche tempo la parola “Blockchain” è sulla bocca di tutti, anche di
chi lavora in mondi dove questo concetto è inapplicato e inapplicabile. Basti pensare al caso della società On-line PLC che, semplicemente cambiando il nome in On-line Blockchain PLC, ha visto le sue azioni crescere in brevissimo tempo del 394%. Un caso, si potrà pensare,
eppure lo stesso è successo alla Long Island Iced Tea Corp, piccola azienda con sede a New York che produce bevande: dopo aver cambiato il nome in Long Blockchain Corp e aver annunciato di voler investire nella tecnologia alla base delle criptovalute, il titolo ha avuto un’impennata del 200%.
Niente male per una realtà che valeva meno di 24 milioni di dollari e che a oggi continua a fare quello che ha sempre fatto: bevande. E la Blockchain?
Sparita.
O meglio, è in bella vista nel nome ma nel business plan sembra non abbia alcun peso. Questi sono solo due degli esempi ma ce ne sono a bizzeffe tanto che la SEC, l’ente USA che si occupa di vigilare sulle borse, ha voluto essere molto chiara e tramite il suo presidente, Jay Clayton, ha rilasciato il seguente comunicato: “The SEC is looking closely at the disclosures of public
companies that shift their business models to capitalize on the perceived promise of distributedledger technology”. Che, in parole semplici, significa che la SEC vuole verificare che il cambio di nome e di business model non
siano finalizzati solo a sfruttare l’ondata di popolarità della Blockchain.
Ha senso che la SEC si preoccupi della questione?
Occhio al portafogli
Le vulnerablità che abbiamo preso in esame sono tutte relativa alla blockchain e al modo in cui vengono “risolti” i blocchi e le transazioni.
Sono attacchi che richiedono un po’ di competenza
e una certa potenza di calcolo per avere successo. Come al solito la
vulnerabilità principale è sempre l’utente e, nello specifico, la sua
gestione dei wallet, i portafogli virtuali contenenti le criptovalute.
Proteggere bene il portafogli, usando password forti e copiandolo su
dischi criptati è la prima regola. Chi avesse a disposizione un discreto
gruzzolo in criptovalute farebbe poi bene a non tenere tutti i coin in uno
stesso wallet: meglio suddividerli su più portafogli contenenti importi
minori.
Se uno di questi venisse compromesso, perderemmo solo una
parte del capitale, non tutto. Ricordiamo sempre che le criptovalute
sono come il denaro contante: se rubate, sono perse per sempre.
All’ora dicevamo se Ha senso che la SEC si preoccupi della questione?
Sicuramente, se si vuole evitare una bolla simile a quella delle dot com all’inizio del secolo. Oggi, il concetto di Blockchain e criptovalute è tanto fumoso come quello di sito Internet alla fine degli Anni ‘90: tutte le
aziende ne volevano uno, nonostante nessuno sapesse cosa farci.
Ecco quindi che troviamo la Blockchain applicata alla filiera, per garantire la trasparenza di tutti i passaggi, come ha annunciato Barilla. Se si
va a guardare al di là dei pomposi annunci, però, la realtà
è molto differente e la Blockchain proprio non viene usata o, se applicata, non porta a vantaggi rispetto al database che si usava sino al giorno prima. Uno studio realizzato da membri della USAID (https://bit.
ly/2DYbOye) si è concentrato sui risultati di chi sosteneva di aver applicato la distributed-ledger technology al suo business.
Delle 43 aziende prese in esame, nessuna è stata in grado di dimostrare reali benefici della tecnologia e ha preferito trincerarsi dietro decine di white paper e annunci stampa, senza offrire prove. In molti casi la Blockchain è realmente applicata, sia chiaro, ma quasi sempre si tratta di lanci di nuove criptovalute: un modo di finanziarsi senza dover cedere
azioni. Sperando magari di fare il botto con il nuovo Bitcoin.
A cosa diavolo serve la blockchain?
LA GUIDA IN ITALIANO PER CAPIRE ED INVESTIRE IN BITCOIN
Tutti sanno che la Blockchain è strettamente legata alle criptovalute come Bitcoin e Ethereum, ma spesso i due concetti sono confusi. La
Blockchain non è una moneta virtuale, ma è semplicemente il sistema su cui si basa per garantire la correttezza delle informazioni. Nel mondo reale per farlo ci affidiamo alle banche, la cui autorità è indiscussa: il loro database è la garanzia che quando usiamo la carta di credito per fare il pieno dell’auto o per comprare un libro su Amazon, i fondi vengano dedotti dal nostro fondo e vadano a rimpinguare il conto del benzinaio.
Ovviamente tutto si basa sulla fiducia verso l’istituto di credito e le istituzioni preposte al controllo: noi non abbiamo tutti i dati e non possiamo far altro che fidarci del sistema.
La Blockchain elimina la necessità di questa autorità dato che contiene tutte le informazioni, anonimizzate, su ogni transazione effettuata e sulla situazione di tutti i portafogli virtuali
Questo implica che se per distrazione dovessimo perdere la chiavetta contenente quei bitcoin minati anni fa, questi sarebbero irrimediabilmente
persi, proprio come se avessimo dato fuoco a una banconota da cento euro. Allo stesso tempo, garantisce che se una moneta virtuale viene spesa, tutti i nodi della rete possano risalire allo spostamento, in ogni momento. Se dei nodi della rete dovessero saltare e perdere tutti i loro dati,
non si perderebbe nulla dal momento che ogni movimento è comunque registrato nella Blockchain.
Solo aggiungendo “Blockchain” nel nome, alcune aziende hanno quadruplicato il valore delle loro azioni
non solo valute La blockchain è utilizzata anche in ambiti diversi dalle criptovalute: Barilla, Nestlé e Perugina la stanno sperimentando per il controllo della filiera
Semplificando all’estremo, possiamo considerare la Blockchain come una sorta di database distribuito che quindi può essere applicato a qualsiasi sorta di bene materiale o meno. Nulla vieta di utilizzare la
Blockchain per trattare le informazioni della filiera di produzione della passata di pomodoro, per esempio.
La domanda non è se sia possibile o meno, ma se abbia senso. Il vantaggio di questo approccio, definito distributed-ledger, è che non necessita di un’autorità come garanzia ma questo si applica solo se tutti i nodi sono
indipendenti. Nel caso della succitata pummarola, se tutte le informazioni nella Blockchain sono inserite dal produttore stesso, il concetto di trasparenza va completamente a farsi benedire: è vero che qualsiasi
informazione al suo interno viene registrata, ma dobbiamo comunque fidarci di chi inserisce i dati iniziali. Al contrario, nel caso di Bitcoin ed Ethereum, la quantità di monete totali disponibile è già all’interno della
Blockchain ed è nota a tutti.
La blockchain non è inattaccabile
Tutte le garanzie sulla sicurezza della Blockchain arrivano dal fatto che i dati sono distribuiti fra tutti i nodi e quindi è impossibile spendere due volte la stessa moneta (che, nel caso di applicazioni differenti dalle criptovalute, significa modificare un dato senza che altri nodi se ne accorgano). Se i nodi non fossero indipendenti nessuno potrebbe garantire la veridicità dei dati.
Per capirne il motivo bisogna intuire le basi del sistema. Quando usiamo la carta di debito per acquistare un regalo cosa succede?
Il POS verifica la carta, trasmette i dati al server della banca che verifica la regolarità, la presenza dei fondi necessari e autorizza il pagamento. Lo stesso avviene ogni volta che una moneta virtuale si muove da un portafoglio all’altro nella Blockchain, solo che invece di contattare un server che fa da garante, si contattano altri nodi della rete. Una volta che un numero sufficiente di questi (solitamente un minimo di sei)
ha dato l’ok, la transazione viene autorizzata e nel tempo
distribuita su tutta la rete.
Ecco perché le transazioni di monete virtuali non sono mai immediate e possono richiedere qualche minuto: è una questione di sicurezza. Così facendo, se anche qualche malintenzionato riuscisse a prendere il controllo di parti della rete non riuscirebbea ingannare il sistema, che richiede più verifiche da differenti nodi. In realtà, non è impossibile hackerare la Blockchain, ma un simile attacco richiede molta potenza di
calcolo. O una pessima implementazione dei protocolli.
Che ci fa il porno nella blockchain?
Qualche mese fa ha fatto scalpore la notizia della presenza di pedopornografia nella Blockchain, cosa che almeno sulla carta renderebbe questa tecnologia illegale in molti paesi. Se infatti la Blockchain è distribuita e offre le stesse identiche informazioni a tutti i nodi, chiunque mini dei bitcoin (attenzione, non chi li possiede) è teoricamente accusabile di detenzione di materiale illegale. La realtà è leggermente diversa da come l’hanno raccontata alcuni giornali.
Di vero c’è il fatto che il protocollo permette di includere nella Blockchain
anche alcuni dati, offuscandoli all’interno dell’algoritmo. I ricercatori della RWTH Aachen University hanno effettivamente ritrovato all’interno
della Blockchain link a immagini pedopornografiche e ad altri servizi poco legali nascosti nel dark web. Non immagini o filmati, attenzione: i pochi byte a disposizione per campi di controllo non sarebbero sufficienti a contenerle. Basta invece una manciata di byte per mettere a disposizione un link.
Il problema del Double Sp ending
Immaginiamo di avere 1000 euro in banca e far partire due ordini da mille euro ciascuno contemporaneamente col bancomat. Cosa succede? Nel mondo reale, quello bancario, la transazione che passerà sarà quella che passa per la linea più veloce mentre la seconda sarà rifiutata. Lo stesso accade quando si parla di criptovalute.
Fra le due transazioni, verrà considerata valida quella che riceverà più velocemente il numero necessario di verifiche mentre la seconda verrà
bloccata. Alcuni merchant, per velocizzare i processi, invece di confermare l’avvenuto pagamento dopo aver ricevuto un numero necessario di conferme, lo fanno non appena ricevono un dato “0/unconfirmed”, che indica che almeno un nodo ha accettato la transazione. Questo apre la via a una tecnica chiamata RaceAttack: un attaccante può mandare lo stesso pagamentocontemporaneamente sia al
merchant sia a un altro portafoglio da lui posseduto, sperando che il secondo sia confermato prima.
Il risultato è che ha speso la moneta pur mantenendone la proprietà. Un attacco che può essere mitigato in vari modi dai merchant, per esempio affidandosi solo a nodi conosciuti e affidabili per le verifiche, anche se la soluzione più sicura è di non accettare transazioni non confermate.
Pur non richiedendo particolari competenze tecniche, il metodo è basato sulle probabilità e applicarlo al mondo reale è un po’ come giocare a investire il capitale sul rosso o sul nero alla
roulette: 50% di possibilità.
Finney Attack: evoluzione del Race Attack
Come il precedente, anche l’attacco di tipo Finney richiede che il merchant accetti la transazione senza chiedere verifiche immediate. Invece di sperare nella dea bendata, però, gli si dà un aiutino. Il supporto deve venire da un miner con un pochino di esperienza che costantemente macinerà dati e
quando troverà dei nuovi coin, li trasferirà a un suo portafogli. Una volta trovato un nuovo coin, l’attaccante contemporaneamente lo spenderà da un merchant e lo manderà al suo wallet, avendo l’accortezza di non fare il
broadcast alla rete del coin minato. Una volta ricevuta la conferma del merchant, non resterà che effettuare il broadcast del blocco, certi a questo punto che la precedenza della transazione sarà data a quella verso il wallet privato, fregando di conseguenza il merchant.
Come facilmente intuibile, tutto questo non è applicabile per chi mina usando dei pool: bisogna avere pieno controllo sul blocco, cosa applicabile solamente se si macinano dati in autonomia, con tutti gli svantaggi del caso,
soprattutto se non si usa un mining hardware molto potente.
Il denaro virtuale non è falsificabile ma alcuni bachi del sistema permettono di spendere due volte lo stesso bitcoin
Vector76 Attack: per chi ha potenza da vendere
Un’interessante e più efficace variante dell’attacco di tipo Finney è quello chiamato Vector76, che però richiede moltissima potenza di calcolo. Stiamo parlando di centinaia di TeraHash e anche del rischio di sacrificare qualche coin. Come nel caso dell’attacco Finney, anche con il Vector76 un attaccante inizia a minare un blocco e contemporaneamente spende coin che lo includono su due wallet: uno è quello della vittima, tipicamente un wallet
virtuale, il secondo è controllato dall’attaccante.
Mentre si lavora sul blocco, si tiene costantemente sotto controllo la Blockchain e se qualcuno inizia a risolverlo, si effettua il broadcast. A questo punto è alta la probabilità che la transazione verso il wallet privato
venga confermata per prima. In ogni caso si potrà mandare la conferma al wallet attaccato, dal quale verranno subito prelevati i fondi prima immessi ma ancora non confermati.
Una volta arrivata la conferma di tutta la Blockchain, avremo effettivamente speso due volte lo stesso coin: uno è quello generato
sul wallet privato, l’altro sono i fondi ritirati, che in attesa di conferma vengono “anticipati” da un altro blocco Nel caso qualcun altro risolva il blocco prima che l’attaccante possa agire, non verrà perso alcun coin.
Certo, l’energia investita nel frattempo sarà andata perduta: considerando che possono volerci settimane e parecchi Watt per risolvere un blocco, non è una perdita di poco conto.
DIO DELLA BLOCKCHAIN
Abbiamo insistito molto sul fatto che tutto il concetto di blockchain si basa sulla decentralizzazione. Ha senso solo in quel caso, altrimenti diventa solo un database più complesso che non offre particolari vantaggi. Per portare a compimento gli attacchi descritti fino a ora ci devono essere tre presupposti:
1) wallet dei merchant impostati per non attendere conferme
2) una certa potenza di calcolo
3) un po’ di fortuna Maggiore è la potenza di calcolo e maggiori sono le probabilità che l’attacco vada a buon fine.
Se per qualche motivo però qualcuno riuscisse a prendere il controllo della maggioranza dei nodi (ecco da dove arriva l 51%) il parametro fortuna sarebbe totalmente eliminato dall’equazione e ci sarebbe il 100% di possibilità di fare double spending. Questo semplicemente perché chi
controlla la maggior parte dei nodi può riscrivere la blockchain a suo piacimento. Un po’ come chi avesse un ipotetico accesso totale ai server di una banca è in grado di effettuare e cancellare transazioni senza lasciare alcuna traccia.
Come scenario può sembrare improbabile se pensiamo alle criptovalute più diffuse ma che possiamo dire delle tantissime ICO, molte delle quali sconosciute, lanciate negli ultimi mesi? Possiamo fidarci di una blockchain usata per garantire tutti i passaggi della filiera quando questa sistema di distributedledger è totalmente in mano a chi lo ha prodotto? Ovviamente no.
Diverso il discorso relativo a Bitcoin ed Ethereum, che sonomolto diffusi. Il problema è che man mano che la potenza di calcolo necessaria al mining sale, la concorrenza inizia a farsi sempre più serrata e ci sono solo pochi colossi a controllare le mining farm più potenti. Quanto ci vorrà prima che un operatore riesca a prendere il controllo del settore? Forse non troppo, se
teniamo conto del fatto che a oggi la maggior parte dei Bitcoin sono minati in Cina, grazie soprattutto a tariffe elettriche convenienti rispetto ad altri paesi.
Il costo sempre più elevato dell’hardware necessario al mining inoltre
favorisce i più grossi: unendo tale potenza ad attacchi di tipo DDoS
che eliminano temporaneamente la concorrenza, un simile attacco potrebbe a breve essere alla portata di qualche attore del mercato.
CHI CONTROLLA LA BLOCKCHAIN
COME PROTEGGERSI
Praticamente tutti gli attacchi si basano su un dettaglio: per riuscire a spendere due volte un coin è necessario che il nodoattaccato abbia impostato come parametro “0/unconfirmed”.
In pratica, invece di attendere un numero adeguato di conferme, il sistema si accontenta della prima.
Questo permette di velocizzare le operazioni, un aspetto non di poco conto per i merchant e i mining pool che così facendo possono funzionare con migliore efficienza. Aumentando il numero di conferme necessarie, l’attacco sarà molto più difficile dal momento che sarà necessaria
molta più potenza di calcolo.
È quasi impossibile, ma se qualcuno prendesse il controllo del 51% dei nodi della Blockchain, sarebbe in grado di modificarla a piacimento
OCCHIO AI NEWBEE
Da quanto detto risulta evidente che la Blockchain è efficace e sicura solamente quando è effettivamente distribuita su un numero molto elevato di nodi e soprattutto quando vengono presi alcuni accorgimenti per rendere più sicuri gli scambi di moneta virtuale.
Al momento possiamo quindi essere ragionevolmente sicuri solo nel momento in cui utilizziamo criptovalutre molto diffuse come Bitcoin ed
Ethereum, che si basano su implementazioni ben realizzate, che danno grande attenzione alla sicurezza. Lo stesso non si può dire delle tante alternative che stanno spuntando come funghi. Un esempio è il caso di IOTA, non certo una moneta sconosciuta, visto che è fra le dieci criptovalute
più diffuse grazie alla sua capitalizzazione di circa 2 miliardi di dollari e alla collaborazione con colossi come Microsoft, Cisco e Foxconn.
Poco dopo il lancio è stata scoperta una gravissima vulnerabilità nel codice (qui i dettagli: https://bit.ly/2xWRacK).
Il problema è ora stato corretto ma il fatto che per un periodo fosse passato inosservata fa riflettere: ci si può fidare dei tantissimi nuovi arrivati che si lanciano sul treno della Blockchain senza avere le minime competenze e
senza affidarsi a esperti degni di questo nome? Soprattutto, ci si può fidare di implementazioni della Blockchain gestite da aziende che ne controllano
direttamente la maggior parte dei nodi? Noi per evitare inutili rischi
suggeriamo prudenza.
LEGGI ANCHE: Occhio al criptojacking! La grande minaccia per i Pc