Blockchain per garantire l'integrità dei movimenti contabili

In questo articolo

ll blockchain è un sistema di sicurezza e di certificazione che garantisce l’integrità di collezioni di dati. Questa tecnologia permette di controllare che i dati non siano stati modificati a posteriori e di fare affidamento su contenuti digitali indipendentemente da dove si trovano, riducendo la trasmissione del volume dei dati. Il blockchain nasce dall’esigenza di garantire la validità dei dati in forma elettronica, oltre che a quella su carta (vedi Storia del blockchain). Le collezioni di dati possono quindi essere trasmesse e conservate su diversi computer simultaneamente in modo affidabile, avendo la certezza che la modifica dei dati sia bloccata.

Definizione di Blockchain

Domenico Zucchetti, fondatore di Banana.ch, definisce il blockchain in questo modo:  

"Il blockchain è una collezione di dati che può crescere, costituita da blocchi in sequenza, dove ogni blocco ha un hash crittografico concatenato con il precedente, così che l'hash del blocco certifica l’integrità del contenuto del blocco e anche dell'intera collezione dall'inizio fino al blocco stesso.” 

Questa definizione mette in evidenza che la struttura dati blockchain consente di aggiungere dei nuovi elementi senza compromettere l'integrità degli hash esistenti. In ambito contabile questo è fondamentale, perché si deve potere certificare e verificare l'integrità dei movimenti contabili inserirti fino a un certo punto, ma anche aggiungerne dei nuovi.

Questa caratteristica è fondamentale per potere gestire dei giornali distribuiti, come in Bitcoin, perché i diversi nodi del sistema possono essere certi di l'esatta copia dei dati scambiandosi pochissime informazione. Infatti il blockchain permette:

  • Di accertarsi che il contenuto del giornale è uguale semplicemente scambiandosi solo l'hash dell'ultimo blocco.
  • Di sapere fino a che punto la base dati è uguale, scambiandosi solo gli hash dei blocchi precedenti.
  • Di allineare i contenuti, solo trasferendo i blocchi mancanti.

Con le banche dati tradizionali, sarebbe necessario scambiare tutti i dati del giornale per verificare l'integrità dei dati. Invece, con la Blockchain ogni nodo della rete è in grado di interrogare un gran numero di controparti per verificare che il suo giornale sia quello " vero ". Nel sistema Bitcoin, ogni nodo della rete assume quindi anche il ruolo di validazione dei contenuti, rendendo estremamente difficile per qualcuno creare un sistema di falsificazione.

 

Esempio di una struttura dati blockchain 

 

Qui di seguito viene riportato un esempio di un giornale contabile di Banana Contabilità. Ogni transazione è rappresentata dalla riga del giornale che ha un hash crittografico calcolato in base al contenuto dell’hash crittografico della riga precedente. L’hash della riga è il risultato del concatenamento di tutti gli hash delle righe precedenti ed è così anche il certificato che garantisce l’integrità dei dati del giornale dall’inizio del giornale. 
Aggiungendo altre righe, ciascuna con il proprio hash, non verranno invalidati gli hash precedenti.  

blockchain

Per la contabilità, diverse normative nazionali richiedevano e richiedono che i movimenti siano numerati in modo progressivo. Banana Contabilità, prima del calcolo dell'hash, attribuisce alle registrazioni un numero progressivo, usato anche per calcolare l'hash. Questo numbero determina la sequenza delle righe, permette di verificare la validità degli hash e anche di risultare conforme alle normative.

Collezione di dati storici 

Il blockchain è una collezione di dati finalizzata a preservare l’integrità dei dati tramite gli hash crittografici. Si usa quindi per dei dati storici, che una volta creati e validati non devono più essere modificati, come per esempio un giornale contabile o un registro degli accessi. Il blockchain non è adatto invece per i dati che devono continuamente essere aggiornati, come per esempio la riga di un conto della contabilità, con il saldo che viene ricalcolato ogni volta che si aggiunge un nuovo movimento. 

Blocchi di dati in sequenza  

Il termine “blockchain” deriva dall’inglese e significa “catena di blocchi”. La collezione è formata da blocchi di dati, che hanno una determinata sequenza. Nel caso di un giornale contabile ogni blocco è una singola transazione. Nella sistema del Bitcoin, invece, ogni blocco contiene una serie di movimenti contabili organizzati come delle Merkel Tree (vedi sopra). Nella struttura dati blockchain l'ordine con cui i blocchi si succedono è importante quanto le informazioni contenute nel blocco, Infatti, il blockchain garantisce l’immutabilità sia dei contenuti che della successione dei dati.  

Ogni blocco, così come le transazioni, può essere consultato, ma non può essere alterato. Successivamente vengono aggiunti dei nuovi blocchi, senza però modificare quelli precedenti.  

