L'objectif de ce projet est de développer une version décentralisée du protocole Lorawan grâce à l'utilisation de la blockchain. Nous appelons ce nouveau protocole Lora-Mac. De plus, un cas d'utilisation décentralisé a été développé comme extension. L'extension considère dans la rémunération des réseaux provenant de la foule.
Un nouveau protocole qui remplace le protocole Lorawan existant a été développé. Au lieu d'utiliser une cryptographie symétrique comme Lorawan, il utilise la cryptographie asymétrique afin de fournir une non-répudiation en plus de la confidentialité et de l'authenticité. La paire de clés public-privé est générée à l'aide de courbes elliptiques. Cette paire de clés est utilisée pour signer le contenu du message échangé entre deux entités. Une clé symétrique utilisée pour crypter le contenu des messages entre les deux entités est générée en utilisant la clé privée de l'expéditeur et la clé publique du récepteur. Cette procédure est effectuée en utilisant ECDH puis en normalisant les clés avec HKDF.
Le COSE est utilisé comme format pour les paquets trasés entre les entités participant au protocole. Un paquet est ainsi chiffré dans un message COSE_ENCRYPT0, puis un COSE_COUNTERSIGNATURE est ajouté à l'intérieur. Depuis au moment du développement de ce projet, la Cose_Countersignature n'est pas déjà développée dans la bibliothèque Pycose, une fourche de la bibliothèque contenant la contre-signature a été effectuée.
Le défi du cas d'utilisation de rémunération consiste à émettre des transactions de micropaiement (de l'ordre de quelques cents) pour payer les messages transmis par une passerelle. En fait, le faire nativement sur la blockchain Ethereum coûterait plus cher en frais que le micropaiement réel. Ainsi, deux méthodes d'échelle hors chaîne (mise à l'échelle de la couche 2) ont été expérimentées:
Le projet est divisé en 4 composantes principales:
Le dispositif final se compose d'un Raspberry Pi connecté par série à une Lopy. Ainsi, le périphérique final est divisé en 2 répertoires: / lora_device et / ophy. Il y a plus d'instructions sur la façon d'exécuter les deux programmes à l'intérieur de chaque répertoire.
Le répertoire / ForwardingNetWorkServer pourrait être exécuté sur un Raspberry Pi agissant comme une passerelle. Le programme est compatible avec le projet LORA Network Packet Forwardor.
La blockchain utilisée pour ce projet est Ethereum. Le contrat intelligent déployé à cet effet peut être trouvé dans le répertoire / blockchain / contrats.
Le répertoire / serveur est divisé en 3 sous-répertoires: / Application Server, / HomenetWorkServer, / Payment. Le serveur composé d'un back-end, d'un service frontal et d'un service de paiement est emballé dans une instance Docker Compose afin d'être facilement déployé sur un serveur.