Blockchain : quels impacts sur la société ?

Publié Par Gerard Drean, le dans Technologies

Par Gérard Dréan.

Blockchain : quels impacts sur la société ?

Blockchain et Bitcoin By: BTC KeychainCC BY 2.0

Dans la première partie, nous avons suivi le fonctionnement de la chaîne de blocs (blockchain) dans l’environnement d’un réseau pair à pair ouvert, en utilisant le cas de Bitcoin. Dans cette deuxième partie, nous allons présenter les implications de cette architecture en termes de fiabilité, de sécurité et de résistance aux attaques des tous ordres et de toutes provenances.

Fiabilité et sécurité de la blockchain

Plus que la structure de la chaîne de blocs, c’est l’extrême redondance du fichier principal et des opérations de construction de ce fichier qui est l’originalité la plus marquante de Bitcoin et des systèmes qui en dérivent. Une application informatique qui utiliserait la même structure de fichiers, mais implantée sur un seul ordinateur ou sur un petit nombre d’ordinateurs appartenant à des organisations apparentées, ne jouirait évidemment pas des mêmes propriétés.

Cette redondance assure la continuité de service 24 heures sur 24. Chaque ordinateur peut se déconnecter ou tomber en panne sans mettre en péril le bon fonctionnement de l’ensemble du système. S’il s’agit d’un nœud complet, le protocole de construction de la chaîne de blocs reconstruira automatiquement la portion manquante avec l’aide des nœuds voisins quand il redeviendra opérationnel.

Tant qu’il a accès à Internet, un utilisateur trouvera toujours un nœud du réseau pour accepter et relayer une écriture, et il se trouvera un grand nombre de mineurs et de nœuds complets pour l’inscrire et la rendre accessible dans leur chaîne de blocs. Toutes les écritures, même celles qui sont créées dans un pays où n’existe aucun nœud du réseau Bitcoin, seront traitées par des ordinateurs situés partout dans le monde, et seront lisibles en tout point du monde ayant accès à Internet. Le seul moyen d’arrêter le système, c’est d’arrêter Internet.

Une redondance essentielle contre la fraude

Cette même redondance, jointe au « principe de précaution » selon lequel chaque nœud du réseau vérifie la validité de tout ce qu’il reçoit avant de l’utiliser, rend impossible la propagation d’écritures frauduleuses. Toutes les erreurs et toutes les fraudes sont possibles sur un ordinateur particulier, qu’elles soient le fait de l’opérateur du site ou d’un pirate qui manipule ce site. Il est même possible qu’elles se propagent localement par contagion ou par connivence. Mais il est pratiquement impossible que cette pollution se propage à un pourcentage significatif des exemplaires de la chaîne de blocs, et encore moins à l’ensemble du réseau.

En revanche, tout appareil dont les fonctions ne sont pas dupliquées dans le réseau reste vulnérable. C’est notamment le cas des porte-clés individuels, qui détiennent la correspondance entre les numéros de compte et l’identité de leurs détenteurs, et des systèmes servant de portail d’entrée/sortie, par exemple les sites de change avec les autres devises ou d’interconnexion avec des  informatiques d’entreprise. La sécurité et la confidentialité de ces systèmes périphériques sont la responsabilité de leurs opérateurs. Pirater un wallet ou un site de change peut avoir des conséquences dramatiques pour leurs utilisateurs (c’est par exemple la seule façon de « voler » des bitcoins), mais est sans effet sur le système Bitcoin proprement dit, de la même façon que voler le portefeuille de quelqu’un ne met pas en danger le système bancaire. Quand on met fin aux activités d’une plate-forme d’échanges illicites telle que Silk Road, c’est toutes proportions gardées comme si on démantelait une maffia ; contrairement à ce qu’on lit souvent dans la presse, le système Bitcoin lui-même ne s’en porte que mieux.

Changements de logiciel

Jusqu’ici, nous avons supposé implicitement que tous les ordinateurs du réseau utilisent les mêmes logiciels pour chaque rôle qu’ils jouent. Il existe des logiciels reconnus comme standard par la communauté, mais les opérateurs ont l’entière liberté d’en utiliser d’autres, que ce soit pour des besoins locaux, ou à titre expérimental, dans un but frauduleux ou simplement par erreur ou négligence. Que se passe-t-il alors ?

