
Le Série : Quadrans Essentials explore les différentes technologies et fondements de Quadrans Blockchain et toute la révolution Blockchain/Web3 qui remodèle le web aujourd’hui.
La technologie Blockchain et la décentralisation ont un impact très profond sur le Web qui n’est certainement pas facile à saisir à première vue.
Commençons le processus avec une compréhension claire des concepts clés derrière cette révolution. Comprendre comment combiner ces concepts clés nécessitera des efforts supplémentaires au fur et à mesure que vous démêlerez la vue d’ensemble.
Dans ce premier article, nous approfondirons Réseaux pair à pairégalement connu sous le nom de P2P.
Les réseaux P2P existent depuis environ 20 ans maintenant, mais pour certains types d’applications et de solutions, ils sont encore considérés comme « nouveaux ».
En effet, ils diffèrent considérablement des anciennes méthodes traditionnelles de construction et de gestion des réseaux.
En quoi les réseaux P2P sont-ils différents ?
Un réseau traditionnel suit généralement un modèle centralisé, également connu sous le nom de modèle client-serveur.
C’est le modèle utilisé lorsqu’un navigateur pointe vers un site Web et qu’un ou plusieurs nœuds du réseau s’appellent les serveurs sont responsables de toutes les fonctionnalités, telles que le contrôle d’accès, le stockage et la récupération de données à l’aide d’une base de données, etc.
Tous les autres nœuds du réseau sont appelés clients et peut produire des données qui seront envoyées et stockées sur le ou les serveurs, récupérer des données du serveur en fonction de l’autorisation accordée, demander des fonctions aux serveurs, etc.
Dans ce modèle, clients ne peuvent pas échanger directement des informations entre eux mais doivent nécessairement interagir avec un serveur car il contient toutes les données et fonctionnalités.
Les réseaux centralisés prennent la forme d’une étoile — le(s) serveur(s) est(sont) situé(s) au centre et à partir du centre toutes les connexions au clients Démarrer.

D’autre part, le modèle de réseau P2P est fondamentalement différent – il est décentralisé ou distribué.
Chaque nœud d’un réseau Peer-to-Peer peut être connecté à un certain nombre d’autres nœuds équivalents, ce qui fait que la topologie du réseau ressemble davantage à un maillage qui peut constamment changer de forme puisque sa forme n’est pas pertinente pour la fonctionnalité du réseau.

Dans un réseau distribué, chaque nœud est à la fois un serveur et un client en même temps, ce qui signifie que le nœud peut effectuer toutes client fonctions, mais doivent également partager une partie du travail qui était auparavant effectué par le serveur.
Comme son nom l’indique, tous les nœuds sont des « pairs » et sont d’égale importance pour le réseau.
Ce sont quelques-unes des caractéristiques qui rendent un système Peer-to-Peer unique et la technologie Blockchain n’est rien d’autre qu’une utilisation spécifique de ce modèle.
Le cœur du réseau P2P réside dans le protocole. Selon les règles du protocole, n’importe quel nœud peut s’allumer, rechercher d’autres pairs dans le même réseau P2P et demander à s’y connecter.
C’est ce qu’on appelle le phase de découverte ou alors phase de démarrage et peut être fait de différentes manières. Une fois que le nœud est connecté à un ou plusieurs nœuds, il commencera à échanger des informations avec eux et à fournir certains services aux autres nœuds. Prenons un exemple :
jemaginez un réseau P2P comme un grand annuaire téléphonique mondial. Chaque nœud participant à cette application partage des numéros de téléphone avec d’autres nœuds, mais que se passe-t-il si un nœud demande un numéro de téléphone qu’il ne connaît pas ?
Le nœud « A » a besoin du numéro de téléphone de Satoshi Nakamoto mais (cela va sans dire) ne l’a pas dans son ensemble de numéros locaux.
Il demande donc aux nœuds pairs auxquels il est connecté « B,C,D » s’ils l’ont.
Si un nœud l’avait, il renverrait une réponse avec le numéro, mais encore une fois ni « B, C ni D » (distance 1 saut) n’ont réellement cette information.
La demande se propage à l’ensemble du réseau, car les nœuds se demandent mutuellement la réponse.
Cette méthode « un pair demande à d’autres pairs » est souvent appelée protocole de potins alors qu’il se propage à travers tout le réseau comme des vagues formées par une pierre jetée dans un étang.
Si aucun des nœuds n’avait les informations demandées, la demande finirait par mourir. Mais si un nœud possède les informations, il répondra au nœud qui les a demandées. Les informations demandées remonteront jusqu’au nœud « A » qui finira par obtenir les informations.
Une fois que le nœud « A » l’aura reçu, il mettra probablement à jour son ensemble local de numéros de téléphone et inclura le numéro de Satoshi. De cette façon, il n’aura pas à répéter la même requête à l’avenir et pourra répondre à d’autres nœuds qui pourraient la demander ultérieurement.
Facultativement, les nœuds qui ont acheminé la demande et reçu la réponse pourraient choisir de faire de même.
Certaines des fonctionnalités pertinentes qui rendent le réseau P2P unique ont déjà été partiellement dévoilées. Ajoutons-en quelques autres :
✔ Les réseaux P2P sont beaucoup plus démocratiques que les réseaux centralisés. Il n’y a pas de serveur qui soit « plus égal » aux autres – aucun client ne peut être expulsé du réseau ou se voir refuser de manière permanente l’information ou le service dont il a besoin.
✔ Les réseaux P2P sont résilients et tolérants aux pannes. Dans le traditionnel serveur client modèle, le serveur représente un point de défaillance unique — tout incident ou entité hostile pourrait empêcher tout clients d’accéder au service simplement en piratant ou en fermant le serveur… tout comme la dernière fois que vous n’avez pas pu accéder à votre compte de réseau social ou à votre service de messagerie parce qu’ils étaient en panne.
✔ Les réseaux P2P sont plus faciles et moins chers à gérer. L’absence d’une structure centrale pour faire tout le gros du travail rend les réseaux P2P plus légers et plus agiles.
Saluons les protocoles qui ont marqué l’histoire. Le premier réseau P2P à atteindre une large base d’utilisateurs a été Napster en 1999, une plate-forme de partage de fichiers principalement utilisée pour partager de la musique MP3 et des fichiers de films.

