l'ABC della blockchain

L' ultimo post enfatizzava il prossimo riconoscimento giuridico di alcuni aspetti della blockchain. Se non avete idea di cosa sia la blockchain, questo è il post giusto da leggere! Se sapete tutto sulla blockchian, probabilmente  troverete questo post elementare e troppo semplicistico.

La blockchain è un database decentralizzato nel quale è possibile eseguire solo operazioni di insert e select.
Questa definizione copre il 90% degli aspetti funzionali legati alla blockchain. Vediamo di capire quali sono le "dietrologie" della definizione.

→    la blockchain è un database : Non vi aspettate il classico database. Non esistono tabelle. Non esiste un linguaggio di query tipo SQL. Come per i database relazionali non esiste una sola marca e modello di blockchain. Ne esistono diversi tipi con caratteristiche che possono essere MOLTO differenti. La più famosa è quella su cui si scambiano i Bitcoin, ma ne esistono MOOOOOOOLTE altre, ad esempio Ethereum, Ripple, Hyperledger, EOS, etc..

→    è un database decentralizzato : questa parolina "decentralizzato" è IMPORTANTISSIMA!!! Chi non ha dimestichezza con l'argomento, tende a confondere il termine distribuito con il termine decentralizzato. Mi spiace ma sono due concetti MOOOOOLTO diversi. Chiedo (in anticipo) venia ai filosofi... La mia spiegazione sarà approssimativa, ma vorrei che chiunque possa capire.
In un sistema distribuito tipicamente esiste un nodo centrale che governa il lavoro degli altri; l'obiettivo comune è un miglioramento delle prestazioni generali del sistema.
In un sistema decentralizzato NON esiste un nodo che governa gli altri; l'obiettivo comune da perseguire è l'affidabilità, a costo di generare competizione tra i partecipanti.

→    è possibile eseguire solo operazioni di insert e select : la natura della blockchain NON PERMETTE di eseguire modifiche alle informazioni già salvate, a meno di un costo ENORME; tipicamente eseguire modifiche alle informazioni è antieconomico.
Per ora non mi addentrerò nella dimostrazione di questo assunto, sicuramente ci sarà modo di parlarne in futuro. E' importante averne coscienza perchè tutto gira attorno a questo concetto.

Tutto qui? Si e no... I concetti base sono questi, farciti con un'elevatissima dose di algoritmi crittografici e funzioni di hashing.

Chi si trova per la prima volta di fronte a questa evidenza è portato a pensare : ma allora chi me lo fa fare di passare alla blockchian? Il mio DB relazionale è MOLTO meglio, ha molte più funzionalità!
Questa affermazione può essere VERISSIMA!!!!!!!!!!
Infatti la blockchain non è la panacea di tutti i mali e non è da usare indiscriminatamente in qualsiasi ambito.
Tom Davies ha creato questo semplice processo decisionale :


Le domande inserite nei riquadri rosa sono un ottimo punto di partenza. Se dopo aver seguito questo processo avete ancora dei dubbi, allora è il caso che approfondiate l'argomento!

La legge italiana riconosce la blockchain


Negli ultimi mesi stiamo studiando, qui in JENIA Software, la tecnologia blockchain.
Cosa è la blockchain? Per ora vi basti sapere che la blockchain è la tecnologia su cui si basano i Bitcoin.

Questa tecnologia è applicabile a tantissimi settori. Vi consiglio di leggere questo libro :  Blockchain. Guida all’ecosistema. Tecnologia, business, società di Nicola Attico; offre una panoramica MOLTO interessante riguardo molte delle possibili applicazioni.
Prima di entrare nel vivo di questo articolo, sempre rimanendo in tema di testi interessanti riguardo la blockchain, vi consiglio di leggere questi due testi (entrambi di Davide Carboni) :

Bando alle ciance, ora parliamo di cose serie. (era ora!)