Tant que les logiciels installés sur tous les nœuds mettent en œuvre les mêmes protocoles de validation des écritures et des blocs et le même mécanisme de consensus, et quelles que soient leurs différences par ailleurs, les deux étapes essentielles de la construction de la chaîne de blocs se déroulent de la même façon sur tous les nœuds et produisent des exemplaires identiques de la chaîne. Cela autorise d’innombrables expérimentations et variantes en termes de convivialité, de performances ou de fonctionnalités annexes, sans effet sur les fonctions centrales du système. Les seules fonctions véritablement critiques sont :

  • le protocole de validation des écritures, utilisé dans la diffusion des écritures, dans la construction des blocs et dans la construction de la chaîne de blocs,
  • le protocole de validation des blocs (qui utilise lui-même le protocole de validation des écritures) et les règles de consensus, qui sont mis en œuvre par le programme de construction de la chaîne de blocs.

Si des nœuds différents utilisent des protocoles de validation des écritures différents, chaque nœud ne conserve et ne rediffuse que les seules écritures qu’il reconnaît comme valides. Si un nœud sert un ou plusieurs mineurs, ceux-ci n’incorporent donc dans les blocs qu’il construisent que les écritures que ce nœud a validées. Ces blocs sont diffusés à tous les nœuds, mais chacun n’est accepté que par les nœuds qui appliquent les mêmes règles que le mineur qui l’a construit. Le réseau se divise alors en plusieurs populations qui construisent et utilisent des chaînes de blocs différentes. Il en va de même si le protocole de validation des écritures est le même, mais si les blocs ont des formats différents, ou si la règle de consensus est différente.

Puisque chaque nœud conserve en attente dans une sorte de branche secondaire les blocs qu’il n’a pas incorporés à sa chaîne de blocs, cette situation est appelée bifurcation (« fork »). Mais il est plus exact de décrire le phénomène comme une scission de la population des nœuds, qui utilisent maintenant des chaînes de blocs différentes.

Si les protocoles sont suffisamment différents pour que les écritures et les blocs acceptés par chacun d’eux soient rejetés par l’autre, les blocs produits par les mineurs de chaque population ne sont reconnus comme valides que par les nœuds de cette seule population. La scission est alors totale (« hard fork ») entre des réseaux distincts qui enregistrent de façon séparée des écritures de natures différentes, le système se chargeant de faire le tri.

Et ça donne quoi pour le bitcoin ?

Dans le cas de Bitcoin (et autres systèmes de paiement), rappelons que posséder des bitcoins, c’est en réalité pouvoir accéder à des transactions qui créditent mon compte. Puisque chacun ne peut alors accéder qu’aux transactions inscrites dans la chaîne de blocs de la population dont il fait partie, et ne peut enregistrer de nouvelles transactions que sur cette même chaîne de blocs,  aucune transaction entre membres de populations différentes n’est alors possible à travers la chaîne de blocs. On a en pratique deux monnaies différentes entre lesquelles le change n’est possible que par des moyens extérieurs au système Bitcoin. Autrement dit, une monnaie est définie par un protocole de validation des transactions et un protocole de validation des blocs.

Un autre cas, particulièrement important, est celui de l’introduction de nouvelles possibilités par évolution du logiciel. Dans ce cas, les écritures reconnues comme valides par le protocole existant le sont généralement par le nouveau protocole, mais ce dernier valide également des écritures qui n’étaient pas acceptées par l’ancien protocole. Dans la population B qui utilise le nouveau protocole, la chaîne contient toutes les écritures. Dans la population A qui a conservé l’ancien protocole, la chaîne de blocs ne contiendra que des écritures à l’ancienne norme, et les blocs « mixtes »produits par les mineurs de B seront conservés en attente sans vérification.

A partir du moment où un nœud de A installe la nouvelle version du logiciel, il acceptera le premier bloc valide en provenance d’un mineur de B, et il est très probable que la chaîne qui conduit à ce bloc aura demandé plus de travail que la branche courante. C’est donc cette branche qui doit devenir la branche principale locale, sous réserve que les blocs qui la composent et qui avaient été mis en attente soient validés un à un à partir de la bifurcation. Si cette validation réussit, ce nœud rejoint ainsi la population B. Une telle bifurcation temporaire, qui est corrigée automatiquement au moment du changement de logiciel, est appelée « soft fork ».

