ÉTUDE COMPARATIVE ENTRE UNE BASE DE DONNÉES RELATIONNELLE ET LA CHAÎNE DE BLOCS (BLOCKCHAIN) BITCOIN (Suite)

  1. De la comparaison

Des définitions

  1. Base de données

Dans leur ouvrage intitulé Technique des bases de données : étude et cas, MVIBUDULU KALUYIT et KONKFIE IPEPE définissent, de façon simple, une base de données comme étant un grand fichier dans lequel on retrouve des petits fichiers ayant des liens entre eux, renfermant des informations nécessaires, non répétitives et permettant à plusieurs utilisateurs d’y accéder simultanément[1].

  • Blockchain

Plusieurs tentatives de définition existent pour la blockchain :

  1. Par extension, une chaîne de blocs est une base de données distribuée qui gère une liste d’enregistrements protégés contre la falsification ou la modification par les nœuds de stockage[2]
  2. Un fichier informatique composé de pages (ou blocs) ordonnées, Page 0, Page 1, …, Page n, évoluant par addition de nouvelles pages, une à une, sans que ne s’opère jamais aucun retrait, effacement ou modification. Ce fichier, concaténation dans l’ordre de toutes les pages, [Page 0, …, Page n] à l’instant n, est le fichier blockchain[3].

Des Concepts

Dans une base de données nous trouvons des tables (des fichiers de données) qui possèdent des attributs ou des champs et une clé primaire permettant d’identifier de façon unique un enregistrement. Les attributs seront définis, pour chaque table, en fonction des cas d’utilisations comme représenté dans l’exemple ci-dessous (Figure 1).

figure 1: Structure d’une table relationnelle

Dans la Blockchain Bitcoin une table est l’équivalent d’un bloc, et un bloc contient les différentes transactions. Chaque bloc possède un index permettant de l’identifier de façon unique.

En dehors de l’index, la Blockchain Bitcoin possède les champs  timestamp, le hash du bloc précédent, niveau de difficulté, le nonce ainsi que le champ Data.

Le timestamp indique le temps auquel le bloc a été créé. Le hach du bloc précédent fait référence au hach du bloc parent (celui qui le précède) et jouera le rôle  de clé secondaire dans le futur bloc. Le niveau de difficulté indique la valeur de la preuve de travail effectué (Proof-of-work ou PoW) lors de la validation du bloc. Le nonce est un compteur qui est utilisé dans l’algorithme de preuve de travail, ou mieux, un nombre aléatoire incorporé au bloc pour obtenir la valeur du hash demandé. Data contient quant à lui toutes les informations concernant les différentes transactions monétaires entre les différents utilisateurs.

Des associations

Dans une base de données relationnelle, un petit fichier (table) sera en liaison avec un ou plusieurs autres petits fichiers comme représenter à la figure 2.

Figure 2 : Liaison entre « petits fichiers »

 Contrairement aux bases de données relationnelles, dans la blockchain Bitcoin une Page (bloc) n’est en liaison qu’avec deux autres pages : la Page précédente et la Page suivante. La première Page (appelée bloc de genèse ou genesis block) n’est en liaison qu’avec la page suivante comme indiquer dans l’illustration suivante (voir figure 3)  

Figure 3 : Représentation d’une blockchain

De l’exhaustivité

Le gestionnaire de la base de données veillera à ce que les tables à créer se rapportent à un domaine bien déterminé en vue de satisfaire à cette règle qui permet d’éviter la création d’une base de données four tout, dont la gestion serait fastidieuse. D’où la nécessité de limiter le champ d’application d’une base de données à un secteur. Par exemple la gestion de stock des produits pharmaceutiques

Quant à la Blockchain, il en existe des milliers et chacune à un champ d’application particulier. La première application d’une blockchain est le BITCOIN, la plus emblématique des toutes et la plus populaire, dont l’objet en comparaison dans le présent article. Cette dernière s’occupe de la validation des transactions financières dans un environnement dépourvu d’une autorité centrale de régulation. 

De l’environnement de travail

L’objectif principal de l’implémentation d’une base de données dans une Entreprise est le partage des informations entre ses différents acteurs, exigeant ainsi l’installation d’un réseau. Ainsi, une base de données ne sera pas créée pour être utilisée par un seul acteur ou être installée sur un seul ordinateur. Du point de vue fonctionnement, il existe : Le réseau poste à poste et le réseau organisé autour d’un serveur.

Dans un réseau poste à poste, chaque ordinateur joue à la fois le rôle de serveur et de client. Cela signifie notamment que chacun des ordinateurs du réseau est libre de partager ses ressources. La particularité des architectures pair-à-pair réside dans le fait que les données puissent être transférées directement entre deux postes connectés au réseau, sans transiter par un serveur central (Figure 4).


Figure 4, source : www.wapiti.enic.fr

Par contre, dans un réseau organisé autour d’un serveur (réseau dit client/serveur), les informations sont stockées au niveau de l’ordinateur serveur et les autres font office des clients (Figure 5).


Figure 5, source : www.wapiti.enic.fr

