III. UN REGISTRE DISTRIBUÉ MIS À JOUR AU SEIN D'UN RÉSEAU PAIR À PAIR
A. LES NoeUDS DU RÉSEAU ET LE CONSENSUS
1. La diffusion des blocs sur un réseau pair à pair
Chaque bloc est validé par certains utilisateurs baptisés « mineurs » (en référence aux chercheurs d'or), et sont transmis aux « noeuds » du réseau, c'est-à-dire aux détenteurs du registre, ce registre étant la chaîne de blocs elle-même. Cette dernière est actualisée en permanence.
Dans les blockchains dites ouvertes ( permissionless ), comme celle du bitcoin, n'importe quel utilisateur de l'internet peut ainsi devenir un noeud du réseau en téléchargeant le registre auprès d'un noeud existant. Chaque noeud est connecté à plusieurs autres, appelés pairs , eux-mêmes ayant leurs propres pairs, ce qui forme un réseau pair à pair .
La notion de réseau pair à pair
Source : OPECST
Les noeuds du bitcoin sont très inégalement répartis dans le monde , avec près du tiers en Europe et du quart aux États-Unis.
Estimation de la répartition mondiale des noeuds du réseau Bitcoin
Source : Bitnodes.earn.com
Lorsqu'un noeud crée ou reçoit un nouveau bloc, il l'ajoute à sa copie du registre puis le transmet à ses noeuds pairs. Quand ceux-ci le reçoivent, ils vérifient que ce nouveau bloc est valide, c'est-à-dire qu'ils veillent en particulier à ce que la somme des transactions soit égale en entrée et en sortie. Si le bloc est valide, ils l'intègrent alors à leur registre et le transmettent à leur tour à leurs pairs. À l'échelle planétaire , « il y a forcément une à vingt secondes de latence pour que le bloc se diffuse dans tout le réseau », selon Bilal Chouli, fondateur de Neurochain.
Diffusion d'un bloc dans le réseau
Source : OPECST
Si un noeud essaie d'introduire dans le réseau un bloc invalide , celui-ci n'est pas validé par la plupart des noeuds (certains peuvent toutefois être corrompus) et n'est donc pas ajouté à leur registre ni transmis à leurs pairs.
Introduction d'un bloc invalide
Source : OPECST
La validation des blocs permet donc de se prémunir du risque d'attaque malveillante . Aucune autorité centrale ne s'en occupe, puisque les utilisateurs s'en chargent en surveillant le système et en se contrôlant mutuellement. Cette sécurité, source de confiance, est l'un des aspects essentiels de la blockchain . Le fait que des centaines de copies du registre soient mises à jour simultanément et régulièrement vise à rendre les blockchains quasiment indestructibles .
2. La nécessité d'une méthode de consensus
Du fait de l'incompressible latence du réseau évoquée plus haut, plusieurs blocs valides pourraient être créés simultanément par plusieurs noeuds. Les noeuds ajouteraient l'un ou l'autre de ces blocs et le réseau comprendrait alors des registres à des états différents.
Introduction simultanée de deux blocs valides
Source : OPECST
Il est donc nécessaire que les noeuds s'accordent sur le prochain bloc à ajouter à la chaîne , c'est pourquoi les protocoles de blockchains prévoient une « méthode de consensus ». En pratique, dans une blockchain publique telle que bitcoin, un mécanisme de désignation du bloc validé est utilisé. Son auteur doit fournir la preuve de sa désignation aux autres utilisateurs du réseau.
La méthode la plus simple de désignation consisterait à tirer au sort ce validateur, à intervalle de temps donné (suffisant pour qu'un bloc puisse se diffuser dans l'ensemble du réseau). Cette solution bute en pratique sur deux obstacles :
- la possibilité de multiplier les fausses identités afin de fausser le tirage au sort au profit d'une seule entité (phénomène d'attaques « Sybil » 20 ( * ) ) ;
- l'absence de temps universellement accepté , c'est-à-dire d'horloge ne pouvant pas faire l'objet de manipulation malicieuse. Dans un système distribué pair à pair, cette horloge devrait elle aussi être « distribuée ».
Dans le cadre d'une blockchain ouverte à tous, une preuve de désignation doit donc présenter deux caractéristiques :
- empêcher ou rendre difficile la prise en main de la création des blocs par une seule entité ;
- permettre une temporisation dans la création des blocs , afin que l'ensemble des noeuds du réseau puissent mettre à jour leur registre.
Le protocole défini par Nakamoto était le premier à proposer une solution relevant ces deux défis, à savoir la preuve de travail ( proof of work ou POW). Dans la mesure où cette méthode de consensus pose des problèmes de diverse nature, d'autres modes de preuves sont donc envisagés comme il sera vu plus loin.
* 20 Les attaques « Sybil » reposent sur la multiplication de fausses identités, ce qui peut conduire certains acteurs à exercer une influence disproportionnée sur un réseau. Se prémunir de ces attaques suppose de contrôler la création de profils (validation d'une identité par courriel par exemple) ou, en l'absence d'autorité de contrôle, de produire des calculs informatiques complexes, comme c'est le cas pour le bitcoin.