Cette réorganisation peut remettre en question certaines écritures présentes dans l’ancienne chaîne si elles ne figurent plus dans la nouvelle. C’est pour cette raison qu’il est sage de ne considérer une écriture comme définitive qu’après qu’un certain nombre de blocs a été enregistré à sa suite dans la chaîne (typiquement une petite dizaine).

Fraude et prise de contrôle

Toute tentative de fraude exige de remplacer les logiciels critiques par un protocole plus « permissif » sur un nombre suffisant de nœuds, sans quoi une écriture litigieuse ne pourrait pas se propager à travers le réseau.  Mais les écritures frauduleuses ne seront acceptées et retransmises que par les seuls nœuds qui ont adopté ce logiciel, et donc l’effet de ces écritures frauduleuses sera limité aux seuls fraudeurs.

De même, le seul moyen de prendre le contrôle du système, dans quelque but que ce soit, est de prendre le contrôle d’une majorité des mineurs et d’une majorité des nœuds complets. Pour pouvoir créer des transactions frauduleuses, il faut en effet qu’il existe des mineurs pour les inclure dans des blocs, et des nœuds complets qui ajoutent ces blocs à leur chaîne. Mais quel que soit le nombre de ces mineurs, leurs blocs ne seront acceptés que par les nœuds eux-mêmes frauduleux, et la norme de la majorité des nœuds complets restera la norme majoritaire. C’est la majorité des nœuds complets qui est déterminante, donc in fine la majorité des utilisateurs, à condition toutefois que la population des nœuds complets soit suffisamment nombreuse et représentative de la population des utilisateurs.

Or, si chacun est libre d’installer sur son ordinateur les logiciels de son choix et de les modifier à sa guise, personne n’a le pouvoir d’imposer un logiciel ou un protocole à l’ensemble du réseau. Cette même liberté permet à chacun, dans son propre intérêt, de s’en tenir aux logiciels standard qui respectent les règles communes. Il est donc pratiquement impossible de prendre le contrôle du système étant donné le nombre, la dispersion géographique et l’indépendance des participants, et l’intérêt qu’ils portent au bon fonctionnement du système.

Les auteurs de logiciels proposent des disciplines, mais n’interviennent pas dans leur mise en application. S’il y a plusieurs disciplines en concurrence, chacun des opérateurs des nœuds du réseau reste libre de choisir entre elles, voire de mettre en œuvre une autre qui lui est propre, et de la proposer à son tour aux autres. Les opérateurs des nœuds « votent » de façon continue par leur comportement lui-même et non par un vote préalable dont le résultat contraindrait les opposants à se plier à la loi de la majorité. Chacun décide pour lui-même selon ses préférences propres, et supporte les conséquences de son choix, en décidant de faire sécession et au risque d’être exclu. De façon automatique, les fraudeurs s’excluent d’eux mêmes, les dissidents s’organisent en communautés séparées et les pionniers forment des avant-gardes isolées par une barrière protectrice.

On reconnaîtra une mise en œuvre des principes libéraux formulés par les penseurs des Lumières, et la notion d’ordre spontané qui en découle, où chacun conserve le maximum de liberté, dont celle de s’associer à ceux qui partagent les mêmes options, à l’intérieur d’un ensemble dont l’harmonie résulte de la composition des actions individuelles et non de l’action d’un gouvernement central.

Conclusion

Pour y voir clair et raisonner juste, il faut réserver le terme blockchain ou chaîne de blocs à une simple technique de stockage d’informations utilisable dans de nombreux systèmes, qui se différencient principalement par la nature des informations qu’ils traitent et par leurs modalités d’implantation et de gouvernance. Il est tout à fait insuffisant de parler de chaîne de blocs (ou de blockchain) et d’en évoquer le potentiel sans préciser pour quel(s) type(s) d’écritures elle est utilisée et surtout sur quel réseau elle est implantée, notamment son caractère ouvert ou fermé, le nombre de ses nœuds et l’identité de leurs opérateurs.

A l’intérieur du système de gestion de la chaîne de blocs, la nature des informations stockées est définie de façon opérationnelle par le sous-programme qui met en œuvre le protocole de validation des écritures. En faisant varier ce sous-programme, la technologie peut être utilisée dans une très grande variété d’applications.

