• Non ci sono risultati.

Perché la blockchain

3.2 Scelte

3.2.1 Perché la blockchain

L’impiego della blockchain è uno dei requisiti del progetto. Siccome spesso viene impiegata la blockchain in alcuni progetti in cui non è necessario, di seguito, viene argomentato perchè la scelta di impiegare la blockchain è corretta. In primo luogo il fatto che quasi la totalità delle soluzioni ad oggi presenti sul mercato futilizzino questa tecnologia è sicuramente un buon indicatore che l’impiego della blockchain sia corretto.

Di seguito viene riportata una frase di Vitalik Buterin, inventore di Ethereum, in cui vengono esposte in maniera chiara e concisa come la blockchain sia perfettamente adatta allo sviluppo di un’applicazione distribuita per la tracciabilità in campo food supply chain.

If you’re buying some food or medicine, for example, you have this complex global supply chain...Ideally, you’d want to have some kind of common shared network that you could use to get all the information about where each individual thing came from so you could trace every part of the product back to where it came from.You could have a smartphone app that you could check everything about the product and see if it satisfies your needs. To do this kind of thing, you need to have a shared network and the blockchain is a great way to do it.

Oppure gli autori di un interessantissimo articolo sull’argomento[17] scrivono:

In general, blockchain technology is useful in those use- cases where there are more than one administrative authority and there is a trust deficit among those parties. A typical example could be a supply chain management system, where multiple parties collaborate together to deliver goods.

Figura 3.1: Diagramma decisionale per l’impiego di blockchain

If the stored value in the blockchain needs to be publicly verifiable then we should use public blockchain, whereas if the data is only for specific parties then a private blockchain is

3.2.1.1 Paragone tra blockchain e database

Le caratteristice di undatabase interessanti allo scopo di qeusta analisi sono:

• db dipende da chi lo amministra

• esiste un DBA che ha potere di modificare dati e funzionalità

• è permissioned quindi

• in un db privato per accedere ai dati il DBA deve fornirci le credenziali di un account

• in un db pubblico tutti possono accedere ai dati in lettura

• architettura client-server

• è centralizzato. la sicurezza è nelle mani del sistema Un database pertanto è adatto:[18]

• contenere dati in continuo cambiamento

• Fast Online transaction processing

• informazioni confidenziali (non trasparenti al pubblico)

• dati che non richiedono verifiche

• applicazioni a se stanti

• dati relazionali

Esistono anchedatabase distribuiti che si differenziano dai database tradizionali per-

chè non hanno un single point of failure ma il controllo del database è comunque centraliz- zato e il sistema è permissioned. I database distribuiti sono differenti dalle blockchain anche perchè non devono gestire il consenso. Il consenso infatti è gestito dal punto centrale di con- trollo. Le blockchain invece gestiscono problemi tipo BGP (Byzanthine Generals Problem). Un’altra differenza, importantissima, tra database distribuito e blockchain sta nelloscopo.

Lo scopo della blockchain è fornire l’ecosistema necessario ad avere un mondo completa- mente distribuito. Lo scopo di un db distribuito è quello di avere un db che beneficia di una struttura distribuita. Anche a livello di tecnologie di storage le due soluzioni sono differenti ma ai fini della trattazione, essi non vengono approfonditi.

Le caratteristiche della blockchain sono state ampiamente descritte nelle sezioni 1.4.4 e 2.1. A questo punto della trattazione rimane solo di concludere il perchè la blockchain sia la giusta tecnologia da impiegare ai fini del progetto.

La blockchain pertanto è adatta:[18]

• gestione di transazioni finanziarie

• trasferimento di beni

• verifica di dati

• sviluppo di applicazioni distribuite (DApps)

• molto altro non utile ai fini della trattazione (sistemi di voto elettronico, gestione identità digitale ecc..)

Da questa analisi ne consegue che è molto più significativo paragonare la blockchain con un database distribuito piuttosto che con un database tradizionale. Le differenza tra una blockchain e un database stanno nell’architettura e nello scopo. Un database è perfetto per salvare e leggere dati.

La blockchain offre un ecosistema che grantisce trasparenza e favorisce la coope-

razione di entità che non si fidano tra loro e che non hanno la possibilità di trovare una parte terza di cui fidarsi entrambi. Sia i database che la blockchain possono essere utilizzati in maniera sicura ed entrambe le soluzioni soffrono di problemi di sicurezza. La bc non soffre di problemi di sicurezza dell’infrastruttura ma solo di come vengono caricati i dati.

Come la blockchain, il database distribuito ha lo scopo di mantenere una copia dei dati consistente su un insieme di nodi

L’impiego di un database distribuito è paragonabile all’impiego di una blockchain solo attivando i maggiori livelli di isolazione (serializable isolation level) che comunque non è sufficiente a garantire un livello di affidabilità e alta disponibilità paragonabile a quello di una blockchain. [19]. Infatti nei DB distribuiti esiste la possibilità che ci siano conflitti che vanno risolti tramite intervento manuale o automatico. Il primo causa una situazione di downtime e si basa sulla promozione di una situazione dove è l’operatore a discernere, il secondo caso non causa downtime e non dipende dall’intervento umano potenzialmente fraudolento ma ha la potenzialità di creare involontariamente situazioni ancora più difficili da risolvere.

Quindi nel piccolo non è possibile avere un DB che possa competere con la BC. Gli unici infatti che riescono a farlo sono i grandi aziende come Amazon e Google e i prodotti hanno un costo diverso da quello di un semplice DBaaS. La blockchain quindi può essere vista come un’evoluzione dei distributed db, o meglio, un’alternativa molto simile che offre la possibilità di persistere dati su dei nodi di cui non ci si debba necessariamente fidare. A questo scopo i nodi implementano un algoritmo che utilizza soluzioni crittografiche basate sui Merkle Trees.

Gli svantaggi di impiegare una blockchain sono:

• le transazioni hanno un costo

• i tempi di risposta della blockchain, soprattuto in scrittura, sono molto lenti1

1

in alcuni casi si parla di diversi secondi o addirittura minuti, a dipendenza della frequenza con la quale vengono creati i nuovi blocchi

• la struttura dati non è relazionale2

Documenti correlati