Il blockchain per contabili, giuristi e programmatori

In questo articolo

Introduzione

Banana Contabilità ha introdotto il blockchain nel 2002. È stato il primo software al mondo in ambito commerciale ad usare questa tecnologia, prima ancora che avesse questo nome. Il blockchain ha una funzione importante, perché protegge i dati da modifiche e assicura che il software adempia ai requisiti di legge per la tenuta dei dati contabili. L’introduzione del blockchain ha portato la protezione e sicurezza dei dati a un livello molto più alto rispetto alle tecnologie precedenti. Ne è dimostrazione il Bitcoin, con un giornale disponibile in rete, che grazie alla protezione del blockchain è considerato più sicuro dei dati custoditi in sistemi informatici costosi e super protetti. Oggi è evidente che il blockchain diventerà un elemento centrale del mondo digitale e verrà usato in tutti i contesti dove è indispensabile garantire l’integrità dei valori e dell’informazione digitale.

Vi è molto interesse verso il blockchain, ma l’argomento è piuttosto ostico: per svariati motivi è difficile capire cosa sia esattamente e come utilizzarlo, primo fra tutti il fatto che ve ne sono diverse definizioni e tutte piuttosto ampie. Il termine viene usato per indicare un insieme di tecnologie, diverse tra loro e con scopi anche molto disparati. Un altro ostacolo è di tipo culturale, poiché il punto di riferimento del blockchain non è il mondo attuale cartaceo, ma quello del futuro, completamente digitale. È necessario un cambio di prospettiva, che implica però una conoscenza dei diversi aspetti e un’immersione nei possibili impieghi del blockchain.

In questo documento propongo una definizione più precisa del blockchain. Desidero far comprendere che l’essenza del blockchain e il suo aspetto rivoluzionario è il fatto che consente di fare affidamento su contenuti digitali indipendentemente da dove si trovino i dati. Informazioni di valore, quale il possesso di Bitcoin, di azioni di una società o di una casa, si possono preservare, non più solo su carta, ma anche in forma elettronica.

Il blockchain è uno dei tasselli della trasformazione digitale, una tecnologia, la cui efficacia dipende però da come essa viene usata. Cercherò pertanto anche di elencarne i diversi aspetti tecnici, legali, organizzativi e contabili. Questi elementi offrono una visione d’insieme, che serve anche a capire meglio i singoli aspetti. L’apprendimento del blockchain è un processo che richiede diverse iterazioni. Si consiglia pertanto di procedere con una prima lettura, finalizzata ad avere un’idea dell’insieme, e una successiva per capire meglio i singoli elementi.

 

La nascita del blockchain

Per prima cosa spiegherò la nascita del blockchain di Banana Contabilità. Conoscere il contesto, le motivazioni e gli scopi per cui è stato sviluppato aiuterà a comprenderne il funzionamento e capire perché il blockchain diventerà un elemento centrale del mondo digitale.

Il blockchain è integrato in Banana Contabilità dal 2002. Banana Contabilità è un applicativo contabile basato su dei fogli elettronici pronti all’uso, già impostati e programmati per la contabilità e dall’utilizzo molto semplice,.

Banana Contabilità è diventato in Svizzera il software contabile preferito dalle piccole aziende, associazioni e privati. È completamente personalizzabile e questo ha permesso di essere utilizzato in oltre 120 nazioni. Banana è anche molto apprezzato nell’insegnamento della contabilità: ci si può facilmente esercitare a tenere la contabilità, impostare il piano dei conti e inserire le registrazioni.

La caratteristica principale di Banana Contabilità è la facilità d’uso, data dalla possibilità tipica dei fogli elettronici di muoversi liberamente, modificare, cancellare, copiare e incollare dati.

La possibilità di cambiare le registrazioni è però in contrasto con le prescrizioni in materia contabile che non prevedono alcuna modifica ai dati. Il blockchain è il sistema che ha permesso a Banana Contabilità di evolvere per essere conforme alle normative.

In Svizzera fino al 2002 le normative di legge prescrivevano che la contabilità dovesse essere tenuta su carta o su microfilm. Chi teneva la contabilità con il computer doveva stampare tutto; specialmente per grandi organizzazioni questo sistema non era più adeguato. Il Governo svizzero, verso la fine degli anni 90, aveva preparato e messo in consultazione delle nuove norme che permettessero di conservare la contabilità in formato digitale, prescrivendo però anche tutta una serie di adempimenti. I programmi di contabilità dovevano essere adeguati e il governo concesse parecchio tempo, fino a maggio del 2002, per permettere alle aziende di adeguare i sistemi informatici.

Da vent’anni avevo iniziato a sviluppare software per scopi professionali. Dieci anni prima avevo creato la prima versione di Banana Contabilità e da allora la mia attività principale era la programmazione. Avevo però una formazione di contabile e una laurea in giurisprudenza. Il cambiamento di legge mi interessò parecchio e diventò uno stimolo per trovare una soluzione sicura, consapevole della trasformazione digitale, valida per diverse nazioni, che non facesse perdere l’immediatezza d’uso e non rendesse più difficile tenere la contabilità. Banana Contabilità, come Excel, non lavorava su dei database protetti, per cui l’approccio usato da altri software non risultava sufficientemente sicuro. Non erano però applicabili neanche i sistemi di certificazione usati per documenti, basati su hash del file (vedi spiegazione al capitolo specifico) perché il giornale contabile continua a crescere. C’erano poi delle nazioni che prevedevano la numerazione progressiva delle registrazioni del giornale e la tenuta di un saldo progressivo. Cominciai a lavorare a delle possibili soluzioni, ma trovare un modo che potesse soddisfare tutte le esigenze e che fosse intuitivamente comprensibile per dei contabili, non fu facile. Ci vollero diversi anni e una molteplicità di iterazioni, prima che si cristallizzasse l’idea di certificare con un hash ogni singolo movimento e riprendere questo hash anche nel calcolo dell’hash della registrazione successiva. Con questo sistema ogni operazione veniva concatenata cripto-graficamente con la precedente. L’hash di una registrazione era anche l’hash di tutto il giornale dall’inizio fino all’operazione stessa. Questo approccio mi pareva garantisse la massima protezione dei dati e potesse soddisfare i requisiti di legge. Questa era però la mia opinione e occorreva verificare se anche degli specialisti avrebbero concordato. Entrai in contatto con degli specialisti di una primaria società di revisione e, come ditta, li incaricammo di verificare se questo nuovo sistema fosse conforme alle normative. Fu necessario documentare bene tutto il concetto e il funzionamento (vedi documento interno del 2001/2002), ma alla fine nel 2002 il sistema fu certificato conforme alle normative per l’archiviazione di dati contabili in Svizzera e in Germania. Il 21 marzo 2002 depositammo una domanda di brevetto negli USA (US Patent No. 7,020,640) con il titolo di “Method for certifying data containing a sequence of transactions”. Pochi mesi dopo, nel giugno 2002, in tempo per l’entrata in vigore delle nuove norme, presentammo un aggiornamento di Banana Contabilità che conteneva le funzionalità del blockchain.

Il sistema funzionava molto bene e soddisfaceva le esigenze legali, ma mi accorsi ben presto che non veniva capito e alle volte era persino visto con sospetto dai revisori e dai contabili. La criptografia e le funzioni di hash erano dei temi del tutto sconosciuti fuori dalla cerchia degli specialisti informatici. I software di contabilità continuavano ad usare delle password per proteggere i dati. Non si sentiva la necessità di migliorare questi sistemi, anche perché la maggior parte dei dati contabili erano su dei server che venivano ritenuti sufficientemente protetti.  

Fu l’introduzione del Bitcoin a fare conoscere al mondo intero la tecnologia blockchain e ad ispirarne il nome. Per molti fu un’illuminazione. Grazie al blockchain, operazioni salvate nel giornale di Bitcoin, disponibile liberamente sulla rete, erano considerate più sicure dei giornali contabili delle banche, custoditi in ambienti separati e protetti da una moltitudine di sistemi di sicurezza. Questa innovazione fece comprendere a molte persone che si era di fronte a qualcosa di molto potente. Il blockchain è oggi considerato talmente sicuro che il Bitcoin è ormai diventato un sistema di pagamento abituale e anche un interessante mezzo di investimento.

Il blockchain è così balzato all’attenzione del mondo e ha stimolato una miriade di nuove idee, possibili applicazioni e anche di investimenti.

 

La definizione di blockchain

Per capire il blockchain sapere ciò che è e conoscere quello che fa. Attualmente ci sono definizioni molto ampie; qui seguito ne propongo una più mirata, focalizzata sull’aspetto centrale del blockchain: garantire l’integrità dei dati.

“Il blockchain è un sistema di certificazione per garantire l’integrità di collezioni di dati in crescita.”

Questa definizione sottolinea gli aspetti funzionali e legali del blockchain di “certificazione dell’integrità dei dati”. Il blockchain è un sistema che utilizza la tecnologia dei sigilli digitali (hash) per permettere di verificare che le informazioni contenute nella collezione non siano cambiate. Ogni blocco dati della collezione viene munito di un proprio sigillo digitale (hash); questo sigillo è anche il certificato di tutta la collezioni dati, dall’inizio fino al quel punto. I sigilli del blockchain permettono di verificare l’integrità dei dati della collezione o di parte di essa. Si può essere certi dell’autenticità dei contenuti, indipendentemente da dove la collezione si trovi.

