VT2022 XXX fiche: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
=I. Introduction= |
=I. Introduction= |
||
==1. ETAT DES TECHNOLOGIES DU WEB AVANT WEBASSEMBLY== |
|||
Le réseau Helium est un réseau Internet des objets (IoT) sans fil décentralisé utilisant le protocole de communication radio LoRaWAN. Développé par la société américaine Nova Labs, Helium est un réseau communautaire et open-source visant à permettre la communication de capteurs IoT dans les zones où la couverture sans fil ou mobile est minimale ou nécessite trop d’énergie. A la différence d’autres réseaux communautaires comme The Things Network (TTN), le réseau Helium utilise une blockchain afin d’encourager la création de réseaux sans fil publics décentralisés. Chacun étant ainsi incité à posséder un nœud du réseau afin de fournir la couverture sans-fil de sorte que celui-ci appartienne à tous les participants et non à une seule entreprise. Le mécanisme de consensus de la blockchain est basé sur un nouvel algorithme de travail appelé Proof of Coverage, et récompense les participants (ou mineurs) en Helium Network Token (HNT). |
Le réseau Helium est un réseau Internet des objets (IoT) sans fil décentralisé utilisant le protocole de communication radio LoRaWAN. Développé par la société américaine Nova Labs, Helium est un réseau communautaire et open-source visant à permettre la communication de capteurs IoT dans les zones où la couverture sans fil ou mobile est minimale ou nécessite trop d’énergie. A la différence d’autres réseaux communautaires comme The Things Network (TTN), le réseau Helium utilise une blockchain afin d’encourager la création de réseaux sans fil publics décentralisés. Chacun étant ainsi incité à posséder un nœud du réseau afin de fournir la couverture sans-fil de sorte que celui-ci appartienne à tous les participants et non à une seule entreprise. Le mécanisme de consensus de la blockchain est basé sur un nouvel algorithme de travail appelé Proof of Coverage, et récompense les participants (ou mineurs) en Helium Network Token (HNT). |
||
Line 31: | Line 29: | ||
o Valideur: Un ordinateur connecté à la blockchain qui réceptionne et vérifie que le challenge s’est déroulé selon les règles du PoC. Il soumet la preuve de couverture à la blockchain pour faire partie du groupe de consensus et valider le prochain bloc. |
o Valideur: Un ordinateur connecté à la blockchain qui réceptionne et vérifie que le challenge s’est déroulé selon les règles du PoC. Il soumet la preuve de couverture à la blockchain pour faire partie du groupe de consensus et valider le prochain bloc. |
||
Ces différents acteurs agissent ensemble afin de fournir une preuve de couverture réseau. Un exemple du processus de preuve de couverture est décris ci-dessous: |
|||
o Le challenger émet un paquet “challenge“ via TCP-IP sur le réseau à destination d’un hotspot transmetteur afin que ce dernier prouve qu’il effectue bien une couverture réseau à l’endroit où il prétend être. |
o Le challenger émet un paquet “challenge“ via TCP-IP sur le réseau à destination d’un hotspot transmetteur afin que ce dernier prouve qu’il effectue bien une couverture réseau à l’endroit où il prétend être. |
||
- Le paquet est réceptionné par un autre hotspot (le Transmetteur) |
- Le paquet est réceptionné par un autre hotspot (le Transmetteur) |
Revision as of 19:15, 4 December 2022
Résumé
Abstract
I. Introduction
Le réseau Helium est un réseau Internet des objets (IoT) sans fil décentralisé utilisant le protocole de communication radio LoRaWAN. Développé par la société américaine Nova Labs, Helium est un réseau communautaire et open-source visant à permettre la communication de capteurs IoT dans les zones où la couverture sans fil ou mobile est minimale ou nécessite trop d’énergie. A la différence d’autres réseaux communautaires comme The Things Network (TTN), le réseau Helium utilise une blockchain afin d’encourager la création de réseaux sans fil publics décentralisés. Chacun étant ainsi incité à posséder un nœud du réseau afin de fournir la couverture sans-fil de sorte que celui-ci appartienne à tous les participants et non à une seule entreprise. Le mécanisme de consensus de la blockchain est basé sur un nouvel algorithme de travail appelé Proof of Coverage, et récompense les participants (ou mineurs) en Helium Network Token (HNT).
II. Le réseau Helium
L'intérêt d’Helium est que ce dernier est compatible avec les appareils LoRaWAN de classe A. Pour rappel, le protocole LoRaWAN définit 3 classes d’équipement: A, B et C, cette classe n’est pas fixe et peut évoluer. Tous les équipements LoRa doivent implémenter la classe A qui est également la plus économe. Dans le cas de l’utilisation classique, le schéma de communication est le suivant, l’objet sans fil qui remonte les données sera appelé un end-device. Ce dernier envoie donc un message à l’aide de la modulation LoRa. Ce message est ensuite capté par une ou plusieurs passerelles LoRaWAN aussi appelés gateway. La ou les passerelles se chargent de faire suivre le paquet au serveurs réseau LoRaWAN, aussi appelé LoRaWAN network server ou encore LNS. Le LNS est un peu le cœur du réseau LoRaWAN, il est chargé de nombreuses tâches, par exemple ils suppriment la duplication du même message qui aurait été reçu par plusieurs passerelles. Ensuite le message est envoyé à un serveur d’application. Le serveur d’application se charge du traitement des données reçues. Dans un réseau LoRaWAN classique, le LoRaWAN network server est géré par une seule entité, qu’il soit régional ou central. Ici, Hélium a également travaillé sur ce sujet pour proposer encore une fois quelque chose de décentralisé pour que l’accès au réseau ne soit pas soumis à l’acceptation de la part du gestionnaire du LoRaWAN network server. Pour pallier ce problème, Helium souhaite que les LoRaWAN network server privés soient compatibles avec l’infrastructure publique. Pour cela, sur le réseau Helium chaque LoRaWAN network server possède un OUI (Organizationally Unique Identifier), un appareil qui souhaite donc se connecter au réseau envoie donc un message particulier “Join Request” et en fonction des filtres (jusqu'à 5) enregistré par l’OUI sur la blockchain, la demande pour rejoindre est éventuellement acceptée. L’envoie de paquet peut ensuite se faire. Fort du fait d’être le plus large réseau LoRaWAN, Helium se place comme une solution attractive pour les fournisseurs de LoRaWAN network server qui ne souhaitent pas développer leur propre infrastructure tout en souhaitant se développer. Helium possède pour cela un serveur itinérant ou “Helium Roaming Server”. Ce dernier est chargé de récupérer les paquets à destination des partenaires et de les acheminer vers un serveur qui va les accepter. Ceci permet donc à une entreprise de proposer ses services à travers le réseau Helium.
III. La Blockchain Helium
1. Blockchain et algorithme de consensus
Une blockchain est un réseau pair-à-pair permettant d’opérer des transactions sécurisées sans intervention d’un tiers de confiance. Pour cela, un algorithme de consensus est nécessaire et permet aux acteurs du réseau de se coordonner au sein d’un environnement distribué. Cet algorithme assure que tous les nœuds du réseau parviennent en un temps fini à se mettre d’accord sur une unique vérité même en cas de défaillance de certains nœuds. Une blockchain émettrice d’une crypto-monnaie , correspond ainsi à une base de données distribuées infalsifiable où chaque acteur du réseau conserve une copie identique des transactions. Les acteurs du réseau, appelés également validateurs, doivent fournir une preuve de leur travail de sécurisation via le mécanisme de consensus et sont alors récompensés en recevant une nouvelle unité de la crypto-monnaie émise par la blockchain. Différents algorithmes de consensus sont actuellement utilisés notamment l’algorithme de Proof of Work (PoW) pour sécuriser la blockchain Bitcoin ou le Proof of Stake (PoS) pour sécuriser la blockchain Ethereum. Afin qu’une blockchain puisse répondre aux besoins des utilisateurs, elle doit pouvoir répondre à trois caractéristiques majeures que sont la sécurité, la décentralisation et la scalabilité. A ces trois caractéristiques est venu s’ajouter la nécessité d’avoir une blockchain écologiquement responsable, c’est-à-dire que son algorithme de consensus ne nécessite pas une consommation d’énergie démesurée (ce qui est le cas de la blockchain Bitcoin). En prenant en compte ces caractéristiques, l’entreprise Nova Labs à développer son propre algorithme de consensus pour sécuriser les transactions de la blockchain Helium.
2. Proof of coverage (PoC)
Le principe de l’algorithme est de vérifier en continu que chaque Hotspot fournit une couverture réseau et qu’il se trouve bien à la position à laquelle il prétend être. Un “challenge” correspond à une durée pendant laquelle les différents hotspots cherchent à se faire élire et appartenir au “groupe de consensus” pour pouvoir valider le prochain bloc de transactions. Lors d’un challenge les hotspots ont différents rôles:
- Challenger : Le hotspot qui émet le paquet de challenge PoC (tous les 360 blocs). o Transmetteur: Le hotspot qui transmet qui transmet les paquets de challenge et pouvant être observé par un autre hotspot géographiquement proche. - Témoin: Un hotspot géographiquement proche du transmetteur et qui signale au réseau l’existence d’un paquet de challenge o Valideur: Un ordinateur connecté à la blockchain qui réceptionne et vérifie que le challenge s’est déroulé selon les règles du PoC. Il soumet la preuve de couverture à la blockchain pour faire partie du groupe de consensus et valider le prochain bloc.
Ces différents acteurs agissent ensemble afin de fournir une preuve de couverture réseau. Un exemple du processus de preuve de couverture est décris ci-dessous:
o Le challenger émet un paquet “challenge“ via TCP-IP sur le réseau à destination d’un hotspot transmetteur afin que ce dernier prouve qu’il effectue bien une couverture réseau à l’endroit où il prétend être. - Le paquet est réceptionné par un autre hotspot (le Transmetteur) o Le Transmetteur envoie un paquet via onde radio (ici LoRa) - Ce paquet est éventuellement reçu par plusieurs hotspots entourant le Transmetteur. Ces hotspots sont appelés les “témoins”. Si plus de 10 témoins reçoivent ce paquet, seul 10 seront sélectionnés aléatoirement pour recevoir une o récompense dans leur participation au PoC - Une fois le paquet reçu, les témoins vont alors renvoyer un paquet via TCP-IP au challenger pour lui confirmer que le Transmetteur est bien à proximité d’eux. o Le Challenger va alors contacter un Validateur en lui fournissant la preuve de couverture. - Le validateur vérifie que le travail a bien été réalisé et soumet une demande à la blockchain pour faire partie du processus de validation du prochain bloc.
Les hotspots impliqués dans ce processus (Challenger, Transmetteur et Témoin) sont récompensés pour leur participation à la sécurisation du réseau en recevant sur leur adresse une fraction du token HNT généré lors de la création du nouveau bloc. Si le Validateur est choisi pour faire partie du groupe consensuel (composé de 43 membres), il suivra un algorithme similaire au HoneyBadgerBFT. HBBFT est un protocole de diffusion atomique asynchrone conçu pour permettre à un groupe de nœuds connus de parvenir à un consensus sur des liaisons non fiables. Dans la mise en œuvre d'Helium, un groupe consensuel de validateurs élus reçoit des transactions cryptées en entrée et procède à un accord commun sur l'ordre de ces transactions avant de former un bloc et de l'ajouter à la blockchain. Une fois le nouveau bloc créé, les nœuds du réseau (validateurs et hotspots) impliqués dans le processus de validation, reçoivent leur récompense en HNT. De pkus, tous les hotspots (y compris ceux ne pouvant pas participer au PoC car isolés géographiquement) reçoivent une récompense en HNT pour avoir retransmis les paquets de données provenant des appareils IoT.
Références
Nova Labs. Helium Network Documentation. docs.helium.com. Consulté le 3 Décembre 2022 sur https://docs.helium.com/
Coinbase. Guide to Helium. coinbase.com. Consulté le 3 Décembre 2022 sur https://www.coinbase.com/fr/cloud/discover/protocol-guides/guide-to-helium