La plupart des fichiers sur Napster ont été partagés illégalement et les grandes sociétés de musique ont eu beaucoup de mal à essayer de fermer le réseau mondial – mais elles ont finalement réussi. Cela a été possible car Napster n’était pas décentralisé à 100% et certains serveurs étaient encore nécessaires à l’époque.
Suite à cet événement, un nombre important de protocoles différents ont vu le jour (Kazaa, Gnutella, Emule, Morpheus, Kademlia…) avec de nouvelles caractéristiques et des modèles de plus en plus décentralisés. Leur jeu était de rendre impossible à quiconque de tous les fermer.
Cela a conduit à une crise temporaire de l’industrie musicale qui s’est finalement avérée positive et a conduit à un changement radical du modèle commercial de l’ensemble de l’industrie et à la naissance de nombreuses plateformes de streaming.
Aujourd’hui, le protocole le plus utilisé est probablement BitTorrent.

Les réseaux P2P peuvent être considérés comme assez perturbateur car ils ont imposé un certain nombre de changements majeurs dans la plupart des domaines dans lesquels ils ont été appliqués.
En raison de leur nature résistante à la censure, les réseaux P2P ont également été utilisés pour développer des réseaux axés sur la confidentialité tels que Tor, Freenet et I2P.
Même le monde de la finance n’était pas à l’abri de la vague de changement apportée par les réseaux P2P lorsque Bitcoin est arrivé en 2009.

Il n’a fallu que 10 ans aux réseaux P2P pour apporter des changements radicaux à la plupart des domaines dans lesquels ils étaient appliqués.
De nos jours, les réseaux P2P sont partout – c’est vraiment incroyable de voir les différents domaines d’applications allant du partage et de l’hébergement de fichiers, de la navigation Web, des applications de chat et même des bases de données.
Chaînes de blocs publiques sont probablement l’exemple le plus frappant de l’utilisation du réseau P2P – une partie de leur nature imparable et immuable découle des réseaux P2P mêmes sur lesquels ils sont construits.
Chaque nœud de la Blockchain possède une copie complète des données, ce qui rend inutile la sauvegarde d’un nœud individuel ou de la Blockchain elle-même.
Cela signifie résilience. Les blockchains peuvent résister à de grandes perturbations – même si 90% des nœuds étaient déconnectés, il n’y aurait pas de conséquences graves pour la Blockchain dans son ensemble.
Le Système de fichiers interplanétaire (IPFS) est un stockage de fichiers décentralisé où n’importe qui peut télécharger un fichier et partager une partie de son espace disque. Les fichiers sont indexés par contenu, et non par nom, ne peuvent pas être modifiés une fois téléchargés et sont potentiellement stockés pour toujours.
Étant donné que les fichiers sont immuables, il est couramment utilisé en conjonction avec dApps et d’autres applications Blockchain pour stocker des données hors chaîne telles que Métadonnées NFT, documents, etc.
Mais vous souvenez-vous des premières applications des réseaux P2P ? Ils étaient principalement utilisés pour partage de fichiersils n’étaient donc pas fondamentalement différents d’un référentiel de fichiers distribué et consultable.
Si nous considérons les fichiers comme de simples données, il est naturel de penser que nous pourrions également avoir des bases de données P2P. C’est le cas avec OrbitDBune base de données basée sur IPFS qui pourrait être utilisée pour certaines fonctions NoSQL telles qu’un magasin de documents, un magasin clé-valeur distribué ou une table de hachage.
Si cet article vous a inspiré pour créer votre propre application P2P, nous vous recommandons fortement de jeter un œil à LibP2P – une bibliothèque qui vous permet de vous concentrer sur le protocole, les fonctionnalités et l’application, en prenant soin de l’ensemble de la couche réseau sous-jacente.