I.3.3 Grand livre
La couche du grand livre est responsable du stockage. Tous
les participants au réseau ont accès au grand livre
distribué et à son enregistrement immuable des transactions. Avec
ce grand livre partagé, les transactions ne sont enregistrées
qu'une seule fois.
La couche de registre incorpore la signature de hachage du
bloc précédent dans le bloc suivant pour former une structure de
données de chaine de blocs.
La couche du grand livre a deux méthodes
d'enregistrement des données basée sur les actifs et basée
sur les comptes. Dans un modèle basé sur l'actif, l'actif est
modélisé en premier, puis la propriété de l'actif
est enregistrée, c'est-à-dire que la propriété est
un
3 MySQL : est un
système de gestion de base de données relationnelle open source.
SQL fait référence au Structured Query Language, le langage de
requête utilisé
4 LevelDB : est une
bibliothèque de stockage de valeurs-clés rapide écrite par
Google qui fournit un mappage ordonné des clés de chaîne
aux valeurs de chaîne.
Chapitre I Généralités et
présentation de l'ouvrage
[7]
champ de l'actif. Dans le modèle basé sur un
compte, un compte est établi en tant qu'objet d'actifs et de
transactions, et les actifs sont un champ sous le compte.
Le grand livre possède les avantages suivants :
§ Modèle de données basé sur le
compte : Il est facile à enregistrer et à interroger les
informations liées.
§ Modèle de données basé sur les
actifs : Ce modèle possède une haute simultanéité
afin d'obtenir des performances de traitement simultanées
élevées et d'interroger les informations liées au compte
dans le temps. Plusieurs plateformes de blockchain migrent vers deux
modèles de données ce qui conduit au développement d'un
modèle mixte.
I.3.4 Consensus
La couche consensus est chargée de coordonner et
d'assurer la cohérence des enregistrements de données de chaque
noeud dans l'ensemble du réseau c'est-à-dire tous les noeuds sont
en compétition pour ajouter le prochain bloc à la blockchain mais
un seul d'entre eux sera sélectionné pour le faire (et lui seul
sera rémunéré). Cette sélection étant
aléatoire pour chaque nouveau bloc. Ce caractère aléatoire
est très important pour la sécurité de la blockchain ;
puisque personne ne sait quel mineur sera choisi. Il existe différentes
façons de réaliser cette sélection aléatoire de
mineurs : ce sont les mécanismes de consensus.
Le premier type de mécanisme de consensus est la
preuve de travail (POW) utilisée habituellement dans les blockchains
publiques de sort que plus la puissance de calcul d'un mineur est
élevée, plus la probabilité sélectionnée est
grande. Comme la puissance de calcul est coûteuse, le coût
d'acquisition de 51% de la puissance totale de calcul du réseau est
élevé ; c'est une façon de sécuriser le
réseau en rendant le coût d'une attaque disproportionnée
par rapport au bénéfice.
Le deuxième type de mécanisme de consensus est
utilisé dans les blockchains privées dans lesquelles les noeuds
appartiennent à une même entité, ou dans les blockchains
semi-privées dans lesquelles les noeuds appartiennent à un
consortium de différents utilisateurs autorisés. Ce
deuxième type n'a pas besoin d'un mécanisme de consensus aussi
coûteux que le POW, car les participants sont connus et de confiance dans
une certaine mesure. Dans ce cas, le mécanisme de consensus
utilisé est beaucoup plus simple comme l'algorithme de
PBFT5 (9J.
Ci-dessous, nous listons la comparaison de quelques algorithmes
de consensus (10J.
5 PBFT : est un
excellent algorithme de consensus pour les consortiums d'entreprises où
les membres sont partiellement fiables.
Chapitre I Généralités et
présentation de l'ouvrage
[8]
Mécanisme du consensus
|
Description
|
Avantages
|
Inconvénients
|
POW
|
Dans une blockchain publique, les ordinateurs des mineurs sont
mis à disposition pour résoudre un problème
mathématique compliqué. Le 1erqui trouve une solution
gagne la récompense du prochain bloc de la chaine.
|
Simple à mettre en oeuvre.
Sécurisé. Faible.
Consommation des ressources réseau.
|
Consomme trop de ressources informatiques.
La probabilité de bifurcation est
élevée.
Le consensus prend plus de temps.
|
POS
|
Preuve d'enjeu. Les
validateurs de transactions doivent mettre en gage la possession
de crypto monnaie pour recevoir une récompense. Si un noeud est
malveillant, il peut perdre sa mise en gage au profit des validateurs
honnêtes
|
Moins de
consommation de ressources.
|
La mise en oeuvre est plus compliquée.
Faille de sécurité.
Pression de trafic réseau élevée.
|
BPFT
|
Consensus dont la liste des validateurs est connue au
départ et peut tolérer jusqu'à 1/3 de noeuds compromis
(déconnectés ou malveillants).
|
Consensus de groupe rapide et performant.
Pas de fork ou de réorganisation de chaine.
|
Chaine privée uniquement.
|
POA
|
Preuve d'autorité. Consensus dont la liste des
validateurs est connue au départ et qui valide à tour de
rôle un bloc. Ce type de consensus peut tolérer jusqu'à 49%
de noeuds malveillants ou déconnectés.
|
Consensus de groupe rapide.
|
Chaine privée uniquement.
Fork ou réorganisation de la chaine possible.
|
|
Tableau I- 1: Comparaison des mécanismes de
consensus de la blockchain
[9]
Chapitre I Généralités et
présentation de l'ouvrage
I.3.5 Contrat intelligent
La couche de contrat intelligent est chargée
d'implémenter, de compiler et de déployer la logique
métier du système blockchain sous forme de code, de terminer le
déclenchement des conditions et l'exécution automatique des
règles établies et de minimiser l'intervention manuelle.
Les objets opérationnels des contrats intelligents
sont principalement des actifs numériques. Les caractéristiques
des conditions difficiles à modifier et fortes de déclenchement
après la détermination des données déterminent que
l'application des contrats intelligents a une valeur élevée et un
risque élevé. Comment éviter les risques et exercer une
valeur est une difficulté dans l'application à grande
échelle actuelle des contrats intelligents.
À l'heure actuelle, l'application des contrats
intelligents en est encore à un stade relativement précoce, et
les contrats intelligents sont devenus la "zone la plus touchée" pour la
sécurité de la blockchain. Du point de vue du temps de
sécurité provoqué par les précédentes
vulnérabilités des contrats intelligents, il existe de nombreuses
failles de sécurité dans le contrat portable, ce qui pose un
énorme défi à sa sécurité
[11].
À l'heure actuelle, il existe plusieurs idées
pour améliorer la sécurité des contrats intelligents :
§ La première est la vérification
formelle, qui utilise une preuve mathématique stricte pour s'assurer que
la logique exprimée par le code du contrat répond à
l'intention. Cette loi est stricte en logique, mais difficile, et requiert
généralement une agence professionnelle tierce pour effectuer des
audits.
§ Le second est le chiffrement intelligent des contrats.
Les contrats intelligents ne peuvent pas être lus par des tiers en texte
brut, ce qui réduit les attaques de contrats intelligents en raison de
failles de sécurité logiques. Cette méthode est moins
coûteuse, mais elle ne peut pas être open source.
§ La troisième consiste à
réglementer strictement le format grammatical de la langue du contrat.
Résumez l'excellent modèle de contrats intelligents,
développez des modèles de contrats intelligents standards et
standardisez la préparation des contrats intelligents avec une certaine
norme pour améliorer la qualité des contrats intelligents et
améliorer la sécurité des contrats.
Chapitre I Généralités et
présentation de l'ouvrage
[10]
Figure I- 2: Fonctionnement de contrat intelligent
I.3.6 Gestion de système
La couche de gestion du système est chargée de
gérer d'autres parties de l'architecture de la blockchain, comprenant
principalement deux types de fonctions : la gestion des autorisations et la
gestion des noeuds.
La gestion des droits est un élément clé
de la technologie de la chaîne de blocs, en particulier pour les
chaînes d'autorisation qui ont plus d'exigences d'accès aux
données.
|