Une traduction originale d’un article de Kiran Pachhai.

SweetGrief
Elastos France
7 min readNov 16, 2018

--

Résultat de recherche d'images pour "elastos carrier"

Arrière-plan

Elastos Carrier est une plateforme pair-à-pair (peer-to-peer en anglais ou P2P) qui prend en charge tout le trafic réseau entre les machines virtuelles et transmet les informations au nom des applications.

Qu’est-ce que cela veut dire ? Et bien, pour comprendre ce qu’est Elastos Carrier, nous devons revoir ce qu’est un réseau P2P. Un réseau pair-à-pair est créé lorsque deux (ou plus) ordinateurs personnels (comme votre Mac ou votre Windows) sont connectés et partagent des données directement entre eux, sans passer par un serveur central.

Par exemple, aujourd’hui, pour communiquer via des applications comme Telegram ou WhatsApp, si une personne A envoie un message à B, celui-ci doit transiter en premier via les serveurs centraux de l’application de l’entreprise en question. Ces serveurs se chargeront de router le message de A vers B.

Vous pouvez imaginer quel problème il pourrait y a avoir dans ce type d’architecture. Cela dit, de nombreuses applications telle que Skype ou Bittorrent utilisent actuellement une architecture pair-à-pair. Skype utilise un protocole qui est un réseau de téléphonie internet propriétaire basé sur une architecture pair-à-pair.

Le problème, c’est que les spécifications du protocole ne sont pas disponible publiquement et les applications qui utilisent ce protocole ne sont pas open-source. Il est donc impossible de savoir comment ce protocole est implémenté dans ces applications et son fonctionnement.

D’autres part, Bittorrent est un protocole de communication pour se partager des fichiers en P2P. Cette application, utilisée par des millions d’utilisateurs, permet de se transférer des films, des jeux vidéos, etc… d’une personne à une autre. Bittorrent était open-source, mais depuis son rachat par µTorrent, le code n’est plus public. On retrouve donc les mêmes problèmes que Skype.

Peer-to-Peer network

Comment fonctionne Elastos Carrier

Elastos Carrier est un framework de communication décentralisé pair-à-pair. Ainsi, dans le cas d’une application de chat fonctionnant sur Carrier, il n’y a pas de serveur central où le message transite.

Cela dit, Elastos Carrier ne ressemble pas à une architecture pair-à-pair traditionnelle. Il peut y avoir un pare-feu pour la personne A qui pourrait bloquer du trafic vers la personne B. Dans des cas comme celui-ci, la personne A cherchera d’autres personnes sur le réseau, qui pourraient avoir un chemin d’accès à la personne B, nous les appellerons personne C.

Ensuite, le message est crypté et ne peut être déchiffré que si vous avez une clé privée appropriée. Ce message est ensuite envoyé à partir de la personne A. Il peut alors être envoyé à la personne C et si la personne C a un chemin menant à la personne B, le message de la personne A est ensuite acheminé via la personne C. La nœud C pourra alors transmettre le message à B.

Cela est possible grâce aux nœuds décentralisé du réseau Elastos. Entre d’autres termes, même si A n’a pas un accès direct à B, ils peuvent tout de même communiquer entre eux. Ceci est très important car cela veut essentiellement dire que tant qu’un chemin est ouvert entre différents nœuds (depuis lequel l’application de chat décentralisée est en cours d’exécution), le message est toujours transmis et personne ne peut interférer car il n’y a pas de serveur central et le message lui-même est crypté.

Il est donc théoriquement possible que deux personnes vivant respectivement aux États-Unis et en Chine puissent communiquer en utilisant une DApp Elastos sans aucun problème.

Communication entre A et B grâce à C

Regardons ça de plus près

Lorsqu’une personne A envoie un message à une personne B, la première méthode testée est de relayer ce message grâce à UDP (User Datagram Protocol). En plus d’UDP, il y a également TCP (Transmission Control Protocol). La principale différence entre ces deux protocoles est que le taux de pénétration du protocole UDP est plus élevé à travers un firewall (70–80% de chance), contrairement à TCP qui a seulement 20 à 30% de chance de traverser ce firewall.

L’autre différence, c’est que pour que TCP fonctionne, l’expéditeur et le destinataire sont toujours connectés et les messages sont distribués dans l’ordre, la vitesse à laquelle les données transportées par TCP sont lentes comparée à UDP. Pour que UDP fonctionne, l’envoyeur continue simplement d’envoyer des données au destinataire et il n’attend même pas que le destinataire reçoive le message. Il continue juste à envoyer. C’est pour cette raison que le taux de transfert est très rapide pour UDP par rapport au protocole TCP.

