Le blockchain pour les comptables, les avocats et les programmeurs

Dans cet article

Introduction

Banana Comptabilité a introduit le Blockchain en 2002. Il a été le premier logiciel commercial au monde à utiliser cette technologie avant qu'elle ne porte ce nom. Le blockchain a une fonction importante car elle protège les données contre les modifications et garantit que le logiciel répond aux exigences légales en matière de conservation des données comptables. L'introduction du blockchain a porté la protection et la sécurité des données à un niveau beaucoup plus élevé que les technologies précédentes. C'est ce que démontre le Bitcoin, avec un journal disponible en ligne, qui est considéré comme plus sûr que les données stockées dans des systèmes informatiques coûteux et super-protégés en raison du blockchain. Aujourd'hui, il est clair que le blockchain deviendra un élément central du monde numérique et sera utilisée dans tous les contextes où il est essentiel de garantir l'intégrité des valeurs et des informations numériques.

Le blockchain suscite beaucoup d'intérêt, mais le sujet est assez difficile : pour plusieurs raisons, il est difficile de comprendre ce que c'est exactement et comment l'utiliser, tout d'abord le fait qu'il existe plusieurs définitions et toutes assez larges. Le terme est utilisé pour désigner un ensemble de technologies, différentes les unes des autres et ayant des objectifs très différents. Un autre obstacle est culturel, car le point du blockchain n'est pas le monde actuel du "papier", mais celui de l'avenir, complètement numérique. Un changement de perspective est nécessaire, ce qui implique toutefois une connaissance des différents aspects et une immersion dans les utilisations possibles du blockchain.

Dans ce document, je propose une définition plus précise du blockchain. Je tiens à préciser que l'essence du blockchain et son aspect révolutionnaire est qu'il permet de s'appuyer sur le contenu numérique, quel que soit l'endroit où se trouvent les données. Des informations précieuses, telles que la propriété de Bitcoins, les actions d'une société ou d'une maison, peuvent être conservées, non seulement sur papier, mais aussi sous forme électronique.

Le blockchain est l'un des éléments de base de la transformation numérique, une technologie dont l'efficacité dépend de la manière dont elle est utilisée. Je vais donc aussi essayer d'énumérer ses différents aspects techniques, juridiques, organisationnels et comptables. Ces éléments fournissent une vue d'ensemble, qui permet également de mieux comprendre les différents aspects. L'apprentissage du blockchain est un processus qui nécessite plusieurs itérations. Il est donc conseillé de procéder à une première lecture, visant à se faire une idée de l'ensemble, et à une lecture ultérieure pour mieux comprendre les différents éléments.

La naissance du blockchain

Je vais tout d'abord expliquer la naissance du blockchain de Banana Comptabilité. Connaître le contexte, la motivation et le but pour lequel il a été développé vous aidera à comprendre comment il fonctionne et pourquoi le blockchain deviendra un élément central du monde numérique.

Le blockchain est intégrée dans Banana Comptabilité depuis 2002. Banana Comptabilité est une application comptable basée sur des feuilles de calcul prêtes à l'emploi, déjà configurées et programmées pour la comptabilité et très simple à utiliser.

Banana Comptabilité est devenu le logiciel de comptabilité préféré en Suisse pour les petites entreprises, les associations et les particuliers. Il est entièrement personnalisable et peut être utilisé dans plus de 120 pays. Banana est également très populaire dans l'enseignement de la comptabilité : vous pouvez facilement pratiquer la comptabilité, établir le plan comptable et saisir des écritures.

La caractéristique principale de Banana Comptabilité est la facilité d'utilisation, en raison de la possibilité typique des feuilles de calcul de se déplacer librement, de modifier, d'effacer, de copier et de coller des données.

Cependant, la possibilité de modifier les écritures est en contraste avec les exigences comptables qui ne nécessitent pas de modification des données. Le blockchain est le système qui a permis à Banana Comptabilité d'évoluer pour se conformer aux réglementations.

En Suisse, jusqu'en 2002, les dispositions légales exigeaient que la comptabilité soit tenue sur papier ou sur microfilm. Celui qui tenait les comptes avec un ordinateur devait tout imprimer ; surtout pour les grandes organisations, ce système n'était plus adapté. À la fin des années 1990, le gouvernement suisse avait préparé et consulté une nouvelle réglementation qui devait permettre de tenir une comptabilité sous forme numérique, mais il avait également prescrit toute une série d'exigences. Les programmes de comptabilité ont dû être adaptés et le gouvernement a accordé un délai considérable, jusqu'en mai 2002, pour permettre aux entreprises d'adapter leurs systèmes informatiques.

