Après avoir compris les principes de la blockchain et découvert plus précisément qui sont les mineurs au sein de ce système, on peut se poser des questions sur l’utilité du consensus ? À quoi il correspond ? Son mode de fonctionnement ou encore les différentes formes de consensus qui peuvent exister ? L’enjeu n’est pas de rentrer à un niveau de détail technique mais bien d’évaluer et de vulgariser ce processus clé d’une blockchain.

Le consensus au cœur du mode de gouvernance de la blockchain

Tout d’abord rappelons ce qu’est le consensus en nous basant sur la définition de Wikipédia : « Un consensus caractérise l’existence parmi les membres d’un groupe d’un accord général (tacite ou manifeste), positif et unanime pouvant permettre de prendre une décision ou d’agir ensemble sans vote préalable ou délibération particulière. »

Lorsqu’on parle de blockchain, on finit irrémédiablement par mettre en avant le mode gouvernance de celle-ci. En effet, dans un système centralisé traditionnel, le mode de gouvernance est tout aussi centralisé et simplifié, ainsi tous les acteurs du système s’appuient sur un tiers de confiance connu de tous et faisant foi pour définir les règles du jeu et jouer le rôle d’arbitre pour mettre tous les acteurs d’accord lorsqu’il y a besoin d’un arbitrage. C’est entre autres ce rôle que joue la banque centrale dans un système monétaire, quel qu’il soit, vis-à-vis des banques locales. Donc, dans un modèle centralisé, le consensus n’est pas nécessaire, ou en tout cas pas pour mener un arbitrage, valider une transaction monétaire entre tiers dans les systèmes bancaires. La gouvernance dans ce cadre est simple et assurée par le tiers identifié et connu de tous.

À l’inverse dans un modèle décentralisé et sans intermédiaire comme celui de la blockchain, le mode de gouvernance est tout autant décentralisé. Ainsi, le logiciel qui fait tourner la blockchain, et qui est installé sur les ordinateurs de tous les utilisateurs du réseau, ne peut être modifié sans qu’il existe un consensus global des utilisateurs. Par exemple, admettons qu’un utilisateur décide de modifier le code source du logiciel en y introduisant une règle malveillante du type « pour chaque transaction validée au sein de la blockchain, 5% du montant est transféré sur mon compte », comme il n’existe aucun organe central pour valider et rediffuser cette nouvelle version du logiciel, cela ne peut se faire qu’avec l’accord du plus grand nombre des utilisateurs, on voit bien dans ce cas que cette mise à jour du code n’obtiendra jamais le consensus. La gouvernance se gère donc non pas sur une seule entité sur laquelle tout le monde s’appuierait et à qui l’on ferait confiance pour valider des changements de fonctionnement, ou des transactions, mais elle se gère de manière distribuée sur l’ensemble des utilisateurs du système.

Quid du consensus à l’échelle des transactions ?

Dans le cadre de transactions, en particulier monétaires mais pas que, et dans un système distribué, il devient complexe de déterminer la validité de chacune de chacune d’elle. Sans organe de contrôle, comment garantir qu’une transaction n’est pas frauduleuse ? Puisque tout le monde peut en émettre et tout le monde peut les valider, quel niveau de confiance peut-on apporter au système. C’est ce que l’on retrouve sous la terminologie du « Problème des Généraux Byzantins ». Imaginez à l’époque byzantine plusieurs armées prêtes à attaquer en commun une même ville, le seul moyen de communiquer des informations et de synchroniser les différentes armées, pour déterminer s’il faut attaquer ou battre en retraite, est de faire circuler un messager à cheval. Chaque général mandate un chevalier, inconnu de l’autre armée, pour porter le message « attaque » ou « retraite ». Chacune des armées n’ayant aucune connaissance de ce chevalier va rencontrer un problème, comment lui faire confiance ? Comment être sûr que le message qu’il apporte est le bon ?

C’est exactement ce que met en exergue le principe de consensus au sein de la blockchain. Il existe plusieurs solutions à ce problème en particulier par des processus qui permettent de garantir que le bon message soit transmis de manière fiable et incontestable dans un contexte distribué. Et au bout du compte, le seul moyen de faire émerger une validation globale au sein du réseau, c’est d’obtenir un vote général, un consensus, entre toutes les parties prenantes, l’hypothèse pour cela est que les utilisateurs malveillants seront toujours moins nombreux que les utilisateurs honnêtes.

Le consensus au sein du processus de minage

Revenons rapidement sur ce qu’est le minage, prenons la définition donnée par Bitcoin.fr « Le minage c’est le procédé par lequel les transactions Bitcoin sont sécurisées. A cette fin les mineurs effectuent avec leur matériel informatique des calculs mathématiques pour le réseau Bitcoin. Comme récompense pour leurs services, ils collectent les bitcoins nouvellement créés ainsi que les frais des transactions qu’ils confirment. » Ainsi tous les utilisateurs de la blockchain peuvent miner, mais pour cela il faut un équipement spécifique et des moyens permettant d’assumer le coût de ce matériel et de celui de l’énergie utilisée par les machines qui réalisent le minage.

L’enjeu du minage est donc la sécurisation du réseau et la création de monnaie au sein de celui-ci par la validation des transactions, la création et l’ajout des blocs à la chaîne. Comme tout le monde peut le faire, tout le monde peut aussi valider une transaction frauduleuse et ainsi pirater la blockchain en théorie. C’est pour cela qu’il faut un consensus au sein de la blockchain pour qu’un nouveau bloc soit ajouté à celle-ci. Une fois que le bloc est validé par un mineur, celui-ci est vérifié par tous les utilisateurs du réseau, s’il existe un consensus entre une majorité des utilisateurs du réseau, plus de la moitié, pour ce bloc validé par un mineur alors il est ajouté à la blockchain.

La preuve de travail comme mode de consensus pour Bitcoin

Vous l’aurez compris, dans le cas de figure Bitcoin, le processus de consensus utilisé est particulier parce qu’il s’agit d’une blockchain publique, tout le monde peut la lire, y écrire et valider des transactions et des blocs. Il est donc important pour la sécurité du réseau, pour être sûr qu’un ou plusieurs acteurs de celui-ci n’ajoutent pas de transactions frauduleuses, qu’il existe des mécanismes ou des règles reconnus, partagés et validés par tous, qui permettent de valider une transaction, puis un bloc de manière certaine avant qu’il soit ajouté à la chaîne. Ce sont ces règles qui forment le consensus, qui vont mettre tout le monde d’accord sur le fait qu’il n’y a pas de fraude sur ce qui est en train de se passer à l’intérieur du système. Ainsi tous les acteurs acceptent d’ajouter sur la blockchain un nouveau bloc dès lors qu’il a été fait la preuve qu’un mineur a dépensé de l’énergie pour le miner, ce qu’on appelle la « preuve de travail », et que l’ensemble des utilisateurs ont validé individuellement le travail réalisé par le mineur avant d’ajouter le bloc à la chaîne, il s’agit du principe de précaution. Ce mode de fonctionnement rend quasiment impossible l’introduction d’une transaction frauduleuse, le seul moyen serait de rallier plus de la moitié des utilisateurs du réseau sur une nouvelle forme de consensus ou un nouvel algorithme de minage frauduleux. Aucun utilisateur du système n’a intérêt à rentrer dans ce modèle, ni le mineur en premier lieu qui dépense de l’argent pour réaliser ce travail et dont l’intérêt est d’en gagner en contrepartie lorsqu’un bloc est validé, ni les utilisateurs du système en deuxième lieu qui verraient baisser drastiquement la valeur de leurs avoirs puisque le système ne serait plus fiable.

Blockchain privée et publique, des besoins de consensus différents

Suivant le type de blockchain utilisé, et donc l’usage que l’on réalise de la blockchain, le mode de consensus ne sera pas le même. Nous avons vu un peu avant que le consensus sur la blockchain publique est spécifique au besoin des utilisateurs sur un système distribué sans intermédiaire et dans lequel les utilisateurs ne se font pas confiance, mais dans le cadre d’une blockchain privée, dite de consortium, et dont les acteurs se connaissent, le consensus peut se faire de manière simplifiée et moins coûteuse. Il existe plusieurs autres formes de consensus, dans les 2 exemples suivants, nous parlerons d’un des modes de consensus les plus simples à comprendre, la « preuve d’autorité ».

Premier exemple, pour illustrer cette forme de consensus sur une blockchain privée, prenons le cas dans lequel les acteurs participants au consortium seraient confrères ou feraient partie de la même entreprise (des filiales par exemple) et surtout seraient totalement en confiance sur les transactions réalisées au sein de la blockchain. Dans ce cas, il est tout à fait possible de mettre en place un organe central chargé de valider les transactions et de miner les blocs sans qu’il soit nécessaire que cette activité soit répartie sur l’ensemble des utilisateurs du réseau. Il suffirait pour cela que les participants décident ensemble de l’autorité de confiance qui aurait la charge du minage. On comprend bien dans ce cas qu’il s’agit de réintroduire un intermédiaire dans un système qui par ailleurs tend à les faire disparaître. Ce choix peut tout à fait se justifier et il n’y a pas à juger d’une mauvaise utilisation de la blockchain, l’enjeu étant plus de disposer d’un système sur lequel des transactions seront émises par l’ensemble des acteurs et inscrites de manière définitive dans la blockchain.

Autre exemple, celui d’un consortium entre entreprises ayant des intérêts divergents, des concurrents, mais ayant le souhait de pouvoir travailler ensemble pour réduire les coûts ou optimiser un processus les liant les uns aux autres. Dans ce cas, les objectifs sont communs pour autant la confiance n’étant pas acquise, il peut être utile de disposer d’une mécanique de consensus distribué entre les différents participants à la blockchain. Le niveau de consensus peut se faire sans forcément faire appel à la logique Bitcoin (preuve de travail) mais en se basant sur une version simplifiée de la validation d’un bloc. Ainsi, on peut mettre en place un mécanisme permettant de valider un bloc dès lors qu’une majorité des acteurs du réseau, pourquoi pas 2 sur 3, sont d’accord sur la validité du bloc. Cette autre forme de consensus peut donc tout à fait s’entendre pour une utilisation de la blockchain entre partenaires ayant des intérêts communs mais un niveau de confiance faible dans la probité des autres participants.

Le cas particulier de la preuve d’enjeu ou preuve de participation

La « preuve d’enjeu » est sûrement après la preuve de travail, la méthode de consensus dont on entend le plus parler. En effet, Bitcoin utilise historiquement la fameuse preuve de travail dont on sait aujourd’hui qu’elle est extrêmement énergivore. Une étude de 2014 estimait ainsi que sur la blockchain Bitcoin la validation des blocs par les mineurs nécessitait une consommation d’électricité similaire à celle d’un pays comme l’Irlande. D’autres projections voudraient que la consommation électrique de Google équivaille à seulement 1% de la consommation d’électricité nécessaire pour le minage sur Bitcoin. Bref, un vrai sujet de société à l’heure de la COP 21 et bientôt de la COP 22. D’ailleurs, au-delà de Bitcoin, Ethereum elle aussi fonctionne avec la preuve de travail pour le moment et doit migrer à échéance 2017 sur ce nouveau mode de consensus.

Commençons par la définition de Wikipédia sur cette forme de consensus : « La preuve d’enjeu ou preuve de participation est une méthode par laquelle une chaîne de blocs d’une crypto-monnaie vise à atteindre un consensus distribué. Elle demande à l’utilisateur de prouver la possession d’une certaine quantité de crypto-monnaie (leur « participation » dans la crypto-monnaie) pour prétendre à pouvoir valider des blocs supplémentaires dans la chaîne de bloc et de pouvoir toucher la récompense. » En substance, pour pouvoir valider des blocs, il n’est plus nécessaire de prouver que l’on a investi de la puissance de calcul, donc dépenser de l’énergie, mais que l’on possède une certaine quantité de monnaie. Dans le cas de la preuve d’enjeu, on ne parle plus de miner mais de minter pour la validation des blocs. Si l’on devait faire la comparaison avec la preuve de travail, un utilisateur possédant 5% d’une monnaie peut minter 5% des blocs de la même façon qu’une personne possédant 5% de la puissance du réseau Bitcoin peut théoriquement miner 5% des blocs.

Cette nouvelle méthode de consensus assez attrayante sur le papier fait pour autant débat dans la communauté blockchain car elle serait moins sécurisée que la preuve de travail. En pratique, comme elle ne coûte rien à un utilisateur qui déciderait de se mettre à minter, à la différence d’un mineur sur Bitcoin qui investit dans le matériel et dans l’électricité, les utilisateurs malveillants seraient plus enclins à se lancer dans une tentative de fraude, après tout il suffit juste de posséder quelques exemplaires de la monnaie pour minter. Toutes les crypto-monnaies ayant implémenté la preuve d’enjeu ont tenté jusqu’à présent de mettre en place des gardes fous pour limiter cette facilité qu’aurait un utilisateur à tirer parti de la preuve de participation pour récupérer de l’argent malhonnêtement. Mais cela sera-t-il suffisant pour donner confiance aux utilisateurs ? Rien n’est moins sûr.

Et pour finir sur le consensus

En conclusion, il existe encore de nombreuses méthodes d’obtention du consensus sur une blockchain, parmi celles-ci, on peut citer par

Chacune de ces méthodes apporte son lot d’avantages et d’inconvénients, son niveau de maturité et des implémentations plus ou moins abouties ou éprouvées. Le chemin est encore long et il y a fort à parier que de nouveaux modes de consensus émergeront dans les mois et année à venir pour tenter de combler la lacune écologique de la preuve de travail.