L’altra caratteristica importante della tecnologia blockchain, è che si applica a “dati in crescita”. Il blockchain permette di aggiungere elementi alla collezione, senza invalidare i sigilli precedenti. Le collezioni di dati possono crescere. All’interno delle collezioni di dati si possono conservare informazioni importanti con la certezza che i contenuti rimangono integri anche se vengono aggiunte nuove informazioni.

Il vantaggio che questa tecnologia offre, è la possibilità di fare affidamento sulle informazioni digitali, indipendentemente da dove esse si trovino. Le collezioni di dati possono essere trasmesse, conservate su computer diversi, avendo la certezza che i dati sono integri. Le collezioni di dati con il blockchain sono in grado di custodire informazioni importanti, che attestano il possesso di una certa somma in Bitcoin o la proprietà di una casa, con la certezza che i dati non possano essere manipolati o falsificati.

Il blockchain è indirettamente anche un sistema di protezione dei dati, in quanto dà la possibilità di capire facilmente se ci sono state modifiche. Si possono impostare controlli regolari che scoraggiano e rendono completamente inutili i tentativi di alterazione dei dati.

Ci sono attualmente diverse definizioni del blockchain, che lo descrivono come una struttura di dati formata da blocchi legati cripto-graficamente tra di loro: quella usata nella pagina inglese di Wikipedia è “A blockchain, originally block chain, is a growing list of records, called blocks, which are linked using cryptography”.  Altre definizioni fanno riferimento alla natura distribuita del giornale, come per esempio quella di Investopedia “A blockchain is a digitized, decentralized, public ledger of all cryptocurrency transactions.”.

Queste definizioni, focalizzate sulla struttura dati, sono abbandonate a favore della definizione data in precedenza, incentrata sulla funzione di garantire l’integrità dei dati. Definire il blockchain non più solo in termini informatici, ma anche giuridici, è un passo indispensabile per capire il valore di questa tecnologia ed è anche il presupposto perché si riesca a usare il blockchain con efficacia.

 

Origine del termine blockchain

Il termine blockchain trae la sua origine dalla descrizione della struttura dati del giornale del Bitcoin fatta dall’inventore del Bitcoin, conosciuto con il nome di Satoshi Nakamoto. Nel documento dell’ottobre del 2008 sul Bitcoin, il giornale con i movimenti fu descritto come un insieme di blocchi di transazioni (block) concatenati (chained) tra loro in modo crittografico. L’immagine che segue è la descrizione grafica della catena di blocchi.

 

 

Ogni blocco ha un identificatore che è l’hash (sigillo digitale) calcolato sul contenuto del blocco. Nel contenuto vi è anche l’identificatore del blocco precedente. I blocchi sono quindi concatenati uno all’altro, per cui l’hash di un blocco dipende dal contenuto del precedente, che a sua volta dipende dal precedente e così via fin dall’inizio. L’hash di un blocco è quindi anche l’hash di tutta la collezione di dati e certifica l’integrità di tutta la collezione. Se un qualsiasi contenuto di un blocco cambia, cambia il suo hash. Il riferimento contenuto nel blocco successivo non è più valido e la catena si interrompe. Se la catena è corretta, significa che i contenuti sono integri.

Il blockchain presuppone che vi sia una determinata sequenza di dati. In Bitcoin la sequenza viene garantita salvando nel blocco successivo l’identificatore del blocco precedente. Per ricostruire la struttura dati e verificare la correttezza si parte dall’ultimo blocco. Ci sono altri modi per garantire la sequenza. Nel giornale contabile, come quello di Banana Contabilità, ogni movimento ha un proprio numero progressivo. Si attraversa la collezione partendo dalla prima transazione. In Banana Contabilità il sigillo di un movimento è calcolato anche tenendo conto del sigillo della riga precedente. Il risultato è lo stesso, in quanto si crea una catena criptografica. Nel caso di Banana Contabilità l’identificatore del blocco di dati è il numero della riga, il sigillo ha la funzione di certificazione. Questa struttura tabellare dei dati, tipica dei giornali contabili, dove ogni transazione ha un proprio sigillo, è più facile da capire e da usare.

 

 

Il blockchain e la trasformazione digitale

Per millenni, per scrivere, si sono usati supporti materiali, come steli, tavolette, metalli, papiri, pergamene e carta. Scrivendo su carta, i contenuti vengono fisicamente impressi nel supporto e diventano parte di esso. L’alterazione del contenuto, comporta anche la modifica del supporto. Per rendere più difficile la falsificazione si usa apporvi firme, sigilli o altri accorgimenti che rendano unico il documento. Le persone confermano l’accettazione di un contratto apponendo le proprie firme sul foglio su cui è stato scritto. Per assicurarsi che il contenuto non vada perso o sia alterato, si deve però proteggere il documento. È consuetudine, quando si firma un contratto, che ognuno ne riceva una copia. La firma su un contratto attesta però anche che le parti abbiano letto e accettato il contenuto. Ognuno deve poi custodire il proprio documento, in modo che, in caso di contestazione, disponga della prova di quali fossero gli accordi. Ogni ditta o privato ha un archivio in cui tiene copia dei diversi documenti. In molti casi, la custodia dei documenti è obbligatoria e deve essere organizzata secondo determinate regole. L’obiettivo è fare in modo che i documenti cartacei siano protetti da perdite e alterazioni; proteggendo il documento se ne tutela anche il contenuto.

Per millenni, la gran parte delle informazioni che definiscono la vita delle persone sono state custodite in questo modo. La proprietà di una casa, la nascita, il matrimonio, l’adozione di una legge, la sentenza di un tribunale, il contratto di affitto e l’acquisto di un’auto sono incorporati in documenti cartacei. Per garantire l’integrità di queste importanti informazioni, per prima cosa bisogna custodire i documenti in modo che non vengano manomessi. L’esempio tipico di documento di valore sono le banconote. Ogni persona, ditta o ente ha dei documenti che custodisce. I sistemi di archiviazione sono completati da leggi che prescrivono la conservazione dei contenuti e li tutelano contro la falsificazione. Senza questi contenuti e la possibilità di garantirne l’integrità e l’autenticità il sistema economico e giuridico collasserebbe.

Con l’avvento dei computer e della digitalizzazione, tutto questo sistema viene stravolto. Nel mondo digitale l’informazione non è più stabilmente impressa su un supporto, ma è memorizzata come impulsi elettronici all’interno di un apparecchio. Il vantaggio di questi sistemi è che la medesima informazione può essere duplicata infinitamente. Miliardi di persone possono vedere contemporaneamente lo stesso filmato sui propri telefonini, perché il contenuto digitale viene copiato da un computer all’altro; lo stesso contenuto arriva quindi ai diversi destinatari. L’altra grande differenza è che i contenuti testuali, audio o video sono memorizzati in una forma elettronica illeggibile ad occhio nudo; per accedervi servono degli apparecchi elettronici. Sparisce anche il concetto di originale, perché per scrivere battiamo dei tasti che generano degli impulsi e, dopo tutta una serie complessa di operazioni, vediamo apparire delle scritte su uno schermo.

Con la trasformazione digitale le modalità millenarie di salvare e accedere alle informazioni vengono stravolte. Perché il nostro sistema economico e giuridico continui a stare in piedi è necessario avere dei sistemi di certificazione dei dati che ci consentano di capire se i dati sono integri e originali. Il blockchain ci permette di fare affidamento su dei documenti elettronici allo stesso modo con cui facevamo affidamento su quelli cartacei firmati.

Tutti i documenti (certificato di matrimonio, sentenza, contratto, banconota,...) sono sostanzialmente degli attestati di fatti avvenuti che hanno una rilevanza giuridica. Anche nel mondo digitale le persone continuano a sposarsi, a rivolgersi ai giudici, a stipulare contratti e ad effettuare pagamenti, e l’autenticità e l’integrità degli attestati di questi fatti dovranno continuare ad essere garantite. La certificazione dei contenuti digitali, sia dal punto di vista tecnico che da quello legale è quindi un pilastro della nostra società e della nostra economia. Il blockchain, inteso come strumento in grado di garantire l’autenticità e l’integrità delle informazioni di valore, assumerà quindi un ruolo centrale nella nuova era digitale.

Gli elementi distintivi della trasformazione digitale sono i seguenti:

  • le informazioni sono memorizzate come impulsi elettrici. I contenuti non sono incorporati in un supporto, ma possono essere cancellate e sovrascritte;
  • le informazioni non sono accessibili direttamente con i sensi umani. Sono necessarie delle apparecchiature che leggano, interpretino e trasformino le informazioni in modo che siano fruibili dai nostri sensi (schermi, stampanti, altoparlanti);
  • il concetto di originale svanisce: la copia non si distingue più dall’originale.