Cela faisait déjà vingt ans que je développait des logiciels à des fins professionnelles. Dix ans plus tôt, j'avais créé la première version de Banana Comptabilité et depuis lors, mon activité principale est la programmation. Cependant, j'avais une formation de comptable et un diplôme en droit. Le changement de loi m'a beaucoup intéressé et m'a incité à trouver une solution sûre, étant conscient de la transformation numérique, valable pour différents pays, qui ne perde pas l'immédiateté de l'utilisation et ne rende pas plus difficile la tenue des comptes. Comme Excel, Banana Comptabilité ne fonctionnait pas sur des bases de données protégées, de sorte que l'approche utilisée par d'autres logiciels n'était pas assez sûre. Cependant, les systèmes de certification des documents, basés sur des fichiers "hash" (voir explication dans le chapitre spécifique), n'étaient pas non plus applicables car le journal comptable continueait de se développer. Certains pays ont également prévu la numérotation progressive des écritures de journal et le maintien d'un équilibre progressif. J'ai commencé à travailler sur des solutions possibles, mais trouver un moyen de répondre à tous les besoins et qui soit intuitivement compréhensible pour les comptables n'a pas été facile. Il a fallu plusieurs années et une multiplicité d'itérations avant que l'idée de certifier chaque mouvement avec un hach et de prendre en compte ce hach dans le calcul du hach de la prochaine écriture ne se concrétise. Avec ce système, chaque opération était liée de manière crypto-graphique à la précédente. Le hach d'une écriture était aussi le hach de tout le journal depuis le début jusqu'à l'opération elle-même. Cette approche m'a semblé garantir une protection maximale des données et répondre aux exigences légales. C'était cependant mon opinion et il fallait voir si les spécialistes seraient également d'accord. J'ai pris contact avec des spécialistes d'un grand cabinet d'audit et, en tant que société, nous les avons chargés de vérifier si ce nouveau système était conforme à la réglementation. Il était nécessaire de bien documenter l'ensemble du concept et du fonctionnement (voir le document interne de 2001/2002), mais à la fin de 2002, le système a été certifié conforme aux réglementations relatives à l'archivage des données comptables en Suisse et en Allemagne. Le 21 mars 2002, nous avons déposé une demande de brevet aux États-Unis (US Patent No. 7.020.640) sous le titre "Method for certifying data containing a sequence of transactions". Quelques mois plus tard, en juin 2002, à temps pour l'entrée en vigueur des nouvelles règles, nous avons présenté une mise à jour de Banana Comptabilité qui contenait les fonctionnalités du Blockchain.

Le système fonctionnait très bien et répondait aux exigences légales, mais je me suis vite rendu compte qu'il n'était pas compris et était même parfois considéré avec suspicion par les auditeurs et les comptables. Les fonctions de cryptographie et de hachage étaient totalement inconnues en dehors du cercle des spécialistes de l'informatique. Les logiciels de comptabilité ont continué à utiliser des mots de passe pour protéger les données. Il n'était pas nécessaire d'améliorer ces systèmes, notamment parce que la plupart des données comptables se trouvaient sur des serveurs considérés comme suffisamment protégés.  

C'est l'introduction de Bitcoin qui a fait prendre conscience au monde entier de la technologie des chaînes de blocs (blockchain) et a inspiré son nom. Pour beaucoup, ce fut une illumination. Grâce au blockchain, les opérations enregistrées dans le journal Bitcoin, librement disponible sur le réseau, étaient considérées comme plus sûres que les journaux de comptabilité des banques, stockés dans des environnements séparés et protégés par une multitude de systèmes de sécurité. Cette innovation a permis à de nombreuses personnes de réaliser qu'elles étaient confrontées à quelque chose de très puissant. Le blockchain est désormais considéré comme si sûre que Bitcoin est devenu un système de paiement régulier et aussi un moyen d'investissement intéressant.

Le Blockchain a ainsi attiré l'attention du monde entier et a stimulé une myriade de nouvelles idées, d'applications possibles et même d'investissements.

La définition du Blockchain

Pour comprendre le blockchain il faut savoir ce qu'il est et ce qu'il fait. Il existe actuellement des définitions très larges ; je propose ci-dessous une définition plus ciblée, axée sur l'aspect central du blockchain : garantir l'intégrité des données.

"Le blockchain est un système de certification visant à garantir l'intégrité des collections de données croissantes".

Cette définition souligne les aspects fonctionnels et juridiques du blockchain, de "certification de l'intégrité des données". Le blockchain est un système qui utilise la technologie de hachage numérique pour vérifier que les informations contenues dans la collection n'ont pas changé. Chaque bloc de données de la collection est doté de son propre numéro hash ; ce numéro hash est également le certificat de l'ensemble de la collection de données, du début à ce point. Les numéreos hash du blockchain de contrôle permettent de vérifier l'intégrité des données dans la collection ou une partie de celle-ci. Vous pouvez être certain de l'authenticité du contenu, quel que soit l'endroit où se trouve la collection.

L'autre caractéristique importante de la technologie des chaînes de blocs est qu'elle s'applique aux "données croissantes". Le blockchain vous permet d'ajouter des articles à la collection sans invalider les numéros hash précédents. Les collections de données peuvent s'accroître. Dans les collections de données, les informations importantes peuvent être conservées avec l'assurance que le contenu reste intact même si de nouvelles informations sont ajoutées.

