Que signifie peer-to-peer (P2P) ?
En informatique, un réseau peer-to-peer (P2P) est défini comme un groupe d'appareils qui stockent et partagent collectivement des fichiers. Chaque participant (nœud) agit comme un pair individuel. Généralement, tous les nœuds ont la même puissance et exécutent les mêmes tâches.
Dans les technologies axées sur la finance, le terme peer-to-peer fait généralement référence à l’échange de crypto-monnaies ou d’actifs numériques via un réseau distribué. Les plateformes P2P permettent aux acheteurs et aux vendeurs d'exécuter des transactions sans avoir recours à des intermédiaires. Dans certains cas, les sites Web peuvent également fournir un environnement P2P reliant les prêteurs et les emprunteurs.
L'architecture P2P peut convenir à divers cas d'utilisation, mais elle est devenue particulièrement populaire dans les années 1990, lorsque les premiers programmes de partage de fichiers ont été créés. Aujourd’hui, les réseaux P2P servent de base à la plupart des crypto-monnaies et constituent une grande partie de l’industrie de la blockchain. Cependant, ils sont également utilisés dans d'autres applications informatiques distribuées, notamment les moteurs de recherche Web, les plateformes de streaming, les marchés en ligne et le protocole Web InterPlanetary File System (IPFS).
Comment fonctionne un système P2P ?
Essentiellement, les systèmes P2P sont gérés par des réseaux distribués d'utilisateurs. En règle générale, ils ne disposent pas d'un administrateur central ni d'un serveur, car chaque nœud possède une copie des fichiers, agissant à la fois comme client et serveur pour le reste des nœuds. Ainsi, chaque nœud peut télécharger des fichiers à partir d'autres nœuds ou y télécharger des fichiers. C'est ce qui différencie les réseaux P2P des systèmes client-serveur plus traditionnels, dans lesquels les appareils clients téléchargent des fichiers à partir d'un serveur centralisé.
Dans les réseaux P2P, les appareils connectés partagent des fichiers stockés sur leurs disques durs. À l'aide d'applications logicielles conçues pour faciliter le partage de données, les utilisateurs peuvent interroger d'autres appareils sur le réseau pour rechercher et télécharger des fichiers. À partir du moment où un utilisateur a téléchargé un fichier spécifique, il peut en être la source.
En d’autres termes, lorsqu’un nœud agit en tant que client, il télécharge des fichiers depuis d’autres nœuds du réseau. Alors que lorsqu’il fonctionne comme serveur, il deviendra la source à partir de laquelle d’autres nœuds pourront télécharger les fichiers. En pratique, cependant, les deux fonctions peuvent être exécutées simultanément (par exemple, télécharger le fichier A et télécharger le fichier B).
Étant donné que chaque nœud stocke, transmet et reçoit des fichiers, les réseaux P2P ont tendance à devenir plus rapides et plus efficaces à mesure que leur base d'utilisateurs augmente. De plus, leur architecture distribuée rend les systèmes P2P très résistants aux cyberattaques. Contrairement aux modèles traditionnels, les réseaux P2P n’ont pas de point de défaillance unique.
Nous pouvons catégoriser les systèmes peer-to-peer selon leur architecture. Les trois principaux types de réseaux P2P sont appelés : non structurés, structurés et hybrides.
Réseaux P2P non structurés
Les réseaux P2P non structurés ne présentent aucune organisation spécifique des nœuds. Les participants communiquent entre eux de manière aléatoire. Ces systèmes sont considérés comme robustes face à une activité de désabonnement élevée (c'est-à-dire lorsque plusieurs nœuds rejoignent ou quittent fréquemment le réseau).
Bien qu’ils soient plus faciles à construire, les réseaux P2P non structurés peuvent nécessiter davantage d’utilisation du processeur et de la mémoire, car les requêtes de recherche sont envoyées au plus grand nombre possible de pairs. Cela a tendance à inonder le réseau de requêtes, surtout si seul un petit nombre de nœuds proposent le contenu souhaité.
Réseaux P2P structurés
En revanche, les réseaux P2P structurés présentent une architecture organisée, qui permet aux nœuds de rechercher efficacement des fichiers, même lorsque le contenu n'est pas largement diffusé. Dans la plupart des cas, cela est réalisé en utilisant des fonctions de hachage qui facilitent la recherche dans la base de données.
Bien que les réseaux structurés puissent être plus efficaces, ils ont tendance à avoir des niveaux de centralisation plus élevés et, généralement, des coûts d’installation et de maintenance plus élevés. En dehors de cela, les réseaux structurés sont moins résistants aux taux de désabonnement élevés.
Réseaux P2P hybrides
Les réseaux P2P hybrides combinent le modèle client-serveur conventionnel avec certains aspects de l'architecture peer-to-peer. Par exemple, ils peuvent désigner un serveur central qui facilite la connexion entre pairs.
Par rapport aux deux autres types, les modèles hybrides ont tendance à présenter des performances globales améliorées. Ils combinent généralement certains des principaux avantages de chaque approche, leur permettant d’atteindre simultanément des degrés significatifs d’efficacité et de décentralisation.
Distribué vs. décentralisé
Bien que l’architecture P2P soit intrinsèquement distribuée, il est important de noter qu’il existe différents degrés de décentralisation. Ainsi, tous les réseaux P2P ne sont pas décentralisés.
En fait, beaucoup dépendent d’une autorité centrale qui guide l’activité du réseau, ce qui en fait, dans une certaine mesure, des systèmes centralisés. Par exemple, certains systèmes de partage de fichiers P2P permettent aux utilisateurs de rechercher et de télécharger des fichiers auprès d'autres pairs, mais ne peuvent pas participer à d'autres processus, tels que la gestion des requêtes de recherche.
En outre, le degré de centralisation des petits réseaux, contrôlés par une base d’utilisateurs limitée et ayant des objectifs partagés, peut être considéré comme plus élevé, malgré l’absence d’une infrastructure de réseau centralisée.
Le rôle du P2P dans les Blockchains
Aux débuts du Bitcoin, Satoshi Nakamoto l’a défini comme un « système de paiement électronique peer to peer ». Bitcoin a été créé comme une forme de monnaie numérique. Il peut être transféré d’un utilisateur à un autre via un réseau P2P, qui gère un registre distribué appelé blockchain.
Dans ce contexte, l’architecture P2P inhérente à la technologie blockchain est ce qui permet de transférer du Bitcoin et d’autres crypto-monnaies dans le monde entier, sans avoir besoin d’intermédiaires ni de serveurs centraux. De plus, n’importe qui peut créer un nœud Bitcoin s’il souhaite participer au processus de vérification et de validation du bloc.
Par conséquent, aucune banque ne traite ou n’enregistre les transactions sur le réseau Bitcoin. Au lieu de cela, la blockchain agit comme un grand livre numérique qui enregistre publiquement toutes les activités. Fondamentalement, chaque nœud contient une copie de la blockchain et la compare avec d'autres nœuds pour garantir l'exactitude des données. Le réseau rejette rapidement toute activité malveillante ou inexactitude.
Dans le contexte des blockchains de crypto-monnaie, les nœuds peuvent assumer différents rôles. Les nœuds complets, par exemple, sont ceux qui assurent la sécurité du réseau en vérifiant les transactions par rapport aux règles de consensus du système.
Chaque nœud complet conserve une copie complète et à jour de la blockchain, leur permettant de participer au travail collectif de vérification du véritable état du grand livre distribué. Cependant, il convient de noter que tous les nœuds de validation complète ne sont pas des mineurs.
avantage
L’architecture peer-to-peer des blockchains offre de nombreux avantages. L'un des plus importants est le fait que les réseaux P2P offrent une plus grande sécurité que les arrangements client-serveur traditionnels. La répartition des blockchains sur un grand nombre de nœuds les rend quasiment immunisées contre les attaques par déni de service (DoS) qui affectent de nombreux systèmes.
De même, étant donné que la plupart des nœuds doivent établir un consensus avant d’ajouter des données à une blockchain, il est presque impossible pour un attaquant de modifier les données. Cela est particulièrement vrai pour les grands réseaux comme Bitcoin. Les blockchains plus petites sont plus sensibles aux attaques, car une personne ou un groupe pourrait éventuellement prendre le contrôle de la majorité des nœuds (c'est ce qu'on appelle une attaque à 51 %).
En conséquence, le réseau peer-to-peer distribué, associé à une exigence de consensus majoritaire, confère aux blockchains un degré de résistance relativement élevé aux activités malveillantes. Le modèle P2P est l’une des raisons pour lesquelles Bitcoin (et d’autres blockchains) ont pu atteindre ce qu’on appelle la tolérance aux pannes byzantine.
Au-delà de la sécurité, l’utilisation de l’architecture P2P dans les blockchains de cryptomonnaies les rend également résistantes à la censure des autorités centrales. Contrairement aux comptes bancaires standards, les gouvernements ne peuvent pas geler ou vider les portefeuilles de cryptomonnaies. Cette résistance s’étend également aux efforts de censure des plateformes privées de traitement des paiements et de contenu. Certains créateurs de contenu et commerçants en ligne ont adopté les paiements en cryptomonnaies pour empêcher des tiers de bloquer leurs paiements.
Limites
Malgré ses nombreux avantages, l’utilisation des réseaux P2P sur blockchain présente également certaines limites.
Étant donné que les registres distribués doivent être mis à jour sur chaque nœud plutôt que sur un serveur central, l’ajout de transactions à une blockchain nécessite une grande puissance de calcul. Bien que cela offre une plus grande sécurité, cela réduit considérablement l’efficacité et constitue l’un des principaux obstacles en matière d’évolutivité et d’adoption généralisée. Cependant, les cryptographes et les développeurs de blockchain étudient des alternatives pouvant être utilisées comme solutions de mise à l’échelle. Des exemples notables incluent Lightning Network, Ethereum Plasma et le protocole Mimblewimble.
Une autre limitation potentielle concerne les attaques qui peuvent survenir lors d’événements hard fork. Comme la plupart des blockchains sont décentralisées et open source, les groupes de nœuds peuvent copier et modifier le code et se séparer de la chaîne principale pour former un nouveau réseau parallèle. Les hard forks sont tout à fait normaux et ne constituent pas une menace en soi. Mais si certaines méthodes de sécurité ne sont pas correctement adoptées, les deux chaînes peuvent devenir vulnérables aux attaques par rejeu.
De plus, la nature distribuée des réseaux P2P les rend relativement difficiles à contrôler et à réguler, et pas seulement dans le créneau de la blockchain. Plusieurs applications et sociétés P2P étaient impliquées dans des activités illégales et des violations des droits d'auteur.
En conclusion
L’architecture peer-to-peer peut être développée et utilisée de différentes manières et constitue le cœur des blockchains qui rendent les crypto-monnaies possibles. En distribuant les registres de transactions sur de vastes réseaux de nœuds, l'architecture P2P offre sécurité, décentralisation et résistance à la censure.
En plus de leur utilité dans la technologie blockchain, les systèmes P2P peuvent également servir d’autres applications informatiques distribuées, allant des réseaux de partage de fichiers aux plateformes d’échange d’énergie.