Recherche
Comprendre l’infrastructure des systèmes distribués
Depuis la création du bitcoin et les innovations ultérieures dans le domaine des technologies blockchain, nous assistons à un regain d’intérêt pour les systèmes distribués et les réseaux peer-to-peer. Bien que les réseaux blockchain soient un paradigme relativement nouveau, les fondements sur lesquels ils reposent remontent aux années 1960 avec l’émergence des premiers réseaux informatiques.
Pour comprendre la technologie des blockchains, il est utile d’avoir une connaissance de base du domaine de l’informatique dont elles sont issues, l’informatique distribuée.
Cet article s’attache à classer les réseaux blockchain dans le champ d’étude plus large connu sous le nom de systèmes distribués, et différencie les technologies blockchain des technologies de grands livres numériques.
Informatique distribuée (distributed computing)
L’histoire de l’informatique distribuée est étroitement liée à celle de l’Internet et des réseaux primitifs qui l’ont précédé. Lorsque les réseaux informatiques ont commencé à émerger dans les années 1960, l’idée qu’ils pouvaient agir à l’unisson pour atteindre des objectifs communs est devenue évidente. Un des premiers exemples de système distribué était ARPANET, le précurseur de l’Internet moderne, et plus tard le courrier électronique ARPANET, qui a été mis en ligne au début des années 1970.
Les systèmes distribués sont constitués de plusieurs unités de calcul indépendantes et interconnectées (nœuds), chacune possédant sa propre mémoire. Les nœuds communiquent entre eux en se transmettant des messages selon un protocole commun. Ces protocoles sont parfois appelés « réseaux de commérage ».
Les nœuds des systèmes distribués travaillent en coordination pour atteindre un objectif commun. Dans de nombreux cas, l’objectif est de résoudre de grands problèmes de calcul qui seraient autrement inaccessibles à un seul ordinateur. Cependant, ils possèdent d’autres qualités que les capacités de calcul supérieures du système.
- Tolérance aux pannes : le système peut continuer à fonctionner si certains nœuds tombent en panne, jusqu’à un certain seuil.
- Connaissance partielle : chaque nœud n’a accès qu’à une partie des données traitées par le système dans son ensemble.
Parmi les exemples de systèmes distribués figurent les réseaux de télécommunications, tels que les réseaux cellulaires, les applications de réseau, telles que le World Wide Web et Bitcoin, les systèmes industriels, tels que les systèmes de contrôle du trafic aérien, et les réseaux de calcul parallèle, tels que le rendu vidéo distribué et le projet du génome humain.
Les grands livres distribués
Un grand livre distribué est un système de données numériques répliquées, partagées et synchronisées, réparties géographiquement sur plusieurs sites, pays ou institutions. Un réseau pair-à-pair de nœuds (participants) prend part à un protocole de consensus assurant la réplication des données sur tous les nœuds.
Souvent appelé « technologie des grands livres distribués » (DLT), ce terme peut prêter à confusion. En effet, il ne s’agit pas nécessairement d’une technologie unique, mais plutôt de plusieurs concepts et technologies, que l’on peut déployer en tant que système. Il existe plusieurs vendeurs et projets open-source qui proposent des logiciels DLT spécialisés dans un large éventail d’applications.
Hypothèses du trust
Les grands livres distribués fonctionnent selon un modèle de confiance contradictoire dans lequel on ne peut pas faire confiance aux autres nœuds. Les participants à un réseau de grands livres distribués supposent que les autres participants ne sont pas dignes de confiance, mais ils coopèrent pour présenter une source unique de vérité aux utilisateurs externes. Il n’y a pas d’autorité centrale ou d’administrateur dans un réseau de grands livres distribués.
Cela contraste avec les bases de données distribuées, qui existent dans les applications de production depuis plusieurs décennies. Bien qu’elles partagent de nombreuses similitudes avec les grands livres distribués, il y a un aspect qui les distingue généralement : la confiance entre les participants. En effet, les participants à une base de données distribuée fonctionnent en supposant que les autres nœuds sont dignes de confiance. C’est pourquoi les bases de données distribuées sont généralement déployées et contrôlées par un seul administrateur.
Propriétés des grands livres distribués
Les grands livres numériques possèdent trois propriétés principales.
Immuable
Par rapport aux bases de données traditionnelles qui fonctionnent selon le modèle CRUD (créer, lire, mettre à jour, supprimer), les grands livres distribués sont des appendices seulement. Cela signifie que les utilisateurs peuvent uniquement lire et ajouter des enregistrements – les enregistrements ne peuvent être ni modifiés ni supprimés.
Partagé
Le grand livre est accessible et maintenu par un groupe de participants qui ont un intérêt commun à disposer de données exactes.
Distribué
Les données sont dupliquées et répliquées sur les nœuds des participants, ce qui les rend résistantes aux pannes et à la censure.
Ces propriétés rendent les grands livres distribués hautement résilients et, en tant qu’artefact, infalsifiable.
Exemples d’applications de grands livres distribués
- Graphique de hachage
- Graphique orienté acyclique
- Blockchain
Une blockchain est un type de registre distribué dans lequel les données sont regroupées dans une liste croissante d’enregistrements appelés blocs qui se réfèrent les uns aux autres à l’aide de la cryptographie. Chaque bloc contient une empreinte cryptographique (hachage) du bloc précédent, un horodatage et des données brutes.
Les chaînes de blocs héritent du concept de grand livre distribué, en ce sens que leurs données sont a) répliquées, b) partagées entre les participants, et c) synchronisées entre les participants. Les blockchains offrent généralement la possibilité de générer un consensus permettant aux participants d’établir une source unique de vérité sur l’intégrité des données. En théorie, un protocole blockchain peut n’avoir qu’un seul participant et perdre ainsi sa caractéristique distribuée. Bien qu’en pratique, cette configuration soit peu utile, ne serait-ce que dans les phases initiales de la vie d’un réseau blockchain où l’objectif est d’ajouter des participants par la suite.
Les réseaux de chaînes de blocs sont bien adaptés aux applications où les parties prenantes ont besoin a) de données horodatées, b) de l’enregistrement de leur mutation dans le temps, et c) de la préservation et de l’assurance de l’intégrité de l’état de ces données. En pratique, les applications les plus courantes sont issues de la finance.
Technologies de la chaîne de blocs et applications financières
Les marchés financiers exigent l’intégrité des données et la symétrie des informations entre les participants. Ces garanties sont aujourd’hui assurées par la surveillance réglementaire des acteurs du marché, où le mandat du gouvernement permet d’assurer des conditions de concurrence équitables pour les participants et le bon fonctionnement des marchés. Dans les structures de marché traditionnelles, les participants s’appuient sur les infrastructures, les informations et les services fournis par des entités privées pour créer un environnement de marché fiable.
Les applications financières basées sur la blockchain déplacent certaines formes de confiance des autorités et des entités réglementées vers les protocoles cryptoéconomiques. Ces applications existent sur des réseaux peer-to-peer composés de parties prenantes anonymes ou semi-anonymes. Ces réseaux sont généralement qualifiés de réseaux blockchain « publics », dans la mesure où ils fonctionnent sur l’internet public et permettent à quiconque d’interagir avec le protocole.
Exemples où la confiance est déplacée
- Solvabilité du marché monétaire composé : la solvabilité peut être vérifiée et assurée par le réseau blockchain sans qu’il soit nécessaire qu’une autorité maintienne la solvabilité du système.
- Règlement des transactions : les transactions sont réglées et vérifiées par le réseau blockchain sans qu’il soit nécessaire qu’une autorité ou un intermédiaire réglementé en vérifie la validité.
Exemples où la confiance n’est pas transférée
- Prévention des délits d’initiés : le rôle des autorités reste le même, car le réseau blockchain ne peut pas garantir des conditions de concurrence équitables face aux délits d’initiés par défaut.
Exemple où les autorités ont un rôle potentiellement plus important à jouer
- Risque systémique dans les protocoles blockchain, où la défaillance d’un protocole peut entraîner des effets en cascade sur d’autres protocoles, conduisant à un effondrement de l’activité du marché.
Les protocoles crypto-économiques réduisent la dépendance à l’égard des intermédiaires en alignant les incitations économiques. Dans le cas des réseaux blockchain, ces incitations motivent les participants à fournir les données horodatées, fiables et symétriques nécessaires au fonctionnement des marchés. En effet, la technologie blockchain crée une nouvelle couche de base pour l’émergence de diverses formes de marchés et l’épanouissement d’instruments financiers intéressants.
Comprendre le spectre « ouvert-fermé » de la blockchain
Depuis l’émergence des réseaux de blockchains qui permettent l’exécution programmatique de transactions (par exemple, Ethereum), les blockchains dites « publiques » et « privées » ont fait l’objet de discussions. Elles peuvent également être appelées familièrement réseaux « sans permission » et « avec permission », respectivement.
La distinction entre les réseaux blockchain privés et publics repose uniquement sur leur mise en œuvre – la pile technologique sous-jacente n’a aucun moyen de comprendre sa propre configuration. En effet, il est possible de configurer un réseau blockchain de manière à ce que l’accès soit plus, ou moins, ouvert.
Il est plus approprié de parler de systèmes ouverts ou fermés fonctionnant sur des réseaux de blockchains. Comme nous allons le voir, il existe des nuances qui peuvent rendre un réseau blockchain plus ou moins ouvert. Le terme « ouvert » est plus approprié, tout comme une porte qui peut être ouverte à une multitude de degrés, les réseaux blockchain peuvent être configurés de n’importe quel nombre de façons qui créent un gradient sur le spectre ouvert-fermé. Cela contraste avec la terminologie publique et privée souvent utilisée, qui ne laisse aucune place à la lumière entre ces deux extrêmes.
Note : Il ne faut pas confondre l’accès libre avec le concept de logiciel libre. Bien que l’écrasante majorité des protocoles blockchain soient effectivement en open-source, cela fait référence à une idée différente.
Le terme « ouvert » fait référence à la possibilité pour toute personne morale de tirer parti de la blockchain pour mener ses activités. Un réseau blockchain ouvert est une plateforme autonome sur laquelle une activité économique peut se produire, ce qui signifie que n’importe qui peut participer au marché en validant des transactions, en développant des applications qui fournissent de la valeur, utilisent des services ou effectuent des transactions. En effet, les réseaux blockchain ouverts sont des plateformes économiques où les règles du marché sont appliquées par le protocole.
Les réseaux blockchain fermés servent généralement les intérêts d’un groupe de participants qui souhaitent collaborer ou faire des affaires autour d’un cas d’utilisation ou d’une application de niche. Ils sont construits sur mesure et leur accès est limité à un petit nombre d’acteurs intéressés.
Bien que les réseaux blockchain entièrement fermés, ou « autorisés », aient semblé répondre à un sous-ensemble d’applications dans la première phase de développement de la technologie, les progrès en matière d’évolutivité, de confidentialité et de sécurité permettent à la plupart des applications d’exister sur des réseaux ouverts. Ce changement est analogue à la façon dont les intranets d’entreprise, courants dans les années 90 et au début des années 80, sont passés au cloud au cours de la dernière décennie. De même, au fur et à mesure que les technologies progressent et sont acceptées, les réseaux blockchain ouverts s’empareront de la plupart des applications. En outre, tout comme pour l’infrastructure Internet, il est possible de créer des applications « fermées » sur des réseaux blockchain ouverts.
Remarque : les réseaux « privés » ou « autorisés » ne doivent pas être confondus avec les technologies de registres distribués, décrites précédemment. En effet, une blockchain est une forme de DLT. Cependant, une DLT n’est pas une blockchain. Il peut exister une DLT qui n’incarne pas toutes les propriétés d’une blockchain, quelle que soit sa configuration.
En résumé, l’idée de réseaux blockchain ouverts et de réseaux fermés ne sont pas en stricte opposition les uns avec les autres. Il existe des nuances et des gradients d’accès autorisé, ce qui rend difficile de classer chacun de ces concepts dans des catégories bien définies.
Rôles des participants au réseau
Lorsqu’il interagit avec un réseau de blockchain, un participant peut jouer trois grands rôles :
- l’utilisateur de l’application, comme l’envoi et la réception de transactions, et l’interaction avec les applications ;
- développeur d’applications, comme le développement et le déploiement de contrats intelligents, et ;
- validateur de réseau, tel que l’approbation de blocs en participant au consensus (par exemple, minage, jalonnement).
Ces rôles peuvent se chevaucher car les participants peuvent assumer différentes fonctions (par exemple, les activités de validation de blocs nécessitent l’envoi et la réception de transactions).
Rôles des participants au réseau de la chaîne de blocs
Si, en règle générale, les réseaux de chaînes de blocs permettent un accès totalement ouvert à ces trois rôles (réseaux de chaînes de blocs dits « publics ») ou limitent l’accès aux entités autorisées (réseaux de chaînes de blocs dits « privés »), il existe des exemples pratiques et théoriques où la classification public/privé n’est pas aussi claire.
L’épine dorsale de l’Internet est construite sur des protocoles et des normes ouverts (par exemple, TCP/IP, HTTP, SMTP), et des réseaux ouverts exploités par des entreprises privées. De même, les réseaux ouverts de blockchain peuvent prendre en charge des applications de production construites par des entreprises privées avec un accès universel.
Si les réseaux de blockchains permettent généralement un accès totalement ouvert à ces trois fonctions ou limitent l’accès aux acteurs privés, il existe des exemples pratiques et théoriques où la classification ouvert/fermé n’est pas claire.
Pour illustrer certains cas où la classification ouverte vs fermée n’est pas si claire, nous pouvons opposer trois systèmes différents en cours de mise en œuvre, tous potentiellement utiles aux fins de l’émission de titres sur un réseau blockchain :
- La norme de jeton ERC20. Elle permet à un émetteur d’émettre des titres sur le réseau principal Ethereum, un réseau de blockchain public à validation ouverte. Les jetons ERC20 peuvent être transférés entre n’importe quelles paires d’utilisateurs. Aucune information d’identification n’est requise avant la soumission des transactions.
- La norme de jeton ST20. Celle-ci permet à un émetteur d’émettre des titres sur le mainnet Ethereum, un réseau de blockchain public à validation ouverte. Les transferts de jetons ST20 exigent que les comptes d’envoi et de réception aient leur identité enregistrée auprès de l’émetteur. L’émetteur peut en outre créer des politiques pour l’approbation ou le rejet des transferts de jetons ST20. Bien que l’infrastructure sous-jacente soit « ouverte », la norme ST20 qui la surmonte limite l’accès ouvert.
- Un réseau Ethereum fermé. Cela permet à l’émetteur de créer un réseau blockchain spécialement conçu pour l’émission de titres. L’infrastructure sous-jacente de la blockchain est fermée et la validation est réservée à des entités identifiées.
Conclusion
En conclusion, l’émergence des technologies blockchain a suscité une énorme attention et des recherches dans les domaines des systèmes pair-à-pair, de la cryptographie, de la théorie des jeux et des zones où ils se chevauchent. Au cours des dix dernières années, de nouveaux systèmes distribués passionnants sont apparus, qui servent des applications pratiques en crypto-finance.
Dans ce contexte, il est important de bien comprendre ces technologies, leurs caractéristiques uniques et leurs applications. À mesure que les réseaux et les applications blockchain se développent et deviennent réglementés, il est dans l’intérêt des décideurs politiques d’être précis de sorte que les entreprises privées puissent continuer à innover et que les consommateurs soient protégés.