Dans le cas particulier des « cryptomonnaies », ou plutôt des cybermonnaies puisque les transactions y sont conservées en clair et ne sont justement pas cryptées, il convient de mettre l’accent sur les systèmes de paiement et non sur les « monnaies », ce qui évite en particulier les débats oiseux du genre « le bitcoin est-il vraiment une monnaie ? ». Chaque cybermonnaie n’est que la composante d’un système de paiement particulier, utilisable par les seuls utilisateurs de ce système, dans des conditions fixées par le système. On peut donc s’attendre à voir coexister de nombreux systèmes, avec leurs monnaies associées, destinés à des usages différents par des populations différentes, voire en concurrence pour le même usage par la même population. La place relative de ces monnaies, et leur place par rapport aux monnaies traditionnelles, seront le résultat de ce processus concurrentiel.

Au total, on voit que systèmes à base de chaîne de blocs tirent leurs propriétés distinctives et leur potentiel de changement sociétal beaucoup plus de leur implantation sur un réseau pair à pair ouvert que de la structure de fichier qu’ils utilisent. Ce sont les modalités d’implantation et de gouvernance du réseau qui sont cruciales. Dans un système traditionnel géré par une entreprise unique, ou même par un consortium constitué à cet effet, l’opérateur du système conserve le pouvoir de modifier à tout moment et de façon quelconque les logiciels qui y sont implantés et les informations que lui confient les utilisateurs, quelle que soit la structure de fichier qu’il utilise. Un organisme malveillant peut corrompre ou pirater les informations et les opérations de traitement. Un État autoritaire peut imposer des règles contraires aux intérêts des utilisateurs. Le choix de la structure en chaîne de blocs est un choix purement technique sans importance sociétale, qui ne modifie pas les rôles des différents acteurs ni leurs relations.

Dans un réseau pair à pair ouvert, où de très nombreux opérateurs indépendants localisés dans de nombreux pays, sur tous les continents, assurent chacun de son côté les fonctions de gestion des informations au bénéfice de l’ensemble, chaque nœud peut être manipulé de la même façon, mais les dégâts qui en résultent ne peuvent pas se propager à l’ensemble du système. Il restera toujours une majorité de nœuds et de mineurs pour respecter les règles sur lesquelles les utilisateurs fondent leur confiance, et les autres seront isolés par l’application de ces règles. Au lieu de devoir placer sa confiance dans un ou des organismes bien identifiés mais faillibles et vulnérables, l’utilisateur place ici sa confiance dans le système lui-même, à cause du nombre et de l’indépendance de ses nœuds et de la motivation de ses utilisateurs, qui résultent du caractère ouvert du réseau.

Une distinction tout à fait fondamentale doit être faite entre les systèmes ouverts (unpermissioned) où la participation est entièrement libre comme Bitcoin ou Ethereum, et les systèmes fermés (permissioned) où certaines fonctions exigent l’approbation préalable d’un organe de contrôle plus ou moins centralisé (Ripple, Hyperledger ou les systèmes au service de consortiums d’entreprises). Mais ces derniers peuvent également remettre en cause des privilèges. De la même façon que Bitcoin permet aux particuliers et aux entreprises de se passer des banques pour leurs transactions, un système reposant sur les mêmes technologies et opéré par un consortium de banques permet à celles-ci de se passer de banque centrale pour leurs opérations interbancaires.

Grâce au réseau pair à pair, le phénomène habituellement désigné par le terme blockchain s’inscrit dans le grand mouvement d’économie collaborative (ou participative) qui touche actuellement toute la société, où non seulement les clients et les utilisateurs sont en relation directe, mais il où n’y a plus de différence entre utilisateurs de services et prestataires de services, les utilisateurs participant à leur guise à la production, grâce à l’éclatement de toutes les activités en opérations distinctes que chacun entreprend de réaliser selon ses possibilités et ses motivations. Cette forme de division du travail va plus loin que des offres comme Uber ou AirBnB, puisqu’il n’existe même plus de point central privilégié pour assurer la mise en relation des uns et des autres, comme une centrale de réservation qui serait l’analogue d’un gouvernement local, avec tous les avantages, mais aussi tous les risques qui y sont attachés.

 

  1. Excellent article, merci pour cette analyse

Les commentaires sont fermés.