Dans cet article
Le blockchain est un système de sécurité et de certification qui garantit l'intégrité des collectes de données. Cette technologie permet de vérifier que les données n'ont pas été modifiées a posteriori et de s'appuyer sur le contenu numérique quel que soit l'endroit où il se trouve, ce qui réduit le volume de transmission des données. Le blockchain est né du besoin de garantir la validité des données sous forme électronique, ainsi que sur papier. Les collections de données peuvent donc être transmises et enregistrées simultanément sur plusieurs ordinateurs en sécurité, avec la garantie que la modification des données est bloquée.
Histoire
Le blockchain est une nouvelle technologie qui s'est développée au cours des dernières décennies et qui gagne du terrain dans plusieurs domaines pour garantir l'authenticité et l'intégrité des données sous forme électronique. Le chemin qui a conduit à la naissance du blockchain peut être divisé en trois phases principales.
La première phase remonte à 1979, lorsque Ralph C. Merkle a breveté les fonctions cryptographiques du hachage et une structure de données appelée plus tard Merkle Tree. Le Merkle Tree est une structure arborescente de données qui utilise l'enchaînement de hachages cryptographiques pour assurer l'intégrité et l'accès rapide aux blocs de données.
En 2002, Domenico Zucchetti, fondateur de Banana.ch, a breveté un système de certification pour les collectes de données formées par une séquence d'éléments, tels que les mouvements d'un journal comptable. Pour chaque mouvement, un hachage cryptographique concaténé avec celui du mouvement précédent est calculé. Le hachage du mouvement certifie à la fois le contenu de la transaction et le journal dans son ensemble. Cette structure permet d'ajouter de nouveaux mouvements, tout en conservant l'intégrité des hachages cryptographiques des mouvements existants. Toujours en 2002, Banana Comptabilité utilise ce système de hachages cryptographiques concaténés pour assurer l'intégrité du journal comptable.
En 2008, Satoshi Nakamoto a inventé la cryptomonnaie de Bitcoin basée sur un journal distribué, où chaque bloc de transactions est enchaîné cryptographiquement avec le précédent. A partir de ce moment, le système d'enchaînement cryptographique des éléments en séquence sera appelé blockchain.
Définition de Blockchain
Domenico Zucchetti, fondateur de Banana.ch, définit ainsi le blockchain :
" Le blockchain est une collection de données historiques, composée de blocs en séquence, où chaque bloc possède son propre hachage cryptographique concaténé avec le précédent, de sorte que le hachage du bloc certifie l'intégrité du contenu du bloc et aussi de toute la collection depuis le début jusqu'au bloc lui-même ".
Exemple d'une structure de données blockchain
Vous trouverez ci-dessous un exemple de journal comptable de le software Banana. Chaque transaction est représentée par la ligne du journal qui comporte un hachage cryptographique calculé sur la base du contenu du hachage cryptographique de la ligne précédente. Le hachage de ligne est le résultat de l'enchaînement de tous les hachages des lignes précédentes, ainsi que le certificat qui garantit l'intégrité des données du journal dès le début de celui-ci.
L'ajout de lignes supplémentaires, chacune avec son propre hachage, n'invalidera pas les hachages précédents.
Collections de données historiques
Le blockchain est une collection de données conçue pour préserver l'intégrité des données par des hachages cryptographiques. Il est donc utilisé pour les données historiques, qui une fois créées et validées n'ont plus besoin d'être modifiées, comme un journal comptable ou un journal d'accès. Le blockchain n'est pas adapté aux données qui doivent être continuellement mises à jour, comme la ligne d'un compte dans la comptabilité, avec le solde recalculé chaque fois qu'un nouveau mouvement est ajouté.
Blocs de données en séquences
Le terme "blockchain" est un mot anglais qui signifie "chaîne de blocs". La collection est constituée de blocs de données, qui ont un certain ordre. Dans le cas d'un journal comptable, chaque bloc correspond à une seule opération. Dans le système Bitcoin, au contraire, chaque bloc contient une série de mouvements comptables organisés sous forme de Merkel Tree (voir ci-dessus). Dans la structure des données du blockchain, l'ordre dans lequel les blocs se succèdent est aussi important que les informations contenues dans le bloc, en effet, le blockchain garantit l'immuabilité du contenu et de la succession des données.
Chaque bloc, ainsi que les transactions, peuvent être consultés, mais ne peuvent être modifiés. Par la suite, de nouveaux blocs sont ajoutés, mais sans modifier les précédents.
Les blocs sont 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. Le hachage d'un bloc est donc également le hachage de l'ensemble de la collecte de données et certifie l'intégrité de l'ensemble de la collecte. Si une partie du contenu d'un bloc change, son hachage change aussi. Si la chaîne est correcte, cela signifie que le contenu est intact.
Les hachages cryptographiques
Le hachage est un texte calculé par une fonction de hachage basée sur un ensemble de données. La fonction de hachage est un algorithme qui transforme une ligne de texte en une série de lettres et de chiffres. Le terme "hash" vient de l'anglais et signifie littéralement "hacher". En fait, la fonction prend une ligne de texte (input) et la "hache" en une série de caractères (hash sum).
(Source: Wikipedia)
Le hachage cryptographique est un type de hachage qui possède un certain nombre de caractéristiques qui lui permettent d'être utilisé comme identifiant et certificat d'intégrité pour l'ensemble des données utilisées pour son calcul. Pour être considéré comme un hachage cryptographique, il doit présenter les caractéristiques suivantes :
- il est décisif, en ce sens que le même message se traduit toujours par le même hachage
- il est rapide à calculer la valeur de hachage pour tout message
- vous ne pouvez pas générer un message qui produit une valeur de hachage donnée, c'est-à-dire inverser le processus qui a généré la valeur de hachage donnée (unidirectionnalité). Cela implique que le hachage peut être facilement partagé avec des tiers sans exposer le contenu original.
- Vous ne pouvez pas trouver deux messages différents avec la même valeur de hachage (un concept appelé résistance aux collisions).
- une petite modification d'un message changera la valeur de hachage si radicalement que la nouvelle valeur de hachage apparaîtra sans rapport avec l'ancienne (appelé effet d'avalanche)
Les hachages cryptographiques sont enfin légalement reconnus s'ils répondent à trois caractéristiques principales :
- ils garantissent les critères d'unicité (il n'y a pas de collisions) ;
- ils garantissent l'unidirectionnalité des données ;
- ils sont difficiles à attaquer
Concaténation des hachages cryptographiques
Dans la chaîne de blocs, chaque bloc de données possède un hachage cryptographique qui est calculé sur la base du contenu des données du bloc et du hachage du bloc précédent. Cela permet de créer une chaîne cryptographique. Le hachage de bloc devient également le certificat de l'ensemble de la collection de données, du début au dernier bloc.
Dans Banana Comptabilité, chaque enregistrement est équivalent à un bloc qui est représenté par le hachage cryptographique. À partir du deuxième enregistrement, les données du bloc précédent sont ajoutées aux données du bloc, ce qui donne lieu à un nouveau hachage qui tient compte de tous les hachages précédents.
L'image suivante montre la concaténation des blocs dans le journal comptable de Banana. Chaque bloc a un numéro de séquence qui sert à assurer la progressivité des données.
Modifier le contenu
L'enchaînement des hachages implique que si le contenu est le même, les hachages resteront les mêmes. Si le contenu ou la séquence change, les hachages seront différents.
Les deux images suivantes montrent ce qui se passe si la valeur d'un montant unique est modifiée dans Banana Comptabilité. Le registre modifié indique le montant de 40 CHF au lieu de 30 CHF à la deuxième ligne du registre original. Si vous modifiez les données, les hachages cryptographiques changeront également par rapport au numéro de ligne qui a été modifié (dans ce cas, la deuxième ligne). Le hachage sera donc complètement différent puisque sa fonction a été sensiblement modifiée.
Journal certifié
Pour la comptabilité, la loi exige que les données soient enregistrées progressivement. En comptabilité, la revue est le recueil de tous les mouvements économiques. Chaque mouvement contient tous les éléments nécessaires à la tenue de la comptabilité : date, référence au document, description, compte Débit , compte Crédit, montant, etc.
Un hachage cryptographique est ensuite calculé pour chaque mouvement, ce qui garantit l'intégrité de chaque transaction et de l'ensemble du journal jusqu'à ce point. En conséquence, le journal comptable est certifié.
Les étapes de la création du blockchain
Les phases menant à la création du blockchain peuvent être résumées comme suit :
- Collecte et création de blocs de données.
- Vérification des données.
- Fixer les séquences de données.
- Calculer les hachages cryptographiques.
La création d'une structure de données blockchain peut varier selon l'application.
Dans le cas de Banana Comptabilité, la séquence est la suivante :
- Le comptable saisit ou importe les données dans le tableau des enregistrements et saisit toutes les informations nécessaires pour chaque mouvement.
- Le gestionnaire des données vérifie que les données sont correctes d'un point de vue matériel (les données correspondent à l'opération réelle) et formel (les comptes rendus sont correctement indiqués. La vérification des données peut avoir lieu à plusieurs reprises. Par exemple, à la fin de la période, les mouvements et le solde des banques sont comparés au relevé bancaire. S'il y a des différences, elles doivent être complétées jusqu'à ce que les valeurs dans les comptes correspondent à la réalité.
- L'utilisateur donne la commande de blocage des lignes d'enregistrement en précisant jusqu'à quelle date les transactions doivent être bloquées (en général en incluant les données contrôlées). Lorsque cette commande est donnée, le programme effectue les opérations suivantes :
-
il vérifie si les mouvements à bloquer ne contiennent pas d'erreurs ;
-
il contrôle que la séquence des hachages cryptographiques précédents est correcte ;
-
il attribue un numéro de séquence progressif à chaque mouvement, en commençant par le dernier numéro de séquence ;
-
il calcule les hachages cryptographiques de chaque mouvement en les concaténant avec celui de la ligne précédente.
-
présente un résumé de l'opération de blocage.
Démonstration de l'intégrité des données
Afin de pouvoir vérifier l'intégrité d'un journal de Banana Comptabilité, il faut
donner la commande de vérification afin de recalculer le hachage cryptographique de tous les mouvements.
vérifier que le hachage cryptographique de la dernière ligne est le même que celui qui est enregistré.
Le hachage cryptographique qui a résulté au moment du blocage doit donc être conservé afin de pouvoir vérifier l'intégrité des données. La façon dont vous mémorisez et conservez le hachage cryptographique à des fins de vérification dépend de votre organisation. Si vous ne conservez pas le hachage, vous ne pourrez pas vérifier l'intégrité des données.
Usages du blockchain
La Blockchain est utilisée de différentes manières. Tout d'abord, il est utilisé pour le stockage de données historiques croissantes, dont le contenu ne doit pas être modifié. L'exemple typique est le journal de comptabilité.
Deuxièmement, les collections de données blockchain sont particulièrement idéales pour le partage de journaux distribués (par exemple Bitcoins) car elles réduisent au minimum le besoin de transfert de données. Il suffit d'échanger des hachages pour vérifier que les données sont identiques.
De cette façon, vous pouvez savoir jusqu'à quel nombre de blocs les deux collections sont identiques.
Par ailleurs, la transmission des données des blocs manquants permet de maintenir à jour les contenues.
Blockchain dans la comptabilité
Banana Comptabilité a été un pionnier dans la technologie du blockchain dans le domaine financier. En fait, avant même que le blockchain ne prenne son nom, Banana avait déjà obtenu un brevet en 2002 pour un système de sécurité dans un logiciel de comptabilité. Grâce à des hachages cryptographiques, cette méthode permet de certifier la validité des données afin de respecter les réglementations fiscales légales.
Avec l'avancement de la numérisation, il est nécessaire de transformer tous les documents papier en format électronique. La certification des données par le blockchain permet de s'appuyer sur des documents électroniques de la même manière que nous nous appuyions sur des documents papier signés. Ainsi, on peut prouver que les informations, en l'occurrence toutes les opérations comptables, n'ont pas été modifiées a posteriori et qu'elles peuvent être transmises aux autorités compétentes sans avoir à imprimer rien.
Caractéristiques des collections de données blockchain
-
Les collections de données sont structurées en blocs et ne peuvent être modifiées.
-
Des contenus différents produisent des hachages différents. Toute modification du contenu de la collection se traduira par des hachages différents.
-
Un contenu identique produit des hachages identiques. En comparant le hachage du dernier bloc de deux collections de données, il est possible de savoir si les contenus et leur séquence sont les mêmes.
-
Vérifier l'intégrité. En retraçant la séquence des blocs, vous pouvez recalculer les hachages de tous les blocs et vérifier ensuite que le contenu de la collection n'a pas changé.
-
Séquence de bloc. Les blocs doivent contenir un élément qui définit leur séquence. Il s'agit généralement d'un numéro séquentiel ou d'une référence à l'identifiant du bloc précédent.
-
Ajout de blocs. Lorsque vous ajoutez un bloc, le hachage du bloc est calculé en fonction de son contenu et du hachage du bloc précédent. Le hachage du nouveau bloc devient alors le hachage qui certifie également l'ensemble des données. Les hachages de blocs précédents restent valables.
-
Bases de données distribuées. En échangeant simplement des hachages, vous pouvez vérifier que des collections de données situées à différents endroits ont le même contenu.