Passons maintenant aux détails techniques. La première fois que la personne A envoie le message à la personne B, le message tente d’abord d’être relayé à l’aide du protocole UDP. Toutefois, si le message ne peut pas être transmis de cette façon, le message est ensuite envoyé à la personne B à l’aide de TCP. Comme il faut établir une communication bidirectionnelle lors de l’utilisation du protocole TCP, le message de la personne A peut d’abord aller à la personne C et, puisque la personne C peut parler à la personne B, le message est alors transmis à la personne B. Dans les deux cas, un pare-feu entre la personne A et la personne B n’aura aucune incidence sur l’expérience utilisateur, car les messages sont toujours acheminés, quoi qu’il en soit, en raison du réseau décentralisé fourni par la plate-forme Elastos Carrier.

Elastos Carrier face à TCP/IP face au téléphone portable

Sur un téléphone portable lambda, vous pouvez appeler quelqu’un dès l’instant où vous connaissez son numéro de téléphone. Tant que vous avez un numéro de téléphone valide, vous pouvez l’appeler même si vous ne le connaissez pas du tout.

Avec TCP/IP, les messages ou plus généralement connu sous le nom de paquets, peuvent être interceptés si l’on connait l’adresse IP cible. Avec Elastos Carrier, vous devez vous identifiez grâce à votre identifiant Elastos, avant de pouvoir vous échanger n’importe quel types de message ou de données.

Un téléphone portable est vulnérable aux attaques “de la fausse tour” (consiste a créer de fausses tours réseaux téléphoniques afin de transférer des virus ou d’espionner les utilisateurs connectés). Avec TCP/IP, vous avez un problème lorsque vos données sont transférées, car l’en-tête du texte est en texte brut et peut être facilement modifié par une attaque dite “man in the middle”. Cependant, avec Elastos Carrier, toutes les données sont cryptées, immuables et ne peuvent pas être imitées. En d’autres termes, aucune chance que le type d’attaque de l’homme au milieu puisse se produire.

Les téléphones portables sont également vulnérables à PRISM qui est le nom de code d’un programme de la NSA (National Security Agency) qui avait pour but d’espionner des communications internet.

Dans le monde TCP/IP, les serveurs sur lesquels vos données sont stockées peuvent-être mal sécurisés. En outre, les personnes peuvent être en mesure d’intercepter les données sur la route et voler des données sensibles. Avec Elastos Carrier, étant donné qu’il n’y a pas de serveur central et que tout est pair-à-pair et décentralisé, le routage des données est imprévisible et il n’y a donc aucun moyen de cibler des personnes spécifiques.

Sur votre téléphone portable, vous devez modifier les numéros de téléphone pour éviter les spams, le coût de cette procédure peut-être élevé. Et même après avoir modifié votre numéro, les spams peuvent revenir. Elastos Carrier élimine complètement le spam et son utilisation est gratuite.

Résumons:

Autres cas d’utilisation réels

J’ai parlé d’un cas d’utilisation simple pour une application de chat décentralisée construite à l’aide du SDK Elastos Carrier ci-dessous. Ce type de communication ne se limite pas à une simple application de messagerie. Elastos Carrier vous permet également de transférer tout type de support numérique, tel que des musiques, des films, des jeux, etc… Il vous permet de créer tout types d’applications décentralisées et vous autorise le transfert de tout types de données d’une personne à une autre. Ainsi, vous pouvez avoir une DApp sur Elastos qui vous permet non seulement de jouer à des jeux mais également d’échanger entre vous le jeu, mais également les éléments que vous pouvez obtenir en jouant. Elastos Runtime vous offre un environnement sécurisé qui vous permet de jouer au jeu sur n’importe quel appareil, tandis que Elastos Carrier vous offre la possibilité de transférer ces jeux à une autre personne. Et tout cela se produit en utilisant la plate-forme que Elastos construit. Vos jeux sont sains et saufs car tout est crypté avant même que vous essayiez d’y accéder.

Conclusion

Ici, je vous présente une petite fraction de ce que Elastos essaie de construire. Ils construisent un écosystème entier avec Elastos Carrier, ELA Pay, une identité décentralisée… Tout cela fait partie de Elastos Runtime. Une fois que tout sera prêt, les développeurs auront un SDK (Elastos Runtime SDK) avec lequel travailler, traduit en plusieurs langages (NodeJS, Android, iOS…). Lorsque tout sera prêt, vous serez en mesure de construire votre application décentralisée en utilisant le SDK pour n’importe quel appareil.

--

--