La tabella qui di seguito riepiloga i principali cambiamenti che hanno anche importanti conseguenze legali.

Funzione

          Documento cartaceo

Documento digitale       

Contenuto

Incorporato nel supporto

Staccato dal supporto

Accesso all’informazione

Direttamente con la lettura

Attraverso un’apparecchiatura che renda visibile il contenuto

Approvazione del contenuto

Firma

Firma digitale

Certificazione del contenuto

Riferimento a persone

Sigillo digitale

Autenticazione

Firme e timbri sul supporto

Staccata dal supporto

Verifica autenticità

Testimonianza persone

Verifiche incrociate

Raccolta di documenti

Archivi, collezioni e registri cartacei

Database e file systems

Registri

Registri cartacei

Registri blockchain

Conservazione dei documenti

Modalità organizzative acquisite

Ancora da organizzare

Trasmissione del contenuto originale

Trasmissione fisica del documento

Copia dei dati

Titolo al portatore (banconota)

Per legge, diritto incorporato nel documento

Smart Contracts

 

 

Hash e sigilli digitali

La certificazione dei dati si basa sulla tecnologia di calcolo degli hash, operazione di cui ci sono diversi algoritmi. Le funzioni di calcolo degli hash sono dei programmi che combinano i contenuti di un insieme di dati e ottengono un piccolo testo, chiamato hash, o hash sum, che è una sorta di impronta digitale dei dati. La funzione di hash può essere paragonata ad un processo di distillazione il cui scopo è quello di ottenere una piccola goccia. La goccia ottenuta, l’hash sum, sarà sempre esattamente la stessa se i dati di partenza sono uguali e sarà diversa se cambiano.

 

 

Per informazioni più di dettaglio si rimanda alla pagina delle hash function di Wikipedia. Gli algoritmi di hash sono dei programmi sviluppati da esperti nell’ambito della criptografia, che sono disponibili come open source. La maggior parte dei programmatori, come me, credo usi le funzioni di hash senza capire i dettagli dell’implementazione, ma con fiducia che funzionino secondo le specifiche.

Ci sono diversi algoritmi con diverse caratteristiche e finalità. Quelli usati generalmente sono relativamente pochi. Banana Contabilità e Bitcoin usano l’algoritmo di hashing SHA-256, che produce un hash di 256 bit. Si parte da un qualsiasi contenuto e si ottiene sempre un valore della lunghezza di 256, che poi viene convertito in un testo per risultare leggibile. Qui si vede l’hash calcolato su un solo carattere.

Dati

Sigillo / Hash SHA-256 in esadecimale

“1”

6B86B273FF34FCE19D6B804EFF5A3F5747ADA4EAA22F1D49C01E52DDB7875B4B

“2”

D4735E3A265E16EEE03F59718B9B5D03019C07D8B6C51F90DA3A666EEC13AB35

 

Per la certificazione dei dati si devono usare degli algoritmi di hash molto particolari. Questi hash sono chiamati Sigilli digitali, in quanto hanno delle caratteristiche molto specifiche:

  • devono essere in grado di elaborare una sequenza di dati di qualsiasi lunghezza;
  • devono produrre un dato riassuntivo di lunghezza fissa, generalmente 256, 512 o 1024 bit;
  • partendo dallo stesso contenuto si ottiene sempre il medesimo hash; un contenuto diverso produce un hash diverso;
  • partendo dall’hash deve essere tecnicamente impossibile ricostruire il contenuto dei dati originali (unidirezionalità);
  • deve essere tecnicamente impossibile trovare dei contenuti diversi che producano il medesimo sigillo (resistenza alle collisioni);
  • la sequenza di caratteri generati è imprevedibile e non può essere associata ai dati di partenza;
    anche un minimo cambiamento nei contenuti, produce un sigillo significativamente diverso.

La caratteristica degli hash usati come Sigilli digitali è quella di potere identificare in maniera univoca l’insieme di dati che è servito per il suo calcolo. Ciò significa che il sigillo è anche “il numero di targa” specifico della sequenza di dati e senza la possibilità che vi sia una sequenza di dati diversi con lo stesso numero di targa. Se i dati sono gli stessi si avrà sempre il medesimo sigillo, se sono diversi il sigillo risulterà diverso. I Sigilli digitali sono quindi dei certificati di autenticità dei dati.

Per verificare la validità dei sigilli si calcola nuovamente il sigillo partendo dai dati stessi con il medesimo algoritmo e si confronta il risultato con il sigillo originale. Se i sigilli sono uguali, i contenuti sono uguali; se i sigilli sono diversi, i contenuti sono diversi. Trasmettendo a qualcuno un documento, grazie al sigillo si potrà verificare che il contenuto ricevuto è il medesimo di quello inviato. Il sigillo è un’entità di dati molto piccola, è quindi facile da memorizzare e da inviare. Inoltre, il sigillo non consente di ricostruire l’origine dei dati. Il sigillo può essere trasmesso a terzi senza pericolo che questi venga a conoscenza dei contenuti. I sigilli digitali sono quindi molto efficaci per certificare dati; infatti, si possono memorizzare e scambiare facilmente e senza neanche la necessità di esporre i contenuti.

La caratteristica importante è che un malintenzionato non può essere in grado di creare una sequenza di dati diversa che produca il medesimo sigillo.

Il sigillo digitale ha le seguenti caratteristiche:

  • è un’entità di dati molto piccola, è quindi facile da memorizzare e da inviare;
  • non consente di ricostruire l’origine dei dati (unidirezionalità);
  • può essere ricalcolato con il medesimo algoritmo partendo dai dati originali;
  • può essere facilmente scambiato ed inviato a terzi senza esporre i contenuti originali.

Per verificarne la validità, il sigillo viene calcolato nuovamente partendo dagli stessi dati e usando il medesimo algoritmo. Il sigillo ottenuto deve quindi corrispondere a quello originale.

Attraverso il ricalcolo dei sigilli si può quindi certificare che:

  • i contenuti sono uguali nel caso i sigilli corrispondano;
  • i contenuti sono diversi nel caso i sigilli siano diversi.

Se il sigillo corrisponde, chi riceve un documento, può essere certo che il documento ricevuto è uguale a quello inviato.

Qui si rende però necessario entrare in un argomento molto tecnico, di non immediata comprensione. L’affidabilità del sigillo dipende dall’impossibilità di generare un hash uguale partendo da dei dati diversi. L’insieme di dati di partenza è più grande di quello dell’hash, per cui vi sono certamente delle combinazioni di dati che possono produrre il medesimo sigillo, che in termine tecnico si chiamano collisioni. Non vi è mai la certezza che un algoritmo garantisce l’integrità dei dati. Quando si parla di impossibilità di trovare collisioni in realtà significa che l’algoritmo usato deve rendere praticamente impossibile trovarle, perché l’operazione richiedere centinaia di anni di calcoli di un computer super potente. La tecnica avanza e gli hash vecchi potrebbero risultare vulnerabili. Metodi che erano considerati sicuri dieci anni fa, oggi non lo sono più. Le normative di legge svizzere prescrivono l’uso di sistemi che siano tecnicamente affidabili. Gli Algoritmi che permettono di creare delle collisioni sono considerati deboli e non adatti per creare dei Sigilli digitali legalmente validi.

Anche la firma digitale si basa sulla tecnica dei Sigilli digitali. Per calcolare la firma digitale si calcola dapprima un Sigillo digitale del contenuto; questo viene in seguito combinato con una chiave privata. La firma digitale è quindi un Sigillo digitale, legata al contenuto, che in più è l’espressione della persona che è in possesso della chiave privata.

I sigilli e le firme digitali semplici servono per certificare il contenuto di un file che rimane sempre lo stesso. Non sono adatti per collezioni di dati il cui contenuto deve cambiare, come per esempio quando si aggiungono nuove registrazioni contabili. In questi casi si deve usare il blockchain, un sigillo digitale progressivo.

 

Blockchain - sigilli digitali per le collezioni dati

Il blockchain è un sigillo progressivo, calcolato sul blocco di dati correnti e sul sigillo del blocco precedente. Il blockchain permette quindi di certificare i contenuti di collezioni di dati in crescita. Questa tecnica si può applicare a qualsiasi collezione di dati, e l’implementazione cambia a seconda del tipo di struttura dati. Qui di seguito si spiega il funzionamento per strutture dati tabellari e quella del giornale del Bitcoin.

 

Il blockchain in una struttura dati tabellare

In Banana Contabilità i sigilli digitali sono applicati a delle righe di registrazione. Ogni movimento viene considerato un blocco di dati. Il sigillo di ogni riga è calcolato includendo anche il sigillo della riga precedente. Ogni sigillo diventa quindi anche il sigillo di tutta la collezione di dati fino a quel punto. Si possono aggiungere nuove registrazioni senza invalidare i sigilli precedenti.

 

 

La prima parte dell’immagine “Registro originale” mostra la tabella originale con tre righe di registrazione. Il sigillo progressivo (blockchain), indicato nella colonna LockProgr, è calcolato nel modo seguente:

  • il sigillo digitale (hash) della prima riga è calcolato considerando i dati della registrazione;
  • a partire dalla seconda registrazione il sigillo è calcolato includendo anche il sigillo della registrazione precedente;