I blocchi sono 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. 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 anche il suo hash. Se la catena è corretta, significa che i contenuti sono integri.

Hash crittografici 

L’hash sum o più semplicemente hash è un testo calcolato da una funzione di hash sulla base di un determinato insieme di dati. La funzione di hash è un algoritmo che trasforma una linea di testo in una serie di lettere e numeri. Il termine “hash” deriva dall’inglese e significa letteralmente “tritare, macinare”. Infatti, la funzione prende una linea di testo (input) e la “trita”, facendola diventare una serie di caratteri (hash sum).

(Fonte: Wikipedia) 

L’hash crittografico è un tipo di hash che soddisfa una serie di caratteristiche che consentono di usarlo come identificativo e certificato di integrità dell’insieme dei dati che sono serviti per il suo calcolo. Per essere considerato un hash crittografico deve avere le seguenti caratteristiche: 

  • è determinante, nel senso che lo stesso messaggio si traduce sempre nello stesso hash 

  • è veloce nel calcolare il valore dell'hash per qualsiasi messaggio  

  • non è possibile generare un messaggio che produca un dato valore di hash, cioè invertire il processo che ha generato il dato valore di hash (unidirezionalità). Ciò implica che l’hash può essere facilmente condiviso con terzi senza esporre i contenuti originali. 

  • non è possibile trovare due messaggi diversi con lo stesso valore di hash (concetto chiamato resistenza alle collisioni) 

  • una piccola modifica ad un messaggio cambierà il valore dell'hash in maniera così radicale che il nuovo valore dell'hash apparirà non correlato con il vecchio valore dell'hash (chiamato effetto valanga)  

Fonte

Infine, gli hash crittografici sono riconosciuti legalmente se soddisfano tre caratteristiche principali: 

  1. garantiscono i criteri di unicità (non sono presenti collisioni); 

  1. garantiscono l’unidirezionalità dei dati; 

  1. sono difficilmente attaccabili 

Concatenazione degli hash crittografici 

Nel blockchain ogni blocco di dati ha un hash crittografico che è calcolato sulla base dei contenuti dei dati del blocco e l’hash del blocco precedente. In questo modo si crea una catena crittografica. L’hash del blocco diventa anche il certificato di tutta la collezione dei dati dall’inizio fina all’ultimo blocco. 

In Banana Contabilità ogni registrazione equivale ad un blocco che viene rappresentato dall’hash crittografico. Dalla seconda registrazione, ai dati del blocco vengono aggiunti i dati del blocco precedente, dando origine ad un nuovo hash che tiene conto di tutti gli hash precedenti. 

L’immagine seguente mostra la concatenazione dei blocchi nel giornale contabile in Banana. Ogni blocco ha un numero di sequenza che serve a garantire la progressività dei dati. 

giornale in Banana Contabilità

Modifica del contenuto 

Il concatenamento degli hash implica che se i contenuti sono gli stessi gli hash rimarranno gli stessi. Se invece i contenuti o la sequenza cambia, gli hash saranno diversi.  

Le due immagini seguenti mostrano cosa succede nel caso viene modificato il valore di un singolo importo in Banana Contabilità. Nel registro modificato viene indicato l’importo 40 CHF invece di 30 CHF indicato nella seconda riga del registro originale. Cambiando i dati, cambiano anche i gli hash crittografici dal numero di riga che è stato modificato (in questo caso la seconda). L’hash sarà dunque completamente diverso poiché è stata modificata la sua funzione in modo significativo. 

cryptographic hash

blockchain

Giornale certificato  

Per la contabilità, diverse normative richiede che i dati siano registrati e numberati in modo progressivo. Nella contabilità, il giornale costituisce la raccolta di tutti i movimenti economici. Ogni movimento contiene tutti gli elementi necessari per la tenuta della contabilità: data, riferimento al giustificativo, descrizione, Conto Dare, Conto Avere, importo ecc... 
Banana Contabilità, al momento del blocco, assegna alle registrazioi un numero progressivo.

Per ogni movimento viene quindi calcolato un hash crittografico che garantisce l’integrità di ogni transazione e dell’intero giornale fino a quel punto. Di conseguenza, il giornale contabile è certificato. 

Le fasi della creazione del blockchain  

Le fasi della creazione del blockchain possono essere riassunte nel modo seguente: 

  1. Raccolta e creazione dei blocchi di dati.  

  1. Verifica dei dati. 

  1. Fissazione delle sequenze dei dati. 

  1. Calcolo degli hash crittografici. 

Le modalità di creazione di una struttura dati blockchain può variare a seconda dell’applicativo.  