L'avantage de cette technologie est que vous pouvez vous fier à l'information numérique, quel que soit l'endroit où elle se trouve. Les collections de données peuvent être transmises, stockées sur différents ordinateurs, avec la certitude que les données sont intactes. Les collections de données avec le blockchain peuvent contenir des informations importantes qui attestent la propriét de bitcoins ou la propriété d'un logement, avec la certitude que les données ne peuvent pas être manipulées ou falsifiées.

Le blockchain est aussi indirectement un système de protection des données, car il vous donne la possibilité de comprendre facilement s'il y a eu des changements. Des contrôles réguliers peuvent être mis en place pour décourager et rendre totalement inutiles les tentatives de modification des données.

Il existe actuellement plusieurs définitions du blockchain, qui le décrivent comme une structure de données formée par des blocs liés de manière crypto-graphique : celle utilisée dans la page anglaise de Wikipedia est la suivante : "Une blockchain, à l'origine chaîne de blocs, est une liste croissante d'écritures, appelés blocs, qui sont liés à l'aide de la cryptographie".  D'autres définitions font référence à la nature distribuée du journal, comme celle d'Investopedia : "Une chaîne de blocs est un grand livre public numérisé et décentralisé de toutes les transactions cryptocurrentielles."

Ces définitions, axées sur la structure des données, sont abandonnées au profit de la définition donnée précédemment, axée sur la fonction de garantie de l'intégrité des données. Définir la chaîne de block non plus seulement en termes informatiques, mais aussi en termes juridiques, est une étape indispensable pour comprendre la valeur de cette technologie et est également une condition préalable à l'utilisation efficace du blockchain.

Origine du terme blockchain

Le terme blockchain provient de la description de la structure des données du journal Bitcoin faite par l'inventeur de Bitcoin, connu sous le nom de Satoshi Nakamoto. Dans le document d'octobre 2008 sur Bitcoin, le journal des mouvements était décrit comme un ensemble de blocs d'écritures (blocs) enchaînés entre eux de manière cryptographique. L'image ci-dessous est la description graphique de la chaîne de blocs.

 

 

Chaque bloc possède un identifiant qui est le hash (sceau numérique) calculé sur le contenu du bloc. Dans le contenu, il y a également l'identifiant du bloc précédent. Les blocs sont donc concaténés les uns avec les autres, de sorte que le hachage d'un bloc dépend du contenu du bloc précédent, qui dépend à son tour du précédent et ainsi de suite depuis le début. Le hachage d'un bloc est donc aussi le hachage de l'ensemble de la collection de données et certifie l'intégrité de l'ensemble de la collection. Si un contenu quelconque d'un bloc change, il change son hachage. La référence dans le bloc suivant n'est plus valable et la chaîne se brise. Si la chaîne est correcte, cela signifie que le contenu est intact.

Le blockchain suppose qu'il existe une certaine séquence de données. Dans le Bitcoin, la séquence est garantie par la sauvegarde de l'identifiant du bloc précédent dans le bloc suivant. Pour reconstruire la structure des données et vérifier l'exactitude, commencez par le dernier bloc. Il existe d'autres moyens de garantir la séquence. Dans le journal comptable, comme dans Banana Comptabilité, chaque mouvement possède son propre numéro progressif. Vous parcourez la collection à partir de la première écriture. Dans Banana Comptabilité, le numéro hash d'une transaction est également calculé en tenant compte du numéro hash de la ligne précédente. Le résultat est le même, puisqu'une chaîne cryptographique est créée. Dans le cas de Banana Comptabilité, l'identifiant du bloc de données est le numéro de ligne, le numéro hash a la fonction de certification. Cette structure de tableaux de données, typique des journaux comptables, où chaque écriture possède son propre numéro hash, est plus facile à comprendre et à utiliser.

 

 

Le blockchain et la transformation numérique

Depuis des millénaires, des supports matériels tels que tiges, tablettes, métaux, papyrus, parchemins et papier sont utilisés pour écrire. Lorsqu'on écrit sur du papier, le contenu est physiquement imprimé sur le support et en fait partie intégrante. La modification du contenu implique également le changement de support. Pour rendre la falsification plus difficile, on utilise des signatures, des sceaux ou d'autres dispositifs qui rendent le document unique. Les personnes confirment leur acceptation d'un contrat en apposant leur signature sur la feuille sur laquelle il a été écrit. Afin de garantir que le contenu ne soit pas perdu ou altéré, le document doit être protégé. Il est d'usage, lors de la signature d'un contrat, que chacun en reçoive une copie. Toutefois, la signature d'un contrat confirme également que les parties ont lu et accepté le contenu. Chacun doit ensuite conserver son document afin de pouvoir, en cas de litige, prouver la teneur des accords. Chaque entreprise ou particulier dispose d'une archive dans laquelle il conserve des copies des différents documents. Dans de nombreux cas, la conservation des documents est obligatoire et doit être organisée selon certaines règles. L'objectif est de garantir que les documents papier sont protégés contre la perte et l'altération ; la protection du document protège également son contenu.