Il sigillo di ogni riga è anche il sigillo di tutta la collezione di righe fino a quel punto. Se si aggiungono delle righe i sigilli precedenti rimangono intatti.

 

 

Nella parte dell’immagine indicata come “Registro modificato” si vede cosa succede cambiando il contenuto di una registrazione:

  • nella riga 2 l’importo è di 40.00 invece di 30.00
  • i sigilli digitali della riga 2 e di quelle successive sono diversi.

In Banana Contabilità la struttura dati esiste indipendentemente dal blockchain e i sigilli possono essere aggiunti e rimossi senza danneggiare la struttura dati.

 

 

Il blockchain in Bitcoin

Nel sistema Bitcoin gli ordini di trasferimento vengono raccolti dai minatori (miners), raggruppati e aggiunti in blocchi al giornale con una cadenza media di dieci minuti. Ogni blocco ha un identificatore che è il sigillo (hash) calcolato sul contenuto del blocco, all’interno del quale vi è anche l’identificatore del blocco precedente. Il sigillo del blocco è calcolato anche sul sigillo precedente, per cui diventa un sigillo progressivo, che serve a verificare l’integrità di tutti i dati dall’inizio fino e compreso il blocco stesso.

Qui di seguito è presentato uno schema molto sintetico di come è strutturato il giornale del Bitcoin.

 

 

I blocchi formano una catena criptografica, che sarà valida solo se i contenuti sono gli stessi. Se un blocco viene modificato, l’hash sarà diverso. Il blocco successivo risulterà scollegato dal precedente e la catena crittografica risulterà interrotta. L’esistenza della catena è la prova che i dati sono integri.

Nel sistema Bitcoin il sigillo viene calcolato quando il blocco di dati viene composto, per cui il blockchain è parte della struttura dati. Se il contenuto cambia, cambia anche l’identificativo del blocco e tutti gli identificatori dei blocchi successivi. Nel giornale del Bitcoin il blockchain non può essere rimosso, perché il blocco perderebbe l’identificatore e verrebbe meno anche la sequenza. In Bitcoin la successione dei blocchi viene ricostruita partendo dall’ultimo, andando al precedente e poi al precedente, fino a risalire al primo blocco. Questo sistema non è molto congeniale per le persone, per cui ogni blocco viene anche individuato con il numero di blocco progressivo, partendo dal primo che è indicato con lo zero. Nel sistema Bitcoin il numero di sequenza è chiamato altezza.

Il sistema Bitcoin richiede che i sigilli dei blocchi debbano obbligatoriamente iniziare con un certo numero di zeri. Quando si calcola un hash è molto raro che risultino tanti zeri iniziali. Per ottenere il sigillo con il numero di zeri voluto si deve quindi aggiungere un numero (nonce) al contenuto, che in combinazione con gli altri dati darà il sigillo con il numero di zeri iniziali necessari. Non potendo costruire il contenuto partendo dal sigillo, si deve calcolare il sigillo. Si calcola l’hash con il nonce a zero e poi si ripete l’operazione aumentando il nonce di uno, fino che non si trova il sigillo che ha il numero di zeri richiesto. Si richiedono miliardi e miliardi di tentativi e computer molto potenti per riuscire a calcolare il sigillo con il numero di zeri richiesto in tempi brevi.

Il Bitcoin è un sistema aperto dove tutti possono inviare degli ordini di trasferimento (le transazioni).  Ci sono operazioni lecite, ma ovviamente anche tentativi di spendere più volte il denaro. I minatori (miners) hanno il compito di verificare le transazioni, svolgono pertanto la funzione di notai. Sono loro che preparano i blocchi di transazioni da aggiungere al giornale. Raccolgono gli ordini di trasferimento (transazioni) e controllano che questi siano corretti, che la firma digitale sia valida e che siano effettivamente in possesso dei fondi. Assemblano le transazioni verificate in un blocco, aggiungendovi anche un’operazione con cui il minatore si auto-assegna il compenso previsto. Devono poi completare il blocco calcolando il sigillo con il numero di zeri richiesto. Il minatore/notaio più veloce sarà quello con maggiori possibilità di vedere il proprio blocco aggiunto al giornale del Bitcoin e diventare titolare del compenso. Il calcolo del sigillo è quindi un sistema che mette i notai/minatori in competizione per lavorare bene e in modo onesto. Devono calcolare il sigillo molto velocemente. Solo quelli con grandi capacità di lavoro/calcolo (proof of work) riescono a competere. 

Il sistema tende a fare in modo che ci vogliano in media 10 minuti per completare un blocco. Se in due settimane la media si abbassa, il software di gestione del Bitcoin rende il lavoro ancora più difficile, aumentando il numero di zeri iniziali richiesti. I sigilli dei primi blocchi del giornale del Bitcoin avevano 8 zeri iniziali, ora se ne richiedono 18. Sono necessarie capacità di calcolo notevoli, che richiedono ingenti investimenti in computer ed energia. I notai sono stimolati a lavorare bene, perché se fanno errori o barano, il loro blocco verrà scartato e tutto il lavoro fatto sarà stato inutile.

Una volta assegnato il nonce, il calcolo dell’hash del blocco avviene quindi in maniera normale e veloce. Anche la verifica dell’integrità dei dati è semplice in quanto si deve semplicemente ricalcolare l’hash dei diversi blocchi. Il fatto che il sigillo debba iniziare con un certo numero di zeri richiede un numero elevatissimo di tentativi per calcolarlo. Questa particolarità del sigillo che inizia con degli zeri rende la procedura di generazione del sigillo più complessa e più difficile da comprendere. Il sistema di calcolo utilizzato in Banana Contabilità è più lineare e il funzionamento più facilmente comprensibile.

Nonostante queste differenze di calcolo, il blockchain di Bitcoin e di Banana Contabilità serve comunque allo stesso scopo, che è quello di avere una sequenza di dati, certificati con i sigilli e la cui integrità può quindi essere verificata.

 

La verifica dell'integrità e dell'autenticità nel blockchain

Quando si crea il blockchain si applicano i sigilli progressivi alla collezione dati. Per verificare l’integrità e l’autenticità si confrontano i sigilli originali con quelli calcolati. Il problema che si pone è quello di sapere che i sigilli siano davvero quelli originali. Se il custode dei sigilli è anche custode dei dati, egli può modificare i contenuti, ricalcolare i sigilli e sostituire gli originali. Non ci sarà quindi modo di capire se ci sono state delle modifiche ai dati. La verifica dell’autenticità è quindi una questione organizzativa. Il termine autentico deriva dal termine greco authenteo, che significa avere autorità. L’etimologia mette bene in evidenza che chi ha il controllo sui sigilli originali è colui che è in grado di stabilire se i dati sono autentici o meno. Il vantaggio del blockchain è che con un solo sigillo si riesce a verificare l’autenticità di una collezione che può contenere un innumerevole quantitativo di blocchi. L’estrema semplicità con cui è possibile accertare che una struttura di dati sia integra è stata sfruttata da Bitcoin al fine di fare diventare tutti i nodi della rete Bitcoin custodi dell’autenticità dei dati stessi. Il protocollo di Bitcoin permette ai diversi nodi della rete di scambiarsi i sigilli e quindi di verificare facilmente e velocemente presso una molteplicità di soggetti l’autenticità dei contenuti. Senza il blockchain questa verifica avrebbe richiesto lo scambio dei dati con ogni interlocutore e quindi sarebbe impraticabile tenere un giornale distribuito.

Questo è stato di certo uno degli aspetti più innovativi del sistema Bitcoin. La decentralizzazione del giornale serve anche a garantire l’autenticità dello stesso. Il sistema Bitcoin è una fitta rete dove ogni nodo è anche il custode che il garante dell’autenticità. Chi desidera falsificare il giornale deve riuscire in contemporanea a modificare anche il giornale della maggior parte dei nodi del sistema Bitcoin. Questa operazione oggigiorno ritenuta impossibile garantisce la sicurezza dei dati distribuiti. Il sistema Bitcoin è anche utilizzato come notaio digitale, basta eseguire una transazione inserendo nella descrizione l’informazione che si desidera mantenere e questa sarà custodita in modo sicuro.

Banana Contabilità è un sistema contabile mono utente. Ogni contabilità è indipendente e il compito di garantire l’autenticità dei dati, nei tempi e nelle modalità compatibili con le normative nazionali, è lasciato all’utente stesso. Banana prevede la possibilità di stampare ed esportare i dati della certificazione affinché possano essere conservati in modo tale da provare l’integrità degli stessi. Le modalità con cui si deve presentare la prova possono variare, alcuni stati prevedono stampe del giornale, mentre altri richiedono che per ogni operazione si stampi un giustificativo riassuntivo, da qui la scelta di lasciare massima flessibilità e la possibilità alle persone di adattarsi.

 

Blockchain preserva informazioni di valore