Nel caso di Banana Contabilità la sequenza è la seguente: 

  1. Il contabile inserisce o importa i dati nella tabella Registrazioni e inserisce per ogni movimento tutte le informazioni necessarie.  

  1. Il responsabile dei dati verifica che i dati siano corretti da un punto di vista materiale (i dati corrispondono all’effettiva operazione) e formale (i conti dare e vare sono indicati in modo corretto.  
    La verifica dei dati può avvenire in più momenti. Per esempio, alla fine del periodo i movimenti bancari e il saldo sono confrontati con quelli dell’estratto bancario. Se ci sono differenze dovranno essere completati fintanto che i valori della contabilità non rispecchino la realtà.  

  1. L’utente impartisce il Comando Blocca righe di Registrazione specificando fino a quale data i movimenti devono essere bloccati (Generalmente si includono i dati controllati).  
    Quando si impartisce questo comando il programma esegue le seguenti operazioni: 

  • verifica se i movimenti da bloccare non contengono degli errori; 

  • verifica che la sequenza degli hash crittografici precedenti sia corretta; 

  • attribuisce un numero di sequenza progressiva a ogni movimento, partendo dall’ultimo numero di sequenza precedente;  

  • calcola gli hash crittografici di ogni movimento concatenandoli con quello della riga precedente.  

  • presenta un riassunto dell’operazione di blocco. 

Dimostrazione dell’integrità dei dati  

Per potere verificare l’integrità di un giornale di Banana Contabilità:  

  1. Si impartisce il comando di verifica al fine di ricalcolare l’hash crittografico di tutti i movimenti.  

  1. Si verifica che l’hash crittografico dell’ultima riga sia uguale a quello che si è memorizzato. 

Per potere verificare a posteriori l’integrità dei dati è quindi necessario conservare l’hash crittografico che è risultato al momento del blocco. La modalità di memorizzazione e custodia dell’hash crittografico a scopo di verifica dipende dalla propria organizzazione. Se non si conserva l’hash non sarà possibile accertarsi dell’integrità dei dati. 

Caratteristiche delle collezioni di dati blockchain  

  • Le collezioni di dati sono strutturate in blocchi e sono immutabili. 

  • Contenuti diversi producono hash diversi. Qualsiasi modifica ai contenuti della collezione, porterà a degli hash diversi.  

  • Contenuti identici producono hash identici. Confrontando l’hash dell’ultimo blocco di due collezioni di dati è possibile sapere se i contenuti e la loro sequenza sono uguali.   

  • Verifica integrità. Ripercorrendo la sequenza dei blocchi è possibile ricalcolare gli hash di tutti i blocchi e quindi verificare che i contenuti della collezione non sono cambiati.  

  • Sequenza blocchi. I blocchi devono contenere un elemento in grado di definirne la sequenza. Generalmente è un numero progressivo o un riferimento all’identificativo del blocco precedente.   

  • Aggiunta di blocchi. Quando si aggiunge il blocco viene calcolato l’hash del blocco, sulla base del suo contenuto e dell’hash del blocco precedente. L’hash del nuovo blocco diventa quindi l’hash che certifica anche l’intero insieme dei dati. Gli hash dei blocchi precedenti rimangono validi.   

  • Basi dati distribuite. Tramite il semplice scambio degli hash è possibile verificare che delle collezioni di dati in posti diversi abbiano lo stesso contenuto.   

Custodia dei Utilizzo del blockchain in contabilità

Il blockchain è uno strumento utilissimo alla gestione di raccolte di dati, come quelle della contabilità. La tecnologia deve però essere supportata da un’organizzazione dei sigilli originali adeguata. Il focus non deve essere qui sulla tecnologia, ma sulle questioni pratiche.

Quale sia il tipo di impiego, l’organizzazione deve essere adeguata alla struttura, dimensioni e persone coinvolte nell’impresa. L’approccio in una banca sarà diverso da quello di una piccola impresa.

Nelle piccole imprese per garantire l’autenticità dei dati contabili è sufficiente che l’operatore, periodicamente, dopo avere controllato la contabilità, la blocchi e prenda nota dei sigilli digitali dell’ultima operazione.

Per custodire i sigilli sono necessari semplici accorgimenti:

  • Il contabile stampa o invia per email a altri l'hash dell’ultimo.
  • Il revisore annota nei suoi atti l'hahs relativo ai dati che ha verificato.
  • Un’organizzazione che ha più contabilità distribuite, quando consolida i dati prende nota dell'hahs.

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 degli hash, 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 gli hash. Bisogna evitare che gli hash possano essere manipolati e che quindi delle persone possano modificare i dati e nel contempo anche gli hash.

Se i movimenti sono muniti di hash, 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 l'hash 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.

 

Condividi questo articolo: Twitter | Facebook | LinkedIn | Email