Pendant des millénaires, la plupart des informations qui définissent la vie des gens ont été conservées de cette manière. L'accession à la propriété, la naissance, le mariage, l'adoption d'une loi, la décision de justice, le bail et l'achat d'une voiture sont incorporés dans les documents papier. Pour garantir l'intégrité de ces informations importantes, il faut tout d'abord que les documents soient conservés de manière à ce qu'ils ne soient pas altérés. Un exemple typique de document de valeur est un billet de banque. Toute personne, entreprise ou organisation possède des documents qu'elle conserve. Les systèmes d'archivage sont complétés par des lois qui prescrivent la conservation des contenus et les protègent contre la falsification. Sans ces contenus et la capacité de garantir leur intégrité et leur authenticité, le système économique et juridique s'effondrerait.

Avec l'avènement de l'informatique et de la numérisation, tout ce système est perturbé. Dans le monde numérique, les informations ne sont plus imprimées de manière permanente sur un support, mais sont stockées sous forme d'impulsions électroniques dans un appareil. L'avantage de ces systèmes est que les mêmes informations peuvent être reproduites à l'infini. Des milliards de personnes peuvent regarder le même film sur leur téléphone portable en même temps, car le contenu numérique est copié d'un ordinateur à l'autre ; le même contenu atteint alors les différents destinataires. L'autre grande différence est que le contenu textuel, audio ou vidéo est stocké sous une forme électronique illisible à l'œil nu ; des dispositifs électroniques sont nécessaires pour y accéder. Le concept de l'original disparaît également, car pour écrire, on tape sur des touches qui génèrent des impulsions et, après une série d'opérations complexes, on voit apparaître l'écriture sur un écran.

Avec la transformation numérique, les méthodes millénaires de sauvegarde et d'accès à l'information sont modifiées. Pour que notre système économique et juridique continue à tenir debout, il est nécessaire de disposer de systèmes de certification des données qui nous permettent de comprendre si les données sont intactes et originales. Le Blockchain nous permet de nous appuyer sur des documents électroniques de la même manière que nous nous appuyions sur des documents papier signés.

Tous les documents (certificat de mariage, jugement, contrat, billet de banque,...) sont essentiellement des exposés de faits ayant une pertinence juridique. Même dans le monde numérique, les gens continuent à se marier, à aller en justice, à conclure des contrats et à effectuer des paiements, et l'authenticité et l'intégrité des attestations de ces faits doivent continuer à être garanties. La certification des contenus numériques, tant sur le plan technique que juridique, est donc un pilier de notre société et de notre économie. Le blockchain, en tant qu'outil permettant de garantir l'authenticité et l'intégrité d'informations précieuses, jouera donc un rôle central dans la nouvelle ère numérique.

Les éléments distinctifs de la transformation numérique sont les suivants :

  • les informations sont stockées sous forme d'impulsions électriques. Le contenu n'est pas intégré dans un support, mais peut être supprimé et écrasé ;
  • l'information n'est pas directement accessible avec les sens humains. Nous avons besoin d'équipements qui lisent, interprètent et transforment l'information pour qu'elle soit accessible à nos sens (écrans, imprimantes, haut-parleurs) ;
  • le concept d'original disparaît : la copie ne se distingue plus de l'original.

Le tableau ci-dessous résume les principaux changements qui ont également des conséquences juridiques importantes.

Fonction

          Document papier

Document numérique       

Contenu

Incorporé dans le support

Détaché du support

Accès à l'information

Directement avec la lecture

Par un dispositif qui rend le contenu visible

Approbation du contenu

Signature

Signature numériqe

Certification du contenu

Référence aux personnes

Numéros hash

Authentification

Signatures et cachets sur le support

Détaché du support

Contrôle d'authenticité

Témoignages de personnes

Vérifications croisées

Collecte de documents

Archives, collections et documents papiers

Bases de données et systèmes de fichiers

Registres

Registres papier

Registres de chaînes de blocs

Stockage des documents

Méthodes organisationnelles acquises

Encore à organiser

Transmission du contenu original

Transmission physique du document

Copie des données

Titre au porteur (billet de banque)

Selon la loi, directement incorporé dans le document

Contrats intelligents

 

 

Hash et sceaux numériques

La certification des données est basée sur une technologie de calcul de hachage, dont le fonctionnement est assuré par plusieurs algorithmes. Les fonctions de calcul de hachage sont des programmes qui combinent le contenu d'un ensemble de données et obtiennent un petit texte, appelé hachage, ou somme de hachage, qui est une sorte d'empreinte digitale des données. La fonction de hachage peut être comparée à un processus de distillation dont le but est d'obtenir une petite goutte. La goutte obtenue, la somme de hachage, sera toujours exactement la même si les données de départ sont les mêmes et sera différente si elles changent.

 

 

Pour obtenir des informations plus détaillées, veuillez vous référer à la page de la fonction de hachage de Wikipédia. Les algorithmes de hachage sont des programmes développés par des experts en cryptographie, qui sont disponibles en open source. La plupart des programmeurs, comme moi, utilisent les fonctions de hachage sans comprendre les détails de l'implémentation, mais en étant sûrs qu'ils travaillent selon les spécifications.

Il existe plusieurs algorithmes ayant des caractéristiques et des objectifs différents. Ceux qui sont généralement utilisés sont relativement peu nombreux. Banana Comptabilité et Bitcoin utilisent l'algorithme de hachage SHA-256, qui produit un hachage de 256 bits. Vous commencez avec n'importe quel contenu et vous obtenez toujours une valeur de longueur de 256, qui est ensuite convertie en texte pour être lisible. Ici, vous voyez le hachage calculé sur un seul caractère.

Dati

Sigillo / Hash SHA-256 in esadecimale

“1”

6B86B273FF34FCE19D6B804EFF5A3F5747ADA4EAA22F1D49C01E52DDB7875B4B

“2”

D4735E3A265E16EEE03F59718B9B5D03019C07D8B6C51F90DA3A666EEC13AB35

 

Des algorithmes de hachage très particuliers doivent être utilisés pour la certification des données. Ces hashs sont appelés "sceaux numériques" ou "numéros hashs" car ils présentent des caractéristiques très spécifiques :

  • Ils doivent être capables de traiter une séquence de données de n'importe quelle longueur ;
  • Ils doivent produire une donnée de synthèse de longueur fixe, généralement 256, 512 ou 1024 bits ;
  • En partant du même contenu, vous obtenez toujours le même numéro hash ; un contenu différent produit un numéro hash différent ;
  • À partir du hachage, il devrait être techniquement impossible de reconstruire le contenu des données originales (unidirectionnalité) ;
  • il devrait être techniquement impossible de trouver des contenus différents produisant le même numéro hash (résistance aux collisions) ;
  • La séquence de caractères générée est imprévisible et ne peut être associée aux données sources ;
    La moindre modification du contenu produit un sceau sensiblement différent.

La caractéristique des numéros hashs utilisés comme sceaux numériques est de pouvoir identifier de manière unique l'ensemble des données utilisées pour son calcul. Cela signifie que le sceau est également le "numéro de plaque" spécifique à la séquence de données et sans qu'il soit possible qu'il y ait une séquence de données différente avec le même numéro de plaque. Si les données sont identiques, vous aurez toujours le même numéro hash, si elles sont différentes, lenuméro hash sera différent. Les numéros hash sont donc des certificats d'authenticité des données.

Pour vérifier la validité des sceaux, le numéro hash est calculé à nouveau à partir des mêmes données avec le même algorithme et le résultat est comparé au numéro hash original. Si les scellés sont identiques, le contenu est le même ; si les scellés sont différents, le contenu est différent. Si vous envoyez un document à quelqu'un, grâce au numéro hash, vous pourrez vérifier que le contenu reçu est le même que celui envoyé. Le numéro hash ne contient qu'une très petite quantité de données, il est donc facile à stocker et à envoyer. En outre, le numéro hash ne permet pas de reconstituer l'origine des données. Lenuméro hash peut être transmis à des tiers sans qu'ils ne puissent prendre connaissance de son contenu. Les numéros hash  sont donc très efficaces pour certifier les données ; en fait, ils peuvent être stockés et échangés facilement et sans même avoir à en afficher le contenu.

La caractéristique importante est qu'une personne mal intentionnée ne peut pas être en mesure de créer une séquence de données différente qui produise le même numéro hash.

Le snuméro hash présente les caractéristiques suivantes

  • Il s'agit d'une très petite quantité de données, il est donc facile à le stocker et l'envoyer ;
  • Il ne permet pas de reconstituer l'origine des données (unidirectionnalité) ;
  • Il peut être recalculé avec le même algorithme à partir des données d'origine ;
  • Il peut être facilement échangé et envoyé à des tiers sans exposer le contenu original.

Pour vérifier sa validité, le sceau est calculé à nouveau à partir des mêmes données et en utilisant le même algorithme. Le numéro hash obtenu doit donc correspondre au numéro hash original.

Grâce au nouveau calcul des numéros, il peut alors être certifié que :

  • le contenu est le même si les numéros hash correspondent ;
  • le contenu est différent si les numéros hash sont différents.
  • Si lenuméro hash correspond, celui qui reçoit un document peut être sûr que le document reçu est le même que celui envoyé.

Mais il faut ici entrer dans un sujet très technique, pas compréhensible dans l'immédiat. La fiabilité du numéro hash dépend de l'impossibilité de générer un hachage égal à partir de données différentes. L'ensemble des données de départ est plus important que celui du numéro hash, il existe donc certainement des combinaisons de données qui peuvent produire le même numéro, ce que l'on appelle en termes techniques des collisions. Il n'est jamais certain qu'un algorithme garantisse l'intégrité des données. Lorsque nous parlons de l'impossibilité de trouver les collisions, cela signifie en fait que l'algorithme utilisé doit rendre pratiquement impossible de les trouver, car l'opération nécessite des centaines d'années de calculs par un ordinateur super puissant. La technique progresse et les vieux hashs pourraient être vulnérables. Des méthodes qui étaient considérées comme sûres il y a dix ans ne le sont plus aujourd'hui. La réglementation suisse exige l'utilisation de systèmes techniquement fiables. Les algorithmes de création de collisions sont considérés comme faibles et ne conviennent pas à la création de sceaux numériques légalement valables.

La signature numérique est également basée sur la technique des sceaux numériques. Pour calculer la signature numérique, un sceau numérique du contenu est d'abord calculé ; celui-ci est ensuite combiné avec une clé privée. La signature numérique est alors un sceau numérique, lié au contenu, qui est aussi l'expression de la personne détentrice de la clé privée.

La signature numérique est également basée sur la technique des numéros hash. Afin de calculer la signature numérique, un sceau hash du contenu est d'abord calculé ; celui-ci est ensuite combiné avec une clé privée. La signature numérique est alors un numéro hash, lié au contenu, qui est en outre l'expression de la personne détentrice de la clé privée.

De simples numéros hash et signatures numériques sont utilisés pour certifier le contenu d'un fichier qui reste le même. Ils ne sont pas adaptés aux collectes de données dont le contenu doit être modifié, par exemple lorsque de nouvelles écritures comptables sont ajoutées. Dans ces cas, il faut utiliser la blockchain un numéro hash progressif.

 

Blockchain - numéros hashs pour les collections de données

La chaîne de blocs est un sceau progressif, calculé sur le bloc de données actuel et le numéro hash du bloc précédent. Le blockchain vous permet donc de certifier le contenu de collections de données croissantes. Cette technique peut être appliquée à toute collecte de données, et la mise en œuvre change selon le type de structure des données. Les paragraphes suivants expliquent comment il fonctionne pour les structures de données tabulaires et celles du Journal Bitcoin.

La blockchain dans une structure de données de tableau

Dans Banana Comptabilité, des numéros hashs sont appliqués aux lignes d'enregistrement. Chaque mouvement est considéré comme un bloc de données. Le numéro hash de chaque ligne est calculé en incluant le numéro hash de la ligne précédente. Chaque numéro hash devient donc également le numéro hash de l'ensemble de la collecte de données jusqu'à ce point. De nouvelles écritures peuvent être ajoutées sans invalider le numéros hashs précédent.

 

 

La première partie de l'image "Registre original" montre le tableau original avec trois lignes d'écritures. Le numéro hash progressif (blockchain), indiqué dans la colonne LockProgr, est calculé comme suit :

  • le sceau numérique (numéro hash) de la première ligne est calculé en tenant compte des données de l'écriture ;
  • à partir de la deuxième écriture, le numéro hash est calculé en incluant le numéro hash de l'écriture précédente ;

Le numéro hash de chaque ligne est également le numéro hash de l'ensemble de la collection de lignes jusqu'à ce point. Si des lignes sont ajoutées, les numéros hashs précédents restent intacts.

 

 

Dans la partie de l'image indiquée comme "Registre modifié", vous pouvez voir ce qui se passe lorsque vous modifiez le contenu d'une écriture :

  • à la ligne 2, le montant est de 40,00 au lieu de 30,00
  • les numéros hashs de la ligne 2 et des lignes suivantes sont différents.

Dans Banana Comptabilité, la structure des données existe indépendamment de la blockchain et des numéros hashs peuvent être ajoutés et retirés sans endommager la structure des données.

 

 

La blockchain dans bitcoin

Dans le système Bitcoin, les ordres de transfert sont recueillis auprès des mineurs, regroupés et ajoutés en blocs au journal à un rythme moyen de dix minutes. Chaque bloc possède un identifiant qui est le numéro hash calculé sur le contenu du bloc, à l'intérieur duquel se trouve également l'identifiant du bloc précédent. Le numéro hash du bloc est également calculé sur le numéro hash précédent, il devient donc un numéro hash progressif, qui sert à vérifier l'intégrité de toutes les données depuis le début jusqu'au bloc lui-même inclus.

Vous trouverez ci-dessous un schéma très synthétique de la structure du Journal Bitcoin.

 

 

Les blocs forment une chaîne cryptographique, qui ne sera valable que si les contenus sont identiques. Si un bloc est modifié, le numéro hash sera différent. Le bloc suivant sera déconnecté du précédent et la chaîne cryptographique sera rompue. L'existence de la chaîne est la preuve que les données sont intactes.

Dans le système Bitcoin, le numéro hash est calculé lorsque le bloc de données est composé, de sorte que la blockchain fait partie de la structure des données. Si le contenu change, l'identificateur de bloc et tous les identificateurs de bloc suivants changent également. Dans le journal Bitcoin, la blockchain ne peut pas être supprimée, car le bloc perdrait son identifiant et la séquence serait également perdue. Dans Bitcoin, la séquence des blocs est reconstruite en partant du dernier, en passant par le précédent, puis par le précédent, jusqu'à revenir au premier bloc. Ce système n'est pas très convivial pour les gens, donc chaque bloc est également identifié avec le numéro de bloc progressif, en commençant par le premier qui est indiqué par un zéro. Dans le système Bitcoin, le numéro de séquence est appelé hauteur.

