8 décembre 2017

Blockchain : Introduction à la technologie

BlockChain

La technologie de la blockchain est officiellement née en 2008 avec l’introduction de la cryptomonnaie Bitcoin par la publication de Satashi Nakamoto. En effet, Stashi combine plusieurs techniques comme HashCash ainsi que la b-monnaie pour créer un système de paiement décentralisé qu’il implémentera officiellement un an plus tard en 2009.

 

Définition

Une blockchain peut être définie comme un ensemble ordonné de blocs possédant un minimum appelé le « bloc genèse ». De façon simple, un bloc est représenté par son en-tête et son corps.

Généralement pour assurer la sécurité de la blockchain, l’en-tête contient un identifiant, un pointeur vers le bloc précédent, le hash du contenu, un horodatage, et un nonce. Le corps, quant à lui, contient des transactions, des données, ou des documents.

BSSI : Fonctionnement de la BlockChain

Cette construction en chaîne permet de garantir la sécurité de la blockchain. L’intégrité ainsi que l’unicité de chaque élément est également particulièrement mis en avant.

Pour être ajouté dans une blockchain, un bloc devra être digitalement signé par son créateur. De plus, il devra être validé grâce à un « processus de consentement ». Dans ce processus, les participants n’ont nul besoin de faire confiance au créateur ou à une autorité tierce. Cette seconde exigence implique l’avènement d’un « système distribué sécurisé ».

 

Systèmes distribués

Avec le processus de consentement, la technologie blockchain crée un système distribué sécurisé. Ce dernier existait bien avant la création de la technologie blockchain, bien qu’il soit naturellement fragilisé par le « Problème des Généraux Byzantins ».

L’innovation majeure de la blockchain est la résolution de ce problème. L’utilisation de mécanismes de consensus tels que : PoW (Proof of Work), PoS (Proof of Stack), PoET (Proof of Elaspsed Time), etc. intervient à ce niveau.

 

Type de blockchain

En fonction du processus d’identification et de la confidentialité des données, nous pouvons classer les blockchains en trois catégories : Privée, Publique et Hybride.

BSSI : Différents types de BlockChain

Architecture

Pour fonctionner correctement, une blockchain contient trois briques :

  • Les nœuds dont chacun possède au moins une adresse, une application client et un rôle.
  • Le protocole de communicationpour le routage et le stockage des blocks.
  • Le code: basé sur la cryptographie, un langage informatique et d’une machine virtuelle.

 

Fonctionnalités

Par construction, la technologie blockchain fournit de nombreuses fonctionnalités comme la désintermédiation, la transparence, la confiance, l’anonymat, l’immutabilité des données, la haute disponibilité, la rapidité, le faible coût lié à la désintermédiation, une plateforme pour les contrats intelligents, etc. Dès lors, la technologie blockchain est utilisable dans tous les domaines : banques, finances, automobile, santé (BizHealth), assurance, etc.


 

Vulnérabilités, menaces et risques

Malgré ses nombreux bénéfices, la blockchain possède des inconvénients pouvant la rendre vulnérable. D’après l’ENISA, les menaces peuvent être catégorisées en deux familles que nous allons brièvement décrire.

 

Vulnérabilités traditionnelles

  • Gestion des clés cryptographiques: que se passe-t-il si un utilisateur perd sa clé privée ? C’est ce qui arrivé en 2011 à S. Thomas qui a perdu à jamais sept mille bitcoins.
  • Implémentation de la cryptographiequi peut présenter des vulnérabilités comme celles détectées par Vessenes sur les templates de contrats intelligents d’Ethereum.
  • Données personnelles: le « droit à l’oubli » est difficilement actionnable, sans oublier la possibilité de révéler l’identité des participants.
  • Revue de codes: malgré qu’il soit open-source et revue par d’excellents développeurs, le code de la blockchain peut comporter des vulnérabilités. Par exemple, cela a permis le vol de plus de 50 millions de dollars destinés au financement du projet DAO.
  • Complexité et immaturité: cette technologie utilise des objets difficiles de la cryptographie à base de courbe elliptique pouvant freiner son adoption. Par ailleurs, elle est immature et a besoin de beaucoup de tests pour être éprouvée.

Vulnérabilités intrinsèques de la blockchain

  • Détournement de l’algorithme de consensus: appelé aussi « attaque 51% » où un attaquant contrôlant plus de 50% des nœuds peut dicter sa loi.
  • Exploitation du processus d’enrôlement: certaines blockchains (notamment privées) disposent d’un processus d’enrôlement avec une autorité dédiée qui devient un « single point of failure » pour tout le système.
  • Déni de service: bien que rare, un déni de service est possible. Par exemple, c’est ce qui s’est passé en mars 2016 sur Bitcoin après qu’un Wallet ait décidé d’envoyer un important nombre de transactions ralentissant ainsi le réseau.
  • Défaut de scalabilité: comment garantir qu’ajouter ou retirer un nombre important de nœuds ne nuit pas au système ? Sans oublier qu’il faudra s’occuper du temps du processus de validation et de l’espace disque. D’ailleurs, actuellement, avec moins de 500 000 blocs, le réseau Bitcoin recommande d’avoir près de 150 Go de disque. Que se passera-t-il avec des millions de blocs ?
  • Défaut d’interopérabilité : nous avons différentes blockchains avec différents formats, protocoles, algorithmes de consensus qui ne se parlent pas.
  • Fraudes et activités illégales: les cryptomonnaies sont souvent utilisées pour payer des activités illégales (drogues, armes, etc.) du Dark web.
  • Défaut de standardisation et de régulation: son adoption requiert une standardisation et un arbitrage par les autorités gouvernementales. Si les gouvernements ne maîtrisaient plus leurs monnaies, qu’adviendrait-il de l’état régalien ?

Oumar Diao :
Consultant BSSI

Laisser un commentaire

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