Qu'est-ce qu'un gossip protocol et comment fonctionne-t-il ?
Le gossip protocol lié au peer to peer (P2P) est assez méconnu du grand public, et même de certains adeptes de Bitcoin. Pourtant, ce dernier est essentiel au fonctionnement de la monnaie de Satoshi Nakamoto.
Acheter Bitcoin (BTC)
Publicité eToro
À la recherche des contacts perdus
Pour éviter de vous faire fuir dès les premières lignes de cet article, je vais vous imager le gossip protocol. Et ce, en utilisant des représentations à la portée de chacun.
Premièrement, imaginons que vous venez d'obtenir un nouveau téléphone avec un numéro attribué et qu'il n'y a aucun contact à l’intérieur. Vous êtes assez vieux jeu donc pour obtenir le numéro de téléphone de vos proches, vous faites le choix d'utiliser des annuaires.
Quant à vos proches, ils ne savent pas non plus que vous avez un nouveau numéro. Vous allez donc feuilleter progressivement le premier annuaire pour trouver un numéro, puis un deuxième, etc. Bingo ! Vous avez trouvé l’annuaire parfait où 8 de vos proches ont leur numéro à l’intérieur.
Vous allez alors prendre contact et leur expliquer qui vous êtes. Puisque nous avons des amis communs avec ces proches, nous allons également chercher à les contacter. Nous allons contacter un ami pour qu’il nous serve de relais. Il, va choisir aléatoirement d’autres de ses amis pour les informer que vous avez un nouveau numéro. C'est alors que ces nouveaux amis vont faire de même et ainsi de suite…
Maintenant que vous avez tous vos contacts et qu'eux vous connaissent, malheureusement vous tombez malade. Et c’est là qu’avoir des contacts prend tout son sens, puisque vous allez les contacter. Vous allez alors l’annoncer à certains d’entre eux pour les protéger et qu’ils ne prennent pas le risque de vous approcher. Ils vont alors le faire savoir à leur tour à d’autres contacts qui vont eux aussi relayer l’information de sorte que tout votre réseau de proches soit au courant.
J’espère que vous avez compris cette petite histoire parce que maintenant, nous passons aux choses sérieuses.
Techniquement, c’est quoi un gossip protocol ?
Votre téléphone, c'est en réalité un nœud (acteur d’un réseau) tandis que l’annuaire représente un serveur DNS. Le nœud va essayer de se connecter à un serveur DNS pour obtenir l’adresse des autres acteurs. Le DNS joue véritablement le rôle d’un annuaire puisqu’il possède une liste comptabilisant toutes les adresses du réseau.
Ensuite, le DNS va lui fournir celles-ci puis notre nœud va pouvoir communiquer avec ses nouveaux nœuds voisins (ceux qui lui sont directement connectés), connus grâce au DNS.
Il va leur demander les adresses qu’ils connaissent pour pouvoir se connecter à d’autres nœuds. Chacun va donc partager leur liste de nœuds avec qui ils sont connectés.
À noter que votre nœud étant aussi dans un DNS, il va pouvoir accepter à son tour toutes les connexions entrantes. ?
Une fois que vous détenez la liste, vous allez pouvoir vous connecter. Prenons un nœud B avec qui vous vous connectez. B va envoyer à ses nœuds voisins sélectionnés aléatoirement l’adresse de votre nœud. Ces nœuds choisis vont à leur tour choisir un autre nœud et ainsi de suite jusqu’à ce que le réseau entier soit au courant de son existence.
Une fois que votre nœud est connu de tous, il va commencer à générer/recevoir des informations et à les communiquer avec ses voisins.
Ensuite, il va simplement préciser à ses voisins qu’il possède une information. Ses voisins vont donc lui demander cette information, s'ils ne la connaissent pas déjà, notre nœud va pouvoir leur envoyer.
Tous les chemins mènent à... Bitcoin !
Maintenant que nous avons saisi le principe d’un gossip protocol, il va falloir le relier à Bitcoin. Les nœuds complets sous Bitcoin tournent sur le logiciel d’origine qui est Bitcoin Core.
À partir de là, il suffit de tout reprendre et de l’appliquer. Les données sont bel et bien des transactions. Lorsque le nœud va vérifier une transaction dans la blockchain, il va générer une donnée et « changer d’état ». Il va alors annoncer ce changement d’état de manière aléatoire à quelques autres nœuds du réseau avec qui il est voisin.
Ses voisins vont vérifier s'ils connaissent cette transaction, s'ils l’ont déjà, ils vont la rejeter, si la transaction est fausse, ils vont également la refuser. Si elle est juste ils vont la garder en mémoire puis répéter la même opération avec leurs propres nœuds voisins et ainsi de suite… C’est comme cela que chaque transaction communique à travers les nœuds.
Ce procédé s’applique également au mining utilisant le Proof of Work (PoW). Les mineurs vont chercher le hash qui résout l’équation mathématique de telle sorte à ce qu’il commence par un nombre de 0 défini par le protocole Bitcoin. Il va annoncer aux autres nœuds qu’il a la réponse, ces derniers vont alors vérifier s'ils ont cette solution ou non. Si elle ne correspond pas à ce que demande le protocole, ils vont la refuser.
Une fois que quelqu’un obtient une solution en accord, il va l’annoncer. Les autres mineurs demandent ce qu’il a trouvé et vérifient les paramètres pour être en accord avec le protocole. Dans l'hypothèse où tout soit bon, ils vont la partager à leur tour aux autres mineurs voisins et le bloc est résolu une fois que la majorité est d'accord. Si quelqu’un propose une solution juste après, puisque les autres mineurs connaissent déjà l’information, ils la refusent.
Si vous vous voulez voir une représentation graphique de gossip protocol, je vous invite à jeter un coup d’œil par ici ?
Aujourd'hui, ce qui fait la force de Bitcoin, c’est certes sa sécurité, mais cette dernière ne peut être assurée que par une transparence et une communication sans faille au sein du réseau.
Cet article ne traite pas non plus des spécificités et autres cas possibles du gossip protocol, mais a pour objectif de mettre en avant les bases de cette technologie.
Cet article a été rédigé par Morgan Richaud de l'association étudiante KryptoSphere.
? Lisez notre présentation de l'association blockchain étudiante KryptoSphere
Recevez un récapitulatif de l'actualité crypto chaque jour par mail 👌