Le système Bitcoin exige que les sceaux de bloc commencent par un certain nombre de zéros. Lors du calcul d'un numéro hash, il est très rare que de nombreux zéros non significatifs apparaissent. Pour obtenir le numéro hash avec le nombre de zéros souhaité, vous devez ensuite ajouter un nombre (nonce) au contenu, qui, combiné aux autres données, donnera le numéro hash avec le nombre requis de zéros initiaux. Comme vous ne pouvez pas construire le contenu à partir du numéro hash, vous devez calculer le numéro hash. Vous calculez le numéro hash avec le nonce à zéro, puis vous répétez l'opération en augmentant le nonce de un, jusqu'à ce que vous trouviez le sceau avec le nombre de zéros requis. Il faut des milliards et des milliards de tentatives et des ordinateurs très puissants pour calculer le numéro hash avec le nombre de zéros requis en peu de temps.

Bitcoin est un système ouvert où chacun peut envoyer des ordres de transfert (transactions).  Il y a des transactions légitimes, mais évidemment aussi des tentatives de dépenser l'argent plusieurs fois. Les mineurs (miners, en anglais) ont pour tâche de vérifier les transactions, ils agissent donc comme des notaires. Ce sont eux qui préparent les blocs de transactions à ajouter au journal. Ils collectent les ordres de transfert (transactions) et vérifient qu'ils sont corrects, que la signature numérique est valide et qu'ils disposent effectivement des fonds. Ils rassemblent les transactions vérifiées en un bloc et y ajoutent une opération par laquelle le mineur s'attribue la compensation attendue. Ils doivent ensuite compléter le bloc en calculant le numéro hash avec le nombre de zéros requis. Le mineur/notaire le plus rapide sera celui qui aura le plus de chances de voir son bloc ajouté au journal Bitcoin et de devenir le détenteur de la compensation. Le calcul des numéros hash est donc un système qui met les mineurs/notaires en concurrence pour travailler bien et honnêtement. Ils doivent calculer le numéro hash très rapidement. Seuls ceux qui ont de grandes compétences en matière de travail/calcul (preuve de travail) peuvent concourir. 

Le système a tendance à faire en sorte qu'il faille en moyenne 10 minutes pour compléter un bloc. Si en deux semaines la moyenne baisse, le logiciel de gestion Bitcoin rend le travail encore plus difficile en augmentant le nombre de zéros initiaux requis. Les numéros hashs sur les premiers blocs du journal Bitcoin avaient 8 zéros initiaux, maintenant ils en demandent 18. Des capacités de calcul considérables sont nécessaires, ce qui exige d'énormes investissements en ordinateurs et en énergie. Les mineurs/notaires sont encouragés à bien travailler, car s'ils font des erreurs ou trichent, leur bloc sera jeté et tout le travail effectué aura été inutile.

Une fois le nonce attribué, le calcul du hachage du bloc se fait alors de manière normale et rapide. La vérification de l'intégrité des données est également simple car il suffit de recalculer le hachage des différents blocs. Le fait que le sceau doit commencer par un certain nombre de zéros nécessite un très grand nombre de tentatives de calcul. Cette particularité du numéro hash commençant par des zéros rend la procédure de création du numéro hash plus complexe et plus difficile à comprendre. Le système de calcul utilisé dans Banana Comptabilité est plus linéaire et son fonctionnement plus compréhensible.

Malgré ces différences de calcul, la blockchain Bitcoin et Banana Comptabilité ont toujours le même objectif, à savoir disposer d'une séquence de données, certifiée par les numéros hashs et dont l'intégrité peut donc être vérifiée.

Vérification de l'intégrité et de l'authenticité dans la chaîne de production

Lors de la création de la blockchain, des numéros hashs progressifs sont appliqués à la collecte des données. Les numéros hashs originaux sont comparés aux numéros hashs calculés pour vérifier l'intégrité et l'authenticité. Le problème est de savoir si les numéros hashs s sont vraiment les originaux. Si le détenteur des numéros hashs est également le détenteur des données, il peut modifier le contenu, recalculer les numéros hashs et remplacer les originaux. Il n'y aura donc aucun moyen de savoir si les données ont été modifiées. La vérification de l'authenticité est donc une question d'organisation. Le terme "authenticité" vient du mot grec authenteo, qui signifie "avoir de l'autorité". L'étymologie indique clairement que la personne qui a le contrôle des numéros hashs originaux est celle qui est en mesure de déterminer si les données sont authentiques ou non. L'avantage de la blockchain est qu'avec un seul numéro hash, vous pouvez vérifier l'authenticité d'une collection qui peut contenir un nombre innombrable de blocs. L'extrême simplicité avec laquelle il est possible de vérifier qu'une structure de données est intacte a été exploitée par Bitcoin afin de rendre tous les nœuds du réseau Bitcoin gardiens de l'authenticité des données elles-mêmes. Le protocole Bitcoin permet aux différents nœuds du réseau d'échanger des numéros hashs et donc de vérifier facilement et rapidement l'authenticité des contenus avec une variété de sujets. Sans la blockchain cette vérification aurait nécessité l'échange de données avec chaque interlocuteur et il serait donc peu pratique de tenir un journal distribué.

