Le protocole Gossip est un protocole qui permet de concevoir des systèmes de communication distribués (P2P) hautement efficaces, sécurisés et à faible latence. L'inspiration pour sa conception a été tirée d'études sur l'expansion épidémique et des algorithmes qui en résultent.
Cquand on parle de Gossip Protocol, on parle de un protocole de communication utilisé par les appareils numériques pour propager des informations sur un réseau peer-to-peer (P2P). Dans les réseaux blockchain, ce protocole est utilisé par les nœuds du réseau pour partager et diffuser des informations rapidement et de manière fiable les uns avec les autres.
Le nom Gossip de ce protocole découle de la manière dont les informations sont diffusées sur les réseaux sociaux. Potins en espagnol signifie potins ou rumeurs; Le protocole Gossip s'inspire donc de cette forme de divulgation d'informations qui se produit très rapidement et très rapidement dans ces réseaux. À l'heure actuelle, il existe de nombreuses variantes de ce protocole de communication. Beaucoup sont appliqués en fonction des besoins ou des exigences de chaque utilisateur ou de chacun des réseaux qui l'utilisent.
Origine du protocole Gossip
L'origine de ce protocole est liée aux algorithmes de réplication épidémique décrits par Demers Alan, Greene Dan, Hauser Carl, Irish Wes, Larson John, Shenker Scott, Sturgis Howard, Swinehart Danm et Terry Doug dans leur étude «Algorithmes épidémiques pour la maintenance des bases de données répliquées» de 1987.
Depuis le début de cette étude, la propagation de l'épidémie a suscité un grand intérêt pour l'informatique. En effet, son système d'exploitation est parfait pour les grands réseaux avec des niveaux élevés de décentralisation. En fait, les premières utilisations pratiques des protocoles de type Gossip se manifestent dans les systèmes de routage des premiers réseaux qui étaient le préambule à Internet dont nous jouissons aujourd'hui.
Comment fonctionne le protocole Gossip?
Les protocoles de potins fonctionnent très facilement. C'est parce qu'ils sont basés sur un concept très basique pour distribuer et propager des informations sur un réseau. Dans ces protocoles, pour qu'un nœud distribue des informations, il lui suffit de se coupler avec d'autres nœuds au hasard. Une fois que cela se produit, il vous suffit d'échanger les informations reçues avec lesdits nœuds, qui à leur tour distribueront les informations avec d'autres nœuds auxquels ils sont également couplés. Former une chaîne de distribution pour diffuser les informations sur tout le réseau de manière opportune et efficace.
Pour sa part, la manière dont les informations sont propagées au sein d'un réseau peer-to-peer via le protocole Gossip se produit rapidement et en toute sécurité tant que les nœuds impliqués peuvent garantir la propagation et la divulgation des informations sans discriminer ni exclure aucun des parties dans leur propre réseau.
Protocole Gossip est basé sur la distribution probabiliste de l'information en sélectionnant des paires, à qui les nœuds distribueront les informations. Ceci afin de ne pas répéter ou dupliquer des informations vers un nœud qui les connaît déjà. Par exemple, dans le cas d'une équipe de travail qui se réunit constamment pour se tenir au courant de tout ce qui se passe au sein du bureau, appliquant le protocole Gossip, chacun des membres de l'équipe doit être associé à un autre membre avec lequel il partagera le information. Ce membre de l'équipe sera à son tour jumelé à un autre à qui il devra également diffuser les mêmes informations et ainsi de suite pour que tout le monde soit tenu informé.
Quand on dit que les protocoles Gossip sont basés sur la probabilité de diffuser des informations, c'est parce qu'un nœud doit choisir au hasard avec quel autre nœud veut partager ces informations. De plus, ce protocole de communication est évolutif, car les nœuds ne partagent ou ne distribuent qu'une quantité fixe d'informations, indépendamment du fait qu'un autre nœud échoue dans son travail. Les nœuds opérationnels partageront toujours la quantité d'informations correspondante avec leur réseau homologue.
Pour voir plus facilement comment le protocole fonctionne, consultez l'exemple suivant dans le curseur d'image.
Objectif d'un protocole de potins
L'objectif principal d'un protocole Gossip est de diffuser les informations de la manière la plus rapide possible sur un vaste réseau de nœuds distribués. Pour y parvenir, ces types de protocoles sont basés sur l'idée de base que les processus communiquent périodiquement avec leurs pairs. Au cours de cette communication, ils sont capables d'échanger des informations créant une fréquence élevée et un flux de données sur le réseau. Et tout cela dans un modèle de dispersion qui aide les informations à être distribuées le plus rapidement possible sur tout le réseau.
Un exemple de ceux-ci peut être vu par exemple sur Usenet et IRC. Les deux systèmes, bien que centralisés, diffusaient très rapidement des informations sur le réseau en utilisant des «chuchotements». Mais peut-être que le meilleur exemple de cette opération peut être vu dans le système de routage qui rend Internet possible. De tels protocoles de routage permettent aux routeurs d'échanger des informations avec les routeurs voisins, améliorant ainsi les tables de routage pour l'ensemble du réseau. En fin de compte, le réseau cherche toujours à construire une version plus optimale de lui-même grâce au routage le plus court entre toutes ses parties.
Cette situation est très utile dans la construction d'un réseau blockchain. Puisqu'un réseau largement distribué bénéficierait grandement de ce type d'opération. De cette façon, les ressources qui en font partie sont utilisées au maximum. Le résultat est qu'une transaction dans un réseau avec Gossip Protocol voyagerait rapidement à travers tous les nœuds du réseau, réduisant les attaques au milieu de leur dispersion.
Et de penser que toute cette fonctionnalité est conçue autour d'études de dispersion pandémique et d'un proverbe simple:
"N'importe qui peut lancer un potin, mais personne ne peut l'arrêter."
Types de protocoles Gossip
Protocole de diffusion
Les protocoles de diffusion ou de propagation de l'information sont ceux qui opérer sous communication de groupe ou multicast pour la diffusion de messages. Dans le premier cas, en communication de groupe, les nœuds du réseau homologue sont toujours en communication constante. Ainsi, les informations peuvent être diffusées sur le réseau rapidement et de manière fiable. Bien qu'il puisse être le cas que lorsque l'information est propagée, elle a déjà changé et est légèrement obsolète. Cependant, ce n'est généralement pas une préoccupation ou un problème pour le réseau.
Dans le second cas, en multidiffusion, les informations sont parfois distribuées dans le réseau homologue. Par conséquent, un événement ne déclenche pas immédiatement la propagation des informations. Dans ce cas, l'état latent des informations peut être préoccupant, en raison du temps qui s'écoule entre le moment où les informations sont créées et leur diffusion à travers le réseau.
Protocole d'agrégation
Dans les protocoles d'agrégation, les nœuds du réseau homologue reçoivent et traitent des informations pour en envoyer un résumé aux autres nœuds connectés au réseau. Ce mécanisme de distribution d'informations conserve un enregistrement de toutes les données traitées. Ce processus est connu sous le nom de exploration de données distribuée, largement utilisé dans la technologie des registres distribués.
Avantages et inconvénients du protocole Gossip
Avantages
- Evolutivité: Les protocoles Gossip sont hautement évolutifs. Ceci grâce au fait qu'il est possible de diffuser l'information avec un niveau de performance très efficace. Dans ces protocoles, les nœuds distribuent une quantité fixe de messages aux nœuds avec lesquels ils sont liés.
- Solidité: Dans Gossip Protocol, tous les nœuds fonctionnent de la même manière et n'exercent pas de fonction spéciale ou différente les uns des autres. Par conséquent, si une panne se produit dans un ou plusieurs nœuds, elle n'affectera ni n'interrompra la fonctionnalité des autres nœuds du réseau pour la distribution des informations. De même, les nœuds peuvent entrer ou sortir du réseau peer-to-peer sans restrictions et sans affecter son fonctionnement.
- Tolérance aux pannes: Comme les nœuds ont la capacité de partager et de distribuer des informations avec divers nœuds du réseau homologue, ces protocoles ont la capacité de fonctionner correctement. Même dans des situations difficiles où la connectivité de certains nœuds est affectée. Si un certain nœud se déconnecte pour une raison quelconque, les informations seront distribuées de la même manière par les autres nœuds qui ont déjà reçu le message.
- Décentralisation: Les protocoles Gossip distribuent les informations de manière totalement décentralisée et autonome.
Inconvénients
- Bien que les protocoles Gossip offrent de la robustesse au système en permettant aux nœuds de continuer à fonctionner sans interruption en cas de panne, il se peut que les informations ou le message distribué soient affectés. Par exemple, si un nœud devient malveillant, il peut modifier les informations de manière très subtile afin que le message reste lisible, mais en même temps contient des informations fausses ou erronées. Et de même les autres nœuds, qui fonctionneront sans interruption, diffuseront ces informations.
Applications de protocole Gossip
Aujourd'hui, de nombreux réseaux de distribution utilisent les protocoles Gossip comme moyen de diffuser des informations de manière précise et opportune. Par exemple, Bitcoin utilise les protocoles Gossip pour distribuer les valeurs nonce entre chacun de ses nœuds de minage. De même, le réseau distribué Graphique de hachage il s'appuie également sur ces protocoles pour le transfert et la diffusion d'informations sur son réseau.
D'autre part, le logiciel Apache Cassandra utilise ces protocoles pour établir une communication à travers laquelle tous ses nœuds peuvent recevoir des informations et découvrir des pairs, ce qui facilite la propagation des métadonnées au sein du réseau. De même, la base de données Riak Il implémente également les protocoles Gossip pour partager l'état et les propriétés de ses anneaux. Un processus que les nœuds exécutent en permanence pour tenir les autres nœuds informés et mis à jour des mises à jour qui se produisent dans la base de données.
Pour sa part, dymano utilise un protocole Gossip pour suivre les adhésions, ce qui vous aide à découvrir de nouveaux membres participant au programme, ainsi qu'à détecter les éventuelles failles. Les protocoles Gossip ont des fonctionnalités similaires au sein du réseau de distribution Consul. Cela utilise ces protocoles aussi bien pour la détection de nouveaux membres que pour la détection de pannes ou d'éventuelles pannes au sein du réseau. De même, le réseau Consul utilise des protocoles Gossip pour transmettre des informations sur les nouveaux services et événements de manière fiable et efficace au sein du réseau.
Cependant, bien que la principale application de ces protocoles soit de diffuser des informations, les protocoles Gossip ont beaucoup plus d'applications au sein des réseaux de distribution d'informations. Par exemple, ils peuvent être utilisés pour résoudre des problèmes complexes dans des réseaux trop grands. De plus, ils peuvent être utilisés pour répliquer des bases de données complètes et bien plus encore.