Il blockchain è un sistema di certificazione che permette di verificare che i dati non siano stati modificati a posteriori. Il contesto d’uso è quello dove si raccolgono dei contenuti di valore che devono essere conservati e rimanere immutati; presuppone una struttura dati simile a un registro di eventi, come il giornale della contabilità o il log delle modifiche di un database. Il blockchain può però essere applicato indipendentemente dalla tecnologia della conservazione dei dati usata, quindi può certificare strutture sequenziali (log), base dati relazionali (SQL), database tipo documento (Json) e con base di dati distribuite o centralizzate.

Il sistema non è pensato per informazioni statiche, o per applicazioni che modificano i dati direttamente, come per esempio un indirizzario dove il programma va a sostituire il valore nel record del cliente. Potrebbe però essere applicato al registro degli eventi di un database o a un database No-SQL, dove quando avviene una modifica viene creata una nuova versione del documento.

La definizione del blockchain come sistema di certificazione non presuppone una particolare struttura dei dati. In Banana Contabilità i sigilli sono aggiunti come informazione supplementare ai dati già esistenti. Nel giornale del Bitcoin invece il sigillo diventa parte integrante della struttura dati, serve come identificativo del blocco e come connessione al precedente. Da un punto di vista dei processi però le due applicazioni sono molto simili, perché distinguono tutte e due una fase della raccolta e verifica dei dati e una fase della certificazione. In Bitcoin i minatori che preparano i blocchi sono anche responsabili di verificare l’autenticità delle transazioni, la disponibilità dei fondi e la conformità formale. Le transazioni che non hanno i necessari requisiti sono scartate. Nel sistema dei Bitcoin ogni minatore tiene due raccolte distinte, quella degli ordini in corso e il giornale Bitcoin con gli ordini eseguiti. Solo le operazioni corrette possono fare parte del giornale. Se si inviano dei Bitcoin a un destinatario sbagliato o qualcuno ruba le credenziali, non vi è modo di ripristinare la situazione.  Serve un ordine di trasferimento al contrario da chi ha ricevuto i fondi.

In Banana Contabilità il controllo e la verifica spettano al contabile, che può modificare i dati liberamente, fino a quando non decide di applicare il comando per la certificazione. Dal momento che ai dati è stato applicato il sigillo eventuali errori devono essere corretti con operazioni supplementari di storno o rettifica.

Il blockchain può valorizzare qualsiasi sistema, l’importante è che sia utilizzato in modo sapiente e che l’applicazione della certificazione sia funzionale agli scopi dell’applicazione. Il sistema di certificazione del blockchain si inserisce in quella che è più in generale la raccolta e conservazione di dati. Questa è costituita da più fasi e attori. In Bitcoin ogni blocco è provvisto di timestamp. Anche se non rigorosamente preciso, vi è un chiaro riferimento temporale. Non vi sono obblighi legali da soddisfare e il funzionamento e il valore del Bitcoin dipendono dalla fiducia che le persone nutrono nel sistema.

Fasi nel sistema Bitcoin

Eseguita da

Spiegazione

Creazione delle informazioni

Titolari degli averi

Invio ordini di trasferimento

Raccolta e verifica contenuti

Minatori

Preselezione degli ordini 

Applicazione dei certificati

Minatori

Creazione dei blocchi e sigilli

Aggiunta alla collezione

Ogni nodo della rete

Aggiunta al proprio giornale in base alle regole del consenso distribuito

Custodia dei dati e dei sigilli

Ogni nodo della rete

Copia locale di tutti i dati

Garanzia autenticità dei dati

Ogni nodo della rete

Verifica multipla presso altri nodi della rete

 

In Banana Contabilità vi è un unico giornale, la tabella Registrazioni, con tutti i movimenti, quelli in corso, senza sigilli, e quelli da considerare definitivi che sono muniti di sigilli. Il contabile o il superiore decide il passaggio a definitivo impartendo il comando che applica i sigilli.

Fasi in Banana Contabilità

Eseguita da

Spiegazione

Aggiunta e correzione

Utente

Inserimento dei movimenti in modo libero

Verifica e certificazione dati

Utente / Supervisore

Comando Blocca movimenti

Custodia dei dati e dei sigilli

Utente / Supervisore

Obbligo di tenere copie

Garanzia autenticità dei dati

Utente / Supervisore / Esterno

Conservazione sigilli in modo da provare originalità dei dati

 

Usare il blockchain in Banana Contabilità

Il blockchain è stato sviluppato per impedire modifiche alle registrazioni in modo da soddisfare i requisiti di una contabilità ufficiale. Le modalità d’uso sono state pensate perché questa tecnologia fosse utilizzabile senza particolari conoscenze tecniche. In Banana Contabilità i movimenti possono essere modificati liberamente. L’utente può però impartire il comando Blocca movimenti: da questo momento i movimenti sono protetti, non si possono più cambiare e sono anche muniti dei sigilli digitali, con la possibilità quindi di accertare che i dati siano quelli originali. Se il file della contabilità viene sostituito da un altro simile, con dei dati anche solo leggermente diversi, i sigilli sarebbero diversi. Se i sigilli sono gli stessi, si può essere certi che i dati non sono cambiati. Il sistema di protezione basato sul blockchain è molto più sicuro dei sistemi di protezione delle informazioni basati su password.

Banana Contabilità è un interessante esempio di come il sistema di certificazione di blockchain può essere aggiunto ad un’applicazione esistente e permettendole di fare un balzo in avanti in termini di sicurezza e affidabilità, senza rinunciare alla facilità e immediatezza d’uso. Qui di seguito viene spiegato come la certificazione è implementata e organizzata in Banana Contabilità.

In Banana Contabilità il giornale è uno solo e ci sono due tipi di registrazioni, quelle con i sigilli del blockchain, che sono bloccate, e quelle libere, in corso di elaborazione, che si possono modificare. 

Tenere la contabilità è un’attività piuttosto complessa per cui bisogna raccogliere le informazioni, inserirle e catalogarle correttamente. Ci sono spesso sbagli e dimenticanze, che si scoprono però solo alla fine del periodo, quando si fanno le riconciliazioni bancarie, si analizza il bilancio e si preparano i resoconti dell’IVA. Il presupposto per fare questi controlli è quello che le operazioni siano inserite in contabilità in modo tale che si possano vedere i risultati, effettuare le stampe di bilancio e tutto quanto necessario. Le registrazioni devono ovviamente corrispondere ai giustificativi, e, se ci sono degli errori di trascrizione o categorizzazione questi devono essere corretti.

In Banana Contabilità ci sono due modi per correggere gli errori:

  • le operazioni che non sono ancora state munite di sigillo possono essere modificate direttamente, come si fa con un foglio elettronico;
  • le operazioni con il blockchain devono invece essere corrette con delle operazioni supplementari di storno e di rettifica.

Il blockchain in Banana Contabilità è stato concepito come un servizio messo a disposizione e controllato completamente dall’utilizzatore. Non vi è l’applicazione automatica dei sigilli. L’utente gode della massima libertà di inserire, modificare i movimenti esattamente come se stesse lavorando con Excel; ha la contabilità sempre aggiornata e può consultare i diversi resoconti e confrontare i propri dati con quelli della banca. Nel momento in cui ritiene che tutto sia a posto, di regola alla fine di un periodo e in concomitanza con la presentazione di rendiconti particolari, impartisce il comando di blocco dei movimenti. All’utente viene presentata una finestra di dialogo nella quale indicare la nuova data di blocco delle registrazioni da bloccare, per esempio il 31 gennaio.

 

 

A questo punto Banana Contabilità procede all’applicazione dei sigilli ad ogni operazione, e li indica nella colonna BloccoProgr.

 

 

Per tutte le righe che non sono bloccate e fino alla data del blocco indicata, il programma procede nel modo seguente:

  • verifica che non ci siano errori nei movimenti; se vengono riscontrati degli errori, (per esempio se il conto non è corretto) la procedura di blocco viene interrotta. L’utente dovrà correggere l’errore e ridare il comando di blocco;
  • assegna un numero progressivo che viene salvato insieme ai dati della riga stessa. Quando si blocca il periodo successivo, la numerazione riprende dall’ultimo;
  • calcola il sigillo dell’operazione (hash progressivo) combinando i dati della registrazione con il sigillo della registrazione precedente.

Il programma impedisce anche modifiche alle righe con i sigilli e inserimenti di registrazioni con una data inferiore a quella del blocco. In pratica non si bloccano solo le registrazioni, ma anche il periodo. Se si blocca fino a gennaio, si potranno inserire solo registrazioni a partire da febbraio.

Il programma visualizza un rapporto dell’avvenuto blocco, che indica il numero progressivo dell’ultima registrazione bloccata e il relativo sigillo. Questo sigillo è anche il certificato di tutti i movimenti contabili dalla prima registrazione in avanti, quindi di tutta la contabilità fino a questo punto.

 

 

Il programma offre una funzione di verifica dei sigilli, che controlla che la sequenza dei sigilli sia corretta. Questa funzione è richiamata in automatico anche quando si impartisce il comando di controllo della contabilità, e, se i dati sono stati manipolati, bypassando le sicurezze del software, verrà segnalato un errore.

La custodia dei sigilli