Les bases de données relationnelles sont en grande majorité conçues pour être utilisées par plusieurs utilisateurs, dépendant de la taille de l’Entreprise. Dans la plupart de cas, les entreprises optent pour l’architecture client-serveur, car elle permet de centraliser les données, permettant ainsi de simplifier l’administration, le contrôle de sécurité et facilite la mise à jour des informations. Du coté serveur, les grandes entreprises optent pour une architecture n-tiers. Au lieu d’installer la base de données sur un seul Serveur, elle se retrouvera sur plusieurs serveurs servant soit à la sauvegarde (copie sans possibilité de mise à jour), soit à la réplication des données (le contenu de la base de données du serveur est envoyé vers les serveurs secondaires à chaque modification de la base de données). Plusieurs utilisateurs (clients) tenteront d’accéder simultanément à la base de données pour une mise à jour, posant ainsi le problème de contrôle de concurrence.

La blockchain Bitcoin par contre est utilisée, de par la conception, dans un environnement poste à poste. Dans un tel environnement, l’utilisation et le maintien des bases de données relationnelles devient fastidieux et onéreux. Car les mises à jour effectuées sur un poste doivent être répercutées sur tous les postes contenant la base de données. Or chaque poste a la possibilité de mettre à jour sa base de données rendant ainsi la cohérence des données à l’instant T presque impossible à atteindre sans une autorité de régulation.

Des propriétés ACID

Il sied de rappeler que les utilisateurs de la base de données sont en compétition (concurrence) constante pour mettre à jour un ou plusieurs enregistrements. Cette concurrence peut entrainer l’incohérence, la non atomicité des transactions pouvant nuire la durabilité. Cette compétition dans la validation des transactions entraine ainsi le problème de contrôle de concurrence.

Le contrôle de concurrence est défini comme étant un procédé qui consiste à gérer des opérations simultanées sur une base de données, tout en interdisant les interférences entre ces opérations.

Pour bien répondre aux critères ACID les Systèmes de gestion des bases de données relationnelles recours au contrôle de concurrence, en utilisant plusieurs techniques parmi lesquelles nous pouvons citer :

  • Les règles de gestion, l’épuration et la normalisation
  • Isolation des traitements par versionnement
  • La sériabilité
  • Contrôle de concurrence multi-versions
  • Le verrouillage à deux phases
  • La réplication des données assurant la durabilité des informations
  • La cohérence des données dans une base de données assurée par les contraintes d’intégrités

La blockchain Bitcoin quant à elle recours à plusieurs techniques pour répondre aux critères ACID.

  • Un bloc est inséré dans la blockchain Bitcoin par un nœud, après avoir gagné à un concours consistant à trouver, par calcul cryptographique, une valeur donnée dont la difficulté est ajustée, chaque dix (10) minutes en fonction de la puissance totale de calcul des ordinateurs (nœuds) participants au concours. Cette concurrence est appelée la preuve de travail ou Proof of Work (PoW) en anglais.
  • Chaque nœud du réseau Bitcoin doit contenir les mêmes blocs après validation. En vue de garantir la cohérence de la blockchain dans un environnement sans autorité de régulation, lorsque deux chaînes entre en contradiction La chaîne la plus longue (contenant plus de blocs) est adoptée au détriment de la chaîne la moins longue. Cela garantie l’unicité et la cohérence de la base de données Bitcoin.
  • Isolation : Chaque nœud travaille en solo dans la validation des blocs à insérer dans la chaîne. Avant de se lancer dans une nouvelle concurrence de validation, le nœud commence par vérifier la validité et la non redondance des transactions dans la chaîne. Cette étape permet d’éviter les doubles dépenses.
  • Durabilité : vu que la base de données Bitcoin est répliquée à tous les nœuds du réseau, il devient quasiment impossible de perdre les informations. Si un nœud tombe en panne, les autres continuent à assurer la disponibilité des informations. Ce nœud pourra ainsi se mettre à jour dès que la panne sera réparée.

De la redondance

Les bases de données relationnelles acceptent une redondance calculée. Cette redondance a pour objectif principal de permettre la liaison entre les différents fichiers de données(Tables). Un fichier de données peut être en liaison avec un ou plusieurs autres fichiers de données. La blockchain, dans la mesure où un bloc ou une « page » contient l’empreinte de la page précédente, faisant ainsi office de liaison entre les pages, nous diront donc qu’elle accepte aussi une redondance calculée. Par contre, une page (un bloc) de la blockchain ne peut contenir qu’une seule empreinte, celle de la page qui la précède.

Lire la suite…

[1] J.C. MVIBUDULU et L.D. KONKFIE IPEPE, Technique des bases de données : Etude et cas, 2e Edition, Ed. CRIGED, P. 9

[2] Wikipedia : https://fr.wikipedia.org/wiki/Blockchain (consulté le 05/01/2018)

[3] J-P Delahaye : http://www.scilogs.fr/complexites/search/blockchain (Consulté le 05/01/2018)

Benjamin HYANGANGA

Je suis Assistant 2e Mandat à l'ISIPA, passionné des nouvelles technologies et la Programmation.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *