Bitcoin est une solution au problème des généraux byzantins


Pour le lecteur avide de comprendre la reine des cryptomonnaies, entendre parler pour la première fois de généraux byzantins peut paraître déroutant. A-t-on vraiment besoin d’une leçon d’Histoire ? En réalité, nous n’allons nullement évoquer le berceau de la culture orientale. Nous allons nous attarder sur un concept-clé en informatique et en théorie des jeux : la confiance.

Leslie Lamport

Le premier à s’être penché sur le problème de la confiance avec le point de vue d’un informaticien se nomme Leslie Lamport. Lamport est une référence dans le monde informatique. Il est lauréat de nombreux prix, dont le prix Turing (2013), qui n’est ni plus ni moins que l’équivalent du prix Nobel pour les informaticiens.

En 1982, le chercheur et académique américain aborde de manière théorique la notion de confiance dans les premiers systèmes informatiques. Essentiellement, il s’applique à étudier la gestion des possibles défauts techniques – ou de malveillance au sein des réseaux décentralisés.

Pour commencer, il se propose d’illustrer par un énoncé le plus simple possible l’ensemble des difficultés qui doivent être surmontées. Il pense alors à une analogie avec des généraux byzantins… et le problème homonyme est né.

NDLR

Les informaticiens aiment bien inventer des histoires originales qui aident à décrire leurs théories. Il en existe d’autres, par exemple le problème dit ‘du dîner des philosophes’ qui traite de l’allocation de ressources en informatique théorique.

Les généraux byzantins


L’énoncé de Lamport peut se formuler ainsi :

Des généraux byzantins sont dispersés autour d’une ville et font le siège de celle-ci. Pour remporter la victoire, ils doivent communiquer entre eux et coordonner un plan de bataille. Malheureusement, certains généraux sont peut-être des traîtres dont la parole n’est pas fiable et de plus, leurs messages peuvent être bloqués ou modifiés par l’ennemi sans que l’on s’en aperçoive.

Comment faire ?’

Dans une structure totalement décentralisée où il n’existe aucune autorité, la coordination des actions et la légitimité des informations sont capitales pour contrecarrer toute défaillance ou comportement malveillant. Cela soulève une question fondamentale sur la nature de la confiance et de la coopération dans ce genre de système.

Effectivement, pour parvenir à un consensus, les généraux sont tenus de coopérer et de se faire confiance mutuellement, ce qui peut être difficile à garantir sans autre hypothèse par ailleurs. Le principal défi posé par le problème des généraux byzantins est donc la nécessité de garantir la sécurité et la robustesse de la ‘vérité’ en dépit d’erreurs, voire d’attaques, pour arriver à prévenir leurs conséquences désastreuses.

De manière imagée, les généraux sont les nœuds du réseau distribué qui doivent prendre une décision unanime sur un état à valider ou sur une action à entreprendre, en tenant compte de la possibilité de communication défaillante ou de nœuds qui envoient des informations contradictoires. Dans ce contexte, ils doivent parvenir à un consensus malgré les possibles erreurs ou ‘mensonges’ qui leur sont transmis.

Des protocoles

De manière globale, Lamport a démontré qu’il n’existe pas de solution toute faite à son problème mais que certains cas particuliers permettent d’instaurer un niveau de confiance relative. Et pour y arriver, il est nécessaire de recourir à des protocoles de consensus, autrement dit des règles de communication strictes sur ‘ce qui est vrai’, qui vont garantir que les nœuds ‘honnêtes’ parviennent à se mettre d’accord même en présence de ‘malhonnêtes’. Ainsi, plusieurs protocoles ont été proposés tels que l’algorithme de consensus Lamport, Shostak et Pease, l’algorithme de consensus Paxos ou encore l’algorithme de consensus Byzantine Fault Tolerance. Nous n’entrerons pas dans les détails de ceux-là.

Une singularité

Mais nous allons en observer un remarquable : Bitcoin.

Le protocole Bitcoin est un cas particulier – une singularité – qui, en réalité, contourne de manière habile le problème des généraux byzantins en ajoutant des conditions fortes à l’énoncé de Lamport. C’est d’une importance capitale car dans un monde cryptomonétaire, il est essentiel que tous les participants du réseau parviennent à un consensus sur les transactions qui sont valides et légitimes. Si certains nœuds du réseau arrivaient à transmettre des informations incorrectes ou malveillantes, cela compromettrait l’intégrité du système, rendrait possibles les fraudes ou les attaques et entraînerait une perte de confiance dans le registre de transactions.

Le système distribué structuré