Ce fut certainement l'un des aspects les plus innovants du système Bitcoin. La décentralisation du journal sert également à garantir son authenticité. Le système Bitcoin est un réseau dense où chaque nœud est également le gardien et le garant de l'authenticité. Ceux qui veulent falsifier le journal doivent également pouvoir modifier le journal de la plupart des nœuds du système Bitcoin en même temps. Cette opération, aujourd'hui considérée comme impossible, garantit la sécurité des données distribuées. Le système Bitcoin est également utilisé comme un notaire numérique. Il suffit d'effectuer une transaction en entrant dans la description les informations que vous souhaitez conserver et elles seront stockées en toute sécurité.

Banana Comptabilité est un système de comptabilité à utilisateur unique. Chaque système comptable est indépendant et la tâche de garantir l'authenticité des données, dans un délai et d'une manière compatibles avec les réglementations nationales, est laissée à l'utilisateur lui-même. Banana prévoit la possibilité d'imprimer et d'exporter les données de certification afin qu'elles puissent être stockées de manière à prouver leur intégrité. La manière dont la preuve doit être présentée peut varier, certains Etats prévoient l'impression du journal, tandis que d'autres exigent que pour chaque opération soit imprimée une justification sommaire, d'où le choix de laisser un maximum de flexibilité et la possibilité d'adaptation.

Blockchain préserve des informations précieuses

Le blockchain est un système de certification qui permet de vérifier que les données n'ont pas été modifiées après coup. Le contexte d'utilisation est celui où l'on collecte des contenus de valeur qui doivent être stockés et rester inchangés ; il suppose une structure de données similaire à un journal d'événements, comme un journal comptable ou un journal des modifications de la base de données. Cependant, la chaîne de blocs peut être appliquée quelle que soit la technologie de stockage des données utilisée, elle peut donc certifier des structures séquentielles (log), une base de données relationnelle (SQL), une base de données de type document (Json) et une base de données distribuée ou centralisée.

Le système n'est pas conçu pour des informations statiques, ni pour des applications qui modifient directement les données, comme un carnet d'adresses où le programme remplace la valeur dans le dossier du client. Toutefois, il pourrait être appliqué au journal d'événements d'une base de données ou à une base de données No-SQL, où une nouvelle version du document est créée lorsqu'un changement se produit.

La définition de la blockchain comme système de certification ne présuppose pas une structure de données particulière. Dans Banana Comptabilité, les numéros hashs sont ajoutés comme information supplémentaire aux données existantes. Dans le journal Bitcoin, en revanche, le numéro hash devient partie intégrante de la structure des données et sert d'identifiant de bloc et de connexion avec le précédent. Du point de vue du processus, cependant, les deux demandes sont très similaires, car elles distinguent toutes deux une phase de collecte et de vérification des données et une phase de certification.

Chez Bitcoin, les mineurs qui préparent les blocs sont également chargés de vérifier l'authenticité des transactions, la disponibilité des fonds et la conformité formelle. Les transactions qui ne remplissent pas les conditions nécessaires sont rejetées. Dans le système Bitcoin, chaque mineur conserve deux collections distinctes, celle des commandes en cours et le journal Bitcoin avec les commandes exécutées. Seules les transactions correctes peuvent faire partie du journal. Si vous envoyez des Bitcoins au mauvais destinataire ou si quelqu'un vous vole vos identifiants, il n'y a aucun moyen de rétablir la situation.  Vous avez besoin d'un ordre de virement inverse de la part de la personne qui a reçu les fonds.

Dans Banana Comptabilité, le contrôle et la vérification sont à la charge du comptable, qui peut modifier les données librement jusqu'à ce qu'il décide d'appliquer la commande pour la certification. Les données ayant été scellées, les erreurs éventuelles doivent être corrigées au moyen d'opérations de transfert ou de correction supplémentaires.

La chaîne de blocage peut améliorer n'importe quel système, l'important est qu'elle soit utilisée à bon escient et que l'application de certification soit fonctionnelle par rapport aux objectifs de l'application. Le système de certification de la blockchain fait partie de ce qui est plus généralement la collecte et le stockage des données. Elle se compose de plusieurs phases et acteurs. Dans Bitcoin, chaque bloc a un horodatage. Bien qu'il ne soit pas strictement précis, il existe une référence temporelle claire. Il n'y a aucune obligation légale à respecter et le fonctionnement et la valeur de Bitcoin dépendent de la confiance des gens dans le système.

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.

 

 

Partager cet article: Twitter | Facebook | LinkedIn | Email