La tenuta della contabilità è soggetta a regolamentazioni. La certificazione dei dati è generalmente eseguita allo scopo di garantirne e di assicurarne la conformità alle normative, che prevedono dei tempi per l’inserimento dei movimenti, e successivamente l’integrità inalterata dei movimenti. Il blockchain è un sistema che, dal punto di vista tecnico, soddisfa i requisiti di legge. Il certificato indica la data di sistema in cui si è impartito il comando di blocco, ma questo valore non fa stato legalmente. Spetta all’utente salvare questi dati in modo da potere dimostrare il momento in cui i sigilli sono stati applicati. Una possibile modalità è quella di stampare il resoconto e munirlo della propria firma.

L’applicazione dei sigilli avviene di regola quando si necessita di trasmettere dei dati all’autorità fiscale. Quando il blockchain diventerà un requisito le autorità fiscali richiederanno di inviare, assieme ai diversi dati, anche le informazioni relative al sigillo. In questo modo l’invio dei dati servirà anche come certificazione dei dati della contabilità.

La rimozione del blockchain

Banana Contabilità mette a disposizione anche un comando per la rimozione del blocco. Se si ragiona con i concetti di sicurezza vecchi, questo comando potrebbe essere considerato una violazione della sicurezza. Bisogna invece ragionare sul fatto che il punto centrale non è più impedire la modifica dei dati, ma avere un sistema che permetta di dimostrare l’autenticità dei sigilli. Infatti, bypassare il blocco ai movimenti è molto semplice, basta tenere una copia del file della contabilità prima del blocco. In qualsiasi momento si può ritornare all’archivio senza sigilli. Inoltre, ci sono situazioni dove è perfettamente lecito rimuovere il sigillo, ad esempio un uso interno degli stessi o quando vi è ancora tempo per presentare i rendiconti. Dal momento però che la contabilità è definitiva e i sigilli sono custoditi al sicuro ogni correzione deve essere fatta con delle operazioni di storno e rettifica.

 

I valori salvati in formato digitale

La banconota è il tipico esempio di un valore incorporato in un documento cartaceo. Per mantenerne il valore bisogna custodire con cura la banconota, ma questo non è sufficiente. Se qualcuno riuscisse a produrre delle copie identiche, le banconote originali perderebbero il loro valore. Per preservarne il valore occorrono una serie di elementi e un’organizzazione complessa. Nel caso delle banconote, esse devono essere munite di sistemi che ne rendano difficile la falsificazione. Inoltre, dev’essere presente un apparato che intervenga in caso di falsificazione. Sono quindi necessarie delle norme penali e delle autorità che perseguano chi produce e mette in circolazioni valori falsi. Si deve anche evitare che le banconote siano rubate o vadano perse, per cui è necessario avere dei sistemi di custodia e di trasferimento sicuri. Più i valori sono alti e più attraggono malintenzionati. Se si hanno tanti soldi si preferisce metterli in banca. Se si deve pagare un fornitore lontano, si usano degli intermediari, che senza spostare i soldi fisicamente, fanno in modo che il valore sia trasferito.

I documenti sono degli attestati di fatti che costituiscono un valore. Il contratto di acquisto attesta che una persona è diventata proprietaria di un oggetto. Le ricevute attestano che siamo proprietari degli oggetti acquistati, che abbiamo un diritto di garanzia e che abbiamo pagato le tasse sulla vendita.

Con la trasformazione digitale l’informazione che attesta il valore sarà in forma elettronica. Questi dati devono quindi essere custoditi in maniera tale che il valore sia preservato. Il blockchain è l’elemento tecnico che consente di sapere se i dati sono integri, ma per assicurarne l’autenticità è necessaria un’organizzazione in grado di custodire i dati, salvaguardarli, farli arrivare nei posti giusti e intervenire in caso di tentativi di falsificazione. L’aspetto organizzativo, che sia svolto da computer o da persone, rimane un elemento centrale per la custodia dei valori digitali.

Il presupposto del funzionamento del sistema Bitcoin è il software open source che ne consente la gestione e collega i diversi nodi. Se questo software contiene degli errori o ha delle falle, il valore stesso dei Bitcoin è messo in discussione. La gestione e tenuta a giorno del software è quindi centrale e critica; una falla nella programmazione potrebbe permettere a malintenzionati di impossessarsi degli averi. Il blockchain è lo strumento che consente la creazione di sistemi che preservano i valori digitali, ma questi potranno svilupparsi ed esistere solo in combinazione con un’organizzazione. Recentemente, le tecnologie informatiche hanno compiuto grandi progressi e sono generalmente in grado di gestire diversi generi di valori digitali e permettere che essi siano generati, trasmessi, venduti e annullati in sicurezza e con la massima affidabilità. Dal punto di vista organizzativo si è invece ancora all’inizio, ci vorrà ancora del tempo prima che si sviluppino una cultura e delle metodologie riconosciute per la custodia dei valori salvati in formato digitale.

 

Aspetti legali e culturali del blockchain

La mia tesi di laurea in giurisprudenza, scritta nel 1986, aveva come tema il commercio elettronico e la protezione dei dati. A quel tempo l’offerta di servizi era limitata all’accesso a banche dati specializzate. Il tema era nuovo, c’era poca letteratura, ma si intuiva ovviamente il grande potenziale di sviluppo. Una delle domande che ci si poneva era se il commercio elettronico avrebbe richiesto modifiche all’impianto giuridico esistente. Era evidente che sarebbero emerse nuove modalità di fruizione e nuove tipologie di contratto, ma ero arrivato alla conclusione che i diversi contratti, nella loro sostanza giuridica, sarebbero rimasti sostanzialmente immutati. Così è stato, la rivoluzione informatica è potuta procedere speditamente e prendere piede in ogni ambito della società, grazie al fatto che le leggi e i concetti giuridici esistenti andavano bene e avrebbero richiesto adattamenti molto limitati.

Credo che lo stesso possa essere detto per il blockchain, come strumento per garantire l’integrità e l’autenticità dei dati. L’adozione di questa tecnologia potrà procedere sulla base delle normative esistenti e con delle modifiche molto puntuali e senza stravolgimenti dell’impianto giuridico. Generalmente i certificati e le firme digitali sono già previsti da tutte le normative nazionali. Il sistema di certificazione dati del blockchain può quindi già essere usato nella maggior parte degli ambiti. La premessa per il riconoscimento da parte delle autorità amministrative e giudiziarie è ovviamente che i sigilli digitali siano calcolati con tecnologie che ne impediscano la falsificazione. Potranno quindi essere usati solo algoritmi di calcolo privi di falle.

La questione si pone più che altro in termini organizzativi e culturali. Il blockchain, come altre tecnologie, viene adottato senza sapere quali ne siano le implicazioni e le conseguenze. C’è poi una parte del mondo che è avanti nei ragionamenti e altri che non si sono resi conto appieno dei mutamenti in corso. Per esempio, l’abolizione dei contanti viene tuttora portata avanti come un sistema per combattere il crimine e l’evasione fiscale, trascurando il fatto che il crimine organizzato è stato uno dei più attivi nell’usare Bitcoin e altre monete digitali come strumento per muovere e riciclare ingenti somme. A questo riguardo si rileva come sfuggano le conseguenze penali, civili e reputazionali relative all’uso di nuovi sistemi di pagamento, basati su dei giornali pubblici, resi indelebili dal blockchain. La giustizia è molto lenta, e ci vorranno presumibilmente anni prima che emergano i crimini perpetrati grazie a Bitcoin. Delle persone potrebbero scoprire di essere stati destinatari o proprietari di fondi legati a crimini. Degli investitori ignari oppure i minatori, che compongono i blocchi e di fatto permettono alle operazioni di essere eseguite, potrebbero perdere i propri averi o essere chiamati in causa per riciclaggio o addirittura complicità nei reati. Presumo che degli studi legali si specializzeranno nell’analizzare il giornale e trovare il modo di avviare cause. Da questo punto di vista, il grande vantaggio del blockchain, che è quello di creare una catena indivisibile, potrebbe diventarne anche il tallone d’Achille in grado di far collassare il sistema.

 

La conservazione dei dati con il blockchain

I contenuti più importanti, ancora oggi sono tenuti su carta. Tutto sommato l’informatica è un fenomeno relativamente recente, e la conservazione delle informazioni digitali segua ancora le metodologie usate per i documenti cartacei, il cui obiettivo principale è quello di proteggere il supporto. Le applicazioni contabili sono ritenute sofficemente sicure se dispongono di sistemi di limitazione degli accessi o di tracciatura delle modifiche. I dati sono degli impulsi elettrici che possono essere modificati senza lasciare traccia. Difetti tecnici, errori di programmazione o persone che abusano o bypassano i sistemi di protezione, possono cambiare le informazioni e anche evitare che vi sia traccia del cambiamento. Con il blockchain consente di verificare se i dati sono originali. Il blockchain rende molto più affidabili i dati. Sia quelli protetti da sistemi di sicurezza sia quelli privi di protezione. Il blockchain, può funzionare con qualsiasi collezione di dati. Il sistema Bitcoin ha mostrato al mondo che un giornale disponibile su internet, munito di blockchain, è più affidabile di u giornale protetto unicamente con misure tipiche dei sistemi informatici tradizionali.