Il titolo di questo articolo riprende volutamente questo interessantissimo articolo: https://www.fintastico.com/it/blog/legge-italiana-riconosce-blockchain/
Eccovi un sunto asciuttissimo : la normativa italiana darà presto validità giuridica alle soluzioni basate su blockchain.
Questo cosa significa? Nel prossimo futuro nasceranno diverse soluzioni basate su blockchain che dovranno essere riconosciute come legalmente valide. Il fatto che la tecnologia blockhain sia pubblica ed economica, farà si che tali soluzioni avranno dei costi "abbordabili".
La prima (e probabilmente la più facile) applicazione riguarda la notarizzazione dei documenti.
Di cosa si tratta?
Per notarizzazione (o “legalizzazione”) di un documento, si intende il procedimento con il quale vengono attestate l’originalità (il documento in esame è perfettamente corrispondente all’originale) e l’esistenza ad una certa data e ora (“timestamp”) del documento stesso.
Esistono già software che realizzano questo tipo di servizio (es. Certy di B2Lab) e probabilmente presto nasceranno nuove soluzioni per supportare tale tecnologia.
Approfondendo il tema della notarizzazione viene spontaneo fare un paragone con la vecchia normativa sulla la conservazione sostitutiva.
Quelli di voi che già conoscono JENIA, probabilmente sanno che qualche tempo fa abbiamo realizzato un software open source per la conservazione sostitutiva dei documenti (sinekarta) facendoci "le ossa" sui temi di gestione documentale (in particolare Alfresco), di validità normativa, di firme elettroniche, di integrazione con sistemi esterni, etc...

Cosa significa notarizzare un documento usando la blockchain? Significa calcolarne l'impronta (tecnicamente l'hash) e salvare tale impronta nella blockchain.
Le caratteristiche di immutabilità e di decentralizzazione della blockcian ne garantiranno l'originalità oltre che la marcatura temporale (tecnicamente il timestamp).
Di fatto la Distributed Ledger Technology (DLT), ovvero la blockchain, implementa un'alternativa che sarà presto legalmente equiparata alla "timestamp authority" che garantisce la marca temporale.
Non ci avete capito molto? Proviamo a semplificare.

Ricetta per la notarizzazione di un documento
  • Prendete un documento (va bene qualsiasi file : immagini, pdf, filmati, musiche, email, etc)
  • Calcolate l'impronta del documento (di solito viene calcolata utilizzando l'algoritmo SHA-256)
  • Salvate l'impronta del documento sulla blockchain (qualsiasi blockchain pubblica va bene, es. Bitcon, EthereumEOS, etc..)
  • Conservate con cura il documento originale perchè se mai aveste bisogno di presentarlo come "prova" di qualcosa, il giudice (più probabilmente il perito designato) confronterà l'impronta calcolata sul documento che state esibendo con quella salvata nella blockchain
Facile? A parole lo è... In realtà non è troppo difficile neanche tecnicamente!
Ma se avessi bisogno di notarizzare più documenti? Se vi siete fatti questa domanda significa che avete una certa dimistichezza con l''argomento, questo è un bene!
La "vecchia" normativa sulla conservazione sostitutiva prevedeva la possibilità di calcolare la marca temporale su un unico file, contenente a sua volta le impronte di altri file. Questo trucco permette di applicare il meccanismo di marca temporale ad un unico documento che funga da "garante" per un insieme (anche grande) di altri file. Poco chiaro? Altra ricetta...

Ricetta per la notarizzazione di un insieme di documenti
  • Prendete un insieme di documenti (va bene qualsiasi file, immagini, pdf, musiche, email, etc)
  • Calcolate l'impronta di ciascun documento del vostro insieme (di solito viene calcolata utilizzando l'algoritmo SHA-256)
  • Create un nuovo documento (chiamiamolo contenitore di impronte - decidete voi il formato, basta che le impronte siano facili da "leggere" - nell'accezione più ampia del termine)
  • Applicate la ricetta della notarizzazione del singolo documento (vista prima) al contenitore di impronte appena creato
  • Attenzione! Usando questa modalità dovrete conservare con cura, oltre che tutti i documenti, anche il nuovo documento contenitore di impronte. In caso di esibizione dovrete fornire anche questo
In conclusione
Utilizzare la blockchain per la notarizzazione è un'alternativa alla marcatura temporale che presto verrà equiparata (dal punto di vista giuridico)  alle attuali timestamp autority.
Usare la blockchain dei Bitcoin per salvare l'impronta ha attualmente un costo paragonabile a quello di una timestamp authority, ovvero pochi centesimi per ciascuna impronta salvata. Utilizzando blockchain diverse (es. EOS)  si avrebbero costi nulli (o quasi).
Scegliere una blockchain per notarizzare i documenti permette di eliminare il "vendor lock in" verso la certification authority.
La blockchan rappresenta uno standard aperto e semplice per ottenere un risultato con maggiore facilità.
MA SOPRATTUTTO : nonostante si sia tentato di portare il riconoscimento dei servizi di marca temporale a livello internazionale (perlomeno europeo) l'utilizzo della blockchain rappresenterà certamente il futuro universalmente riconosciuto per questa tipologia di servizi.