Qu’est ce que la BlockChain

Une blockchain (chaine de blocs) est simplement une base de données dont la structure diffère des systèmes actuels en particulier au niveau de la procédure d’ajout d’information. Ainsi il n’existe pas une mais un nombre potentiellement infini de chaines ayant toutes des finalités différentes. Il peut s’agir d’un historique de transactions (ex de Bitcoin), ou de la gestion d’une ressource distribuée (espace de stockage, puissance de calcul), ou encore d’un registre cadastral. La technologie est particulièrement adaptée pour l’enregistrement de l’état d’un système à un instant donné puis la transition à l’état suivant, résumé succintement par le diagramme suivant:

Diagramme de transition entre états

Ainsi la chaine s’allonge au cours du temps à mesure que des blocs d’informations nouvelles sont ajoutés les uns à la suite des autres. Par exemple dans le cas de Bitcoin, un nouveau bloc contient un nombre prédéfini de transactions non encore inclues dans un bloc précédent. Il s’ensuit qu’en parcourant la chaine a l’envers, il est possible de reconstituer l’état du système à un instant donné jusqu’au démarrage du système. Si la chaine est ouverte (non cryptée) et distribuée (cas qui nous intéresse), l’ensemble des informations est accessible a toute personne participant au système.

Intérets et faiblesses du système

L’idée derrière la technologie n’apporte en elle-même pas grand-chose et existe d’ailleurs depuis de nombreuses années (bien avant Bitcoin). L’émergence d’internet a permis d’ajouter un caractère distribué au système (type peer to peer) permettant la décentralisation. L’information est disponible à tous les acteurs du réseau, lesquels sont garants de sa véracité. La base de données est ainsi répliquée et mise à jour (création de nouveaux blocs) par tout participant au système de façon simultanée. On peut ainsi par exemple se passer d’une banque comme autorité centrale dans le cas de gestion de flux financiers.

Problème du choix de la version actuelle de la chaine

Le problème qui se pose alors concerne la synchronisation de l’information entre différents nœuds qui peuvent se compter par milliers. Si un nouveau nœud souhaite rejoindre le réseau, ou va il aller chercher l’information sur l’état actuel du système ? Probablement d’un nœud existant. Etant donné qu’il faut considérer la possibilité que certains nœuds soient corrompus (volontairement ou non), comment va il être convaincu que l’information obtenue est bien correcte et non falsifiée ? Il faut prévoir un mécanisme permettant de prouver que l’information fournie par un autre nœud est correcte. De la même manière, il est nécessaire d’avoir une procédure permettant aux nœuds de se mettre d’accord sur la liste des nouvelles transactions et le bloc nouvellement crée. Le document initial de description de Bitcoin publié en 2009 par Satoshi Nakamoto a apporté une solution à ces deux problématiques via la notion de mining sous la forme de Proof of Work (preuve d’enjeu).

Problème du choix et de la syncrhonisation du bloc suivant

Laisser un commentaire