Il blockchain indirettamente è anche un sistema di protezione dei dati, perché il fatto di poter capire in modo facile e veloce se i contenuti sono stati modificati, è un deterrente ai tentativi di alterazione. In caso si dovesse riscontrare che i dati sono stati cambiati si possono recuperare delle copie dei dati e verificare con il blockchain che siano quelle originali. Questo principio è anche alla base del funzionamento del sistema Bitcoin; se infatti un nodo riscontra un errore nei dati, chiede agli altri nodi di inviare i dati corretti.

La tenuta dei dati si sta spostando sui cloud, dove i dati sono esposti a tutta una serie di pericoli per la loro integrità che negli ambienti tradizionali chiusi non esistevano. Senza un sistema di certificazione dei dati non vi è modo di avere la certezza che i nostri dati salvati sul cloud non siano cambiati. Introdurre il blockchain negli applicativi esistenti è piuttosto semplice. Si potrebbe in questo modo fare affidamento sui dati e i sistemi informatici potrebbero diventare molto più sicuri. Le leggi attuali sono aperte all’uso del blockchain come sistema di certificazione dati. Purtroppo però il blockchain non è ancora conosciuto proprio dalle persone, come i revisori, che potrebbero trarre maggiore beneficio da questa tecnologia. Una gran parte delle costose verifiche volte a verificare l’integrità dei dati diventerebbe superflua. È molto probabile che fra un po’ di tempo la certificazione dei dati tramite il blockchain diventi la norma in ambito contabile, bisogna però fare in modo che sia impiegato in modo da essere utile alle imprese e che non diventi una complicazione.

Serve una formazione specifica a tutti i livelli sui sistemi di certificazione dati e su come utilizzarli al meglio a vantaggio delle imprese. In più è necessaria una tenuta a giorno delle metodologie di controllo. In molti ambiti il concetto di certificazione e le relative modalità d’uso non sono ancora conosciute. L’impiego generalizzato dei sistemi di certificazione dei dati è però solo una questione di tempo.

 

Il blockchain nelle applicazioni distribuite

Bitcoin è un sistema contabile basato su un giornale distribuito. Il blockchain è l’elemento che consente di gestire un database distribuito, in quanto i sigilli permettono di verificare facilmente l’integrità e l’autenticità dei dati. Il blockchain è quindi il presupposto per lo sviluppo di applicazioni distribuite. Vi è un grosso interesse nel creare delle applicazioni in cui i dati siano gestiti in modo distribuito, dove gli utenti abbiano una propria copia dei dati.  I vantaggi di questo approccio sono notevoli, ma le applicazioni devono essere riprogettate.

Bitcoin è però anche molto diverso dai soliti sistemi contabili, perché è basato sul consenso distribuito. Non vi è un’autorità centrale che decide quali siano le transazioni da aggiungere, ma ogni nodo della rete Bitcoin decide, in base a delle regole predefinite, quali siano i blocchi di transazioni che devono essere aggiunti al giornale. Con il passare del tempo si forma un consenso circa quali siano i blocchi corretti. Lo scopo del blockchain è quello di assicurare l’integrità dei dati. Nel sistema Bitcoin però il calcolo del sigillo è reso molto oneroso perché viene anche usato per rendere affidabile il sistema del consenso distribuito. Questa scelta tecnica crea parecchia confusione perché tende a far credere che il blockchain debba andare a braccetto con il consenso distribuito. Non è vero, il blockchain è infatti indipendente dal fatto che il sistema di aggiunta di dati si basi sul consenso centralizzato o quello distribuito. Ci possono essere sistemi distribuiti che usano il consenso centralizzato o un consenso distribuito non basato sul calcolo del blockchain.

 

Sul superamento dell'intermediazione

L’utilizzo di documenti cartacei ha favorito la crescita dei servizi di intermediazione. La difficoltà e i rischi connessi con il fare arrivare degli importi monetari in paesi lontani, ha portato alla nascita delle banche. I soldi non vengono trasferiti fisicamente, ma arrivano al beneficiario tramite intermediari, che li spostano tramite compensazioni contabili. Lo stesso sistema viene usato per la compravendita di azioni, obbligazioni, petrolio, metalli preziosi e tutto ciò che viene trattato in borsa. I valori rimangono depositati fisicamente presso un intermediario che tiene nota dei passaggi di proprietà e ovviamente riceve un compenso.

Nel momento in cui l’attestato della proprietà di un’azione, di un’obbligazione o di un qualsiasi altro valore o oggetto è in forma digitale, si apre la possibilità di trasferirlo in maniera elettronica in qualsiasi punto del mondo. Non vi è più la necessità di avere intermediari. Il sistema Bitcoin permette di effettuare dei pagamenti diretti, senza intermediari. Quando l’operazione di trasferimento figura iscritta nel giornale del Bitcoin, il valore è considerato trasferito. Grazie al blockchain si possono creare valori digitali, azioni, obbligazioni, biglietti, buoni acquisto, certificati d’autenticità e quant’altro, che possono essere scambiati direttamente.

Bitcoin è nato come sistema per eseguire trasferimenti di denaro senza intermediari e a costi irrisori, ma si è poi sviluppato in una direzione molto diversa. Una gran parte delle operazioni di Bitcoin viene gestita da degli intermediari (Exchanges), che offrono servizi aggiuntivi quali il cambio di Bitcoin in dollari e altre monete comuni. I costi poi sono enormemente lievitati e sono nell’ordine degli US$ 60 per singola transazione, se si considerano i compensi per il lavoro svolto dai minatori. Bitcoin, al di là delle limitazioni tecniche, non è un sistema in grado di competere con i sistemi bancari tradizionali e quelli più moderni, centralizzati, come Paypal, M-pesa o Wechat, Alipay.

La tecnologia del blockchain ha attirato una grande attenzione e anche molti investimenti per la possibilità di creare nuovi tipi di business che facciano uso di valori digitali che non necessitino di intermediari. La realtà è però molto complessa e gli intermediari non credo siano destinati a sparire, in quanto offrono un insieme di servizi. La mia opinione è che il blockchain sarà adottato proprio nell’ambito dell’intermediazione, per rendere i processi più sicuri, efficienti e facilmente integrabili.

 

Il blockchain applicato a base dati centralizzate

Un grande ambito d’utilizzo del blockchain è certamente quello dei database centralizzati. Come dimostra l’esempio di Banana Contabilità, applicare il blockchain ai sistemi contabili esistenti è tecnicamente molto semplice e porta vantaggi notevoli. Adattare applicazioni esistenti che usano dei database relazionali (SQL) è molto facile dal punto di vista tecnico; piuttosto, l’attenzione deve essere focalizzata sugli aspetti organizzativi.

La maggior parte delle applicazioni contabili è basata su un giornale che contiene le transazioni. Si tratta di aggiungere nella tabella dei dati due colonne supplementari nelle quali memorizzare il numero progressivo della riga e il sigillo progressivo (blockchain). Generalmente i movimenti sono già numerati, ma per facilitare l’implementazione ed evitare conflitti con procedure esistenti, è consigliabile usare un numero di riga diverso. Si tratta di implementare una procedura, simile a quella di Banana Contabilità e spiegata in precedenza, che permetta di calcolare i sigilli delle operazioni definitive non ancora munite di sigillo. Potrebbe essere la procedura di aggiunta delle registrazioni oppure una procedura che, a scadenze regolari, numera le operazioni, calcola e salva i sigilli nelle righe di registrazione (per ulteriori informazioni tecniche si rimanda alle spiegazioni contenute nel brevetto USA). I sigilli devono poi essere salvaguardati in modo sicuro. Questo è un problema organizzativo. Bisogna poi ovviamente implementare delle procedure che ricalchino i sigilli e verifichino l’integrità dei dati.

L’affidabilità è ovviamente dipendente dall’esistenza di un’organizzazione interna che assegni i compiti e garantisca che solo le persone designate abbiano la possibilità di modificare i sigilli originali. A supporto di questo compito possono ovviamente essere utili dei sistemi di notariato digitale, ma l’affidabilità dei dati sarà comunque sempre dipendente da persone. L’organizzazione ha quindi un ruolo essenziale per l’affidabilità dei dati. Bisognerà poi anche mettere in piedi delle procedure volte a togliere i sigilli esistenti allo scopo di permettere delle modifiche ai dati già certificati. Non entro nei dettagli, ma ci possono essere diverse situazioni, errori di codifica o programmazione, cambiamento del sistema, che possono obbligare a modificare i dati e sostituire i sigilli.

Lo stesso approccio usato per la contabilità può anche essere usato in tutti gli ambiti dove vi è un giornale o registro. Il blockchain potrebbe quindi essere usato per certificare:

  • i dati di un registro fondiario;
  • il registro degli accessi;
  • il registro degli eventi di un computer;
  • altre strutture dati che raccolgono informazioni di valore.