Le réseau Bitcoin fonctionne de manière structurée, ce qui signifie que chaque nœud communique avec plusieurs autres et chacun des autres fait de même, et ainsi de suite jusqu’à ce qu’ils se touchent tous en se servant des autres comme relais.

Dans ce type de réseau où il existe plusieurs voies de transmission possibles et où ces voies peuvent varier au hasard des connexions, il devient impossible pour un attaquant de bloquer l’envoi d’une information vers son destinataire ou l’ensemble des participants.

La cryptographie asymétrique

L’usage de la cryptographie asymétrique (à deux clés) permet de signer ses messages de manière à pouvoir s’authentifier en tant qu’origine légitime de la transaction. On ne peut donc pas se faire passer pour quelqu’un d’autre et dépenser ses fonds (à moins bien sûr d’être en possession de sa clé secrète… ou être parvenu à casser des algorithmes de chiffrement inviolables !)

La preuve de travail

La preuve de travail est le mécanisme fondamental qui permet d’arriver à un consensus que nous appellerons ‘de solidité’. Une compétition/loterie par lequel les mineurs – certains nœuds du réseau – se donnent librement du mal pour tenter de résoudre des puzzles cryptographiques longs et fastidieux et ainsi pouvoir écrire les transactions sur le registre. En résolvant ces puzzles, ils ajoutent ainsi de nouveaux blocs à la blockchain et gagnent des bitcoins. Cette preuve de travail est conçue pour être difficile à effectuer par les mineurs, mais très facile à vérifier par le reste du réseau. De la sorte, elle contribue à le sécuriser en rendant trop coûteuse et hasardeuse pour un attaquant toute tentative de modifier la blockchain (i.e. changer le contenu des transactions).

Le registre blockchain


En suite logique, ce qui permet à Bitcoin d’adresser le problème des généraux byzantins, c’est la transparence et l’immutabilité de sa blockchain, ce registre public et partagé qui enregistre l’ensemble des transactions effectuées sur le réseau Bitcoin depuis sa genèse. Chaque nouveau bloc ajouté à la blockchain par un mineur contient un ensemble de transactions qui sont transparentes à l’ensemble du réseau.

Cette transparence permet à tous les nœuds de vérifier l’exactitude des transactions et de s’assurer que les règles du protocole Bitcoin ont bien été respectées. Grâce à la preuve de travail, dès qu’une transaction est enregistrée dans un bloc, elle ne peut plus être modifiée ou effacée sans refournir cet effort extrême, ce qui garantit l’intégrité des données et renforce la confiance. Cette immutabilité est bien évidemment indispensable car elle empêche toute manipulation ou falsification des données de transaction. En rendant les transactions irréversibles et permanentes, la blockchain Bitcoin offre la garantie que les décisions prises par le réseau sont définitives et ne peuvent pas être remises en cause.

La faiblesse et le contournement

Mais au début de son document fondateur, le créateur de Bitcoin relève que cette combinaison de procédés n’est valable que tant qu’une majorité de la puissance de calcul sur le réseau ne collabore pas pour l’attaquer. De fait, en tant que tel, Bitcoin ne contrecarre pas une hypothèse selon laquelle la majorité des généraux seraient des traîtres qui s’allieraient contre quelques honnêtes restants. C’est sa faiblesse théorique. Mais il contourne cette hypothèse.

Petit regard sur la théorie des jeux…

Un bref coup d’œil sur cette part très sérieuse des mathématiques permet de comprendre pourquoi les participants respectent et suivent les règles du protocole Bitcoin. Tout le monde est incité à agir honnêtement, soit pour profiter simplement de son usage, soit pour obtenir une récompense. Les intérêts de l’individu et du groupe sont en permanence alignés. Quant aux différents modes d’attaque et leurs coûts potentiels, ils rendent les tentatives de tricherie impossibles à dissimuler et non rentables économiquement.

En résumé

Bitcoin constitue une solution de contournement élégante au problème des généraux byzantins, c-à-d au problème de la confiance dans les réseaux informatiques. En combinant le système distribué, la cryptographie, la preuve de travail et un registre immuable motivé par la forte incitation économique, il établit un consensus dont la fiabilité et la robustesse sont inédits. En délégant à tous la vérification des transactions et en rendant les attaques hasardeuses et économiquement non viables, Bitcoin nous montre comment la théorie des jeux et la cryptographie peuvent être employées pour instaurer de la confiance sans autorité.

Un nouveau modèle du genre…

Les implications de cette découverte sont vastes et vont au-delà du simple usage monétaire pour s’adresser également aux nombreux domaines où la sécurité et la confiance sont essentielles. Bitcoin n’est ni plus ni moins que leur ‘victoire byzantine’.