Ogni operazione può essere munita di un sigillo progressivo. La verifica può essere eseguita facilmente. Questo sistema, specialmente se i quantitativi di dati sono molto grandi, è molto più semplice, più veloce e anche più sicuro rispetto alle procedure basate sul confronto di dati. Eventuali tentativi di manipolazione possono essere facilmente individuati.

In grandi organizzazioni il giornale contabile principale è il frutto del consolidamento di diversi giornali locali. Capita spesso che i giornali siano modificati e che vi siano differenze difficili da riconciliare. Il blockchain permette di assicurare che i dati siano sempre sincronizzati e che non ci siano differenze. Nel giornale centrale si memorizzerà anche il sigillo del giornale da integrare. La volta successiva, prima di procedere all’integrazione delle nuove operazioni, tramite il confronto dei sigilli salvati, si verificherà che i dati delle operazioni già integrate non siano cambiati. In questo modo i dati dei diversi sistemi saranno sempre sincronizzati. Questo sistema è stato adottato dall’organizzazione svizzera di aiuto allo sviluppo Helvetas. Grazie al blockchain di Banana Contabilità, Helvetas riesce ad integrare e mantenere allineate le contabilità di oltre 200 progetti nel mondo intero con la contabilità centrale.

 

La revisione della contabilità con il blockchain

Il blockchain semplifica di molto la conservazione dei dati contabili. Si possono tenere copie dei file, fare backup e, tramite la verifica dei sigilli, essere certi che si tratti dei dati autentici.

Per i revisori diventerà invece importante verificare il funzionamento del blockchain e di come sono attribuiti e salvati i sigilli. Bisogna evitare che i sigilli possano essere manipolati e che quindi delle persone possano modificare i dati e nel contempo anche i sigilli.

Se i movimenti sono muniti di sigilli, sarà molto più difficile per persone non autorizzate modificare movimenti contabili e nascondere le proprie tracce. Individuare modifiche sui dati sarà molto più semplice e altresì facile ripristinare la situazione originale. Il blockchain costituisce un deterrente importante alla modifica dei movimenti contabili. In un sistema ben organizzato qualsiasi tentativo di modifica può essere scoperto in tempi molto brevi. Il blockchain rende anche più sicure le operazioni svolte sui dati e si potranno facilmente individuare modifiche indebite ai dati esistenti, frutto di procedure errate.

Il blockchain, contrariamente a quanto si pensi, non rende impossibile la modifica dei dati. Se ci sono errori che devono essere forzatamente corretti, lo si può fare. Si dovrà però aggiornare i sigilli e documentare correttamente questi interventi.

La possibilità di fare copie autentiche permette ai revisori di poter effettuare controlli anche al di fuori del sistema informatico con la certezza che i dati siano uguali. Con il blockchain diventa anche più semplice eseguire una revisione a periodi; grazie ai sigilli si può essere certi che i movimenti già controllati non sono più stati modificati.

Il blockchain facilita anche le revisioni svolte da più entità. La certezza dell’integrità dei dati permette di fare affidamento su controlli già eseguiti in precedenza. Non vi è il pericolo che nel frattempo qualcosa possa essere stato manipolato o che si stia lavorando su dati non allineati.

Per le autorità fiscali il blockchain è ovviamente un sistema interessante. Le ditte non devono fare altro che inviare contemporaneamente agli adempimenti anche il sigillo relativo allo stato attuale della contabilità e vi sarà successivamente la certezza che i dati rimarranno i medesimi. Il fisco e l’ufficio di revisione possono facilmente fare a meno di quelle verifiche volte a scoprire modifiche a posteriori dei dati.

 

Preservare la flessibilità delle organizzazioni

Il blockchain collega tutte le operazioni e le rende impossibili da modificare. Diventa quindi essenziale che i dati certificati siano il più possibile corretti. Correggere tutti gli errori con delle operazioni di storno e rettifica non è una buona soluzione perché la contabilità diventerebbe di difficile comprensione. I principi della protezione dei dati prevedono inoltre che gli errori siano corretti. Se si introduce il blockchain e non è più possibile cambiare i dati, è imperativo avere un sistema che sia in grado di assicurare un’alta qualità. In Banana Contabilità vi è la possibilità di inserire i movimenti, controllare la contabilità e correggere le operazioni. Solo al momento in cui i dati siano stati riconciliati e si è certi che siano corretti, si applica il blockchain. Lo stesso approccio viene usato anche nelle transazioni di Bitcoin: tutti possono inviare delle operazioni, ma il sistema prevede dei severi controlli. Solo operazioni verificate, che hanno reale disponibilità, entrano a fare parte del giornale. Anche in questo campo si è trovato un buon compromesso fra avere un sistema flessibile e un giornale definitivo.

Introdurre il blockchain senza considerare la necessità di flessibilità può rendere le procedure molto complesse e le ditte rigide. Se il sigillo viene apposto a tutte le operazioni, senza lasciare la possibilità alle persone di verificare i dati si fanno più danni che utili.

Il rischio maggiore di un approccio burocratico lo si vede ovviamente in ambito fiscale, dove si ritiene tuttora che per impedire l’evasione fiscale si debba obbligare le ditte a registrare i movimenti in tempi brevi e non più modificarli. Applicare il blockchain a dei movimenti, prima ancora che sia stato possibile riconciliare le operazioni e stampare un bilancio di controllo dell’intero periodo, renderebbe alle piccole imprese ancora più difficile tenere la contabilità.

Nel mondo digitale tutte le operazioni hanno ormai una traccia. La contabilità è un consolidamento di dati provenienti da diverse fonti. Nei prossimi anni la catalogazione e la classificazione dei dati saranno eseguite in automatico da sistemi intelligenti. In questo nuovo contesto l’evasione utilizzerà altri metodi, non certo quello di inserire i dati in contabilità e poi cancellarli pochi giorni dopo. Per piccole entità, il concetto deve essere quello in cui sia obbligatorio applicare il blockchain ai movimenti contabili quando i dati si sono potuti controllare, quindi quando si chiude un periodo o si presentano dei rendiconti periodici (trasmissione dati IVA).

Diverso è il discorso per le grandi aziende, dove il giornale viene alimentato da procedure automatiche e ci sono molti utenti che usano il sistema. In questi casi il blockchain potrebbe essere applicato immediatamente. Nell’ambito dell’organizzazione dei processi si dovrebbe analizzare quale sarebbe il momento migliore per applicare il blockchain.

Il discorso potrebbe allungarsi un po’ troppo, ma vale la pena di ricordare che la digitalizzazione del fisco, con l’obbligo dell’invio dei dati in formato digitale, è andata di pari passo con l’aumento della mole di dati e l’incremento della complessità. Sempre con lo scopo di contenere l’evasione si sono moltiplicate le direttive fiscali in merito alla presentazione del bilancio e del conto economico. Molte piccole imprese sono state costrette ad esternalizzare completamente la contabilità e, in molti casi, i dati dei rendiconti fiscali sono sconnessi dalla realtà aziendale al punto che la contabilità fiscale non può più essere usata come strumento di controllo. Sempre di più infatti, la tenuta contabile è commissionata all’esterno con l’unico scopo di dare seguito agli adempimenti fiscali. La completa separazione dei compiti ha avuto come conseguenza un’organizzazione delle ditte a compartimenti stagno, costosa, ma anche ottimale per l’evasione.

Nel frattempo la tecnologia ha offerto nuove possibilità di evasione, si pensi appunto ai sistemi di pagamento e di investimento tramite le monete virtuali. Le autorità fiscali dovrebbero fare una valutazione complessiva della situazione e fare in modo che tenere la contabilità e pagare le tasse diventi il più facile possibile. L’utilizzo del blockchain dovrebbe servire a questo scopo, anche perché quando l’economia va bene le entrate fiscali aumentano. Un approccio più macro economico e meno burocratico sarebbe di certo più utile anche allo Stato.

 

Banana.ch SA patent

Banana.ch applied for a patent on the certification of transactional data in 2002. The patent was registered by the patent office in 2006 (US Patent No. 7,020,640).

The method developed by Banana is very simple to apply to transactional databases. The blockchain technology can be applied to existing IT systems in a short time and with a few modifications. Significant results can be obtained with limited investments: complying with directives on data storage, increasing security, reducing the management costs of IT systems and increasing the efficiency of many procedures. Banana.ch is at your disposal for information and support.

The patent territorial scope is limited to the US and Banana.ch grants non-free licenses for the use of the method and free licenses for projects with no commercial purposes. For further information, please contact us.

 

The author

Domenico Zucchetti (1960), CEO of Banana.ch, is a book-keeper, jurist and programmer. He studied accounting and graduated in law in 1986 with a degree thesis on e-commerce. After working for six years in a financial institution, he established the company Banana.ch. He started professional programming at the age of 19 and still directly follows the developments of the Banana Accounting software.

In 2002, he was the first to use the blockchain technology in the accounting field and apply for a US Patent No. 7,020,640).

He has developed over 30 years of experience with different tax systems and coordinated the development of tools that simplify the adjustment to national requirements and the easy setting up of sophisticated financial and liquidity planning.

 

 

Condividi questo articolo: Twitter | Facebook | LinkedIn | Email