El objetivo de este proyecto es desarrollar una versión descentralizada del Protocolo Lorawan gracias al uso de blockchain. Llamamos a este nuevo protocolo Lora-Mac. Además, se ha desarrollado un caso de uso descentralizado como una extensión. La extensión se considera en la remuneración en redes de origen público.
Se ha desarrollado un nuevo protocolo que reemplaza el protocolo Lorawan existente. En lugar de usar la criptografía simétrica como Lorawan, utiliza la criptografía asimétrica para proporcionar no repudio además de la confidencialidad y la autenticidad. El par de claves públicas-privadas se genera utilizando curvas elípticas. Este par de claves se utiliza para firmar el contenido del mensaje intercambiado entre dos entidades. Una clave simétrica utilizada para cifrar el contenido de los mensajes entre las dos entidades se genera utilizando la clave privada del remitente y la clave pública del receptor. Este procedimiento se realiza utilizando ECDH y luego normalizando las claves con HKDF.
Cose se usa como un formato para los paquetes trazados entre las entidades que participan en el protocolo. Por lo tanto, un paquete se encripta en un mensaje COSE_Encrypt0 y luego se agrega una cose_countersignature dentro de él. Desde que en el momento de desarrollar este proyecto, la firma COSE_COUNTERSEN donde ya no se desarrolla en la Biblioteca Pycosa, se ha realizado una bifurcación de la biblioteca que contiene la firma de mostrador.
El desafío del caso de uso de la remuneración es emitir transacciones de micropapa (en el orden de unos pocos centavos) para pagar los mensajes transmitidos por una puerta de enlace. De hecho, hacerlo de forma nativa en la cadena de bloques de Ethereum costaría más tarifas que el micropapa real. Por lo tanto, se han experimentado dos métodos de escala fuera de la cadena (escalamiento de la capa 2):
El proyecto se divide en 4 componentes principales:
El dispositivo final consiste en una Raspberry Pi conectada a través de la serie a una lovía. Por lo tanto, el dispositivo final se divide en 2 directorios: /lora_device y /lopy. Hay más instrucciones sobre cómo ejecutar los dos programas dentro de cada directorio.
El directorio /ForingNetWorkServer podría ejecutarse en una Raspberry Pi que actúa como una puerta de enlace. El programa es compatible con el proyecto Lora Network Packet Reenseer.
La blockchain utilizada para este proyecto es Ethereum. El contrato inteligente implementado para este propósito se puede encontrar en el directorio /blockchain /contratos.
El directorio /servidor se divide en 3 subdirectorios: /servidor de aplicaciones, /homenetworkserver, /pago. El servidor que se compone de un back-end, un front-end y un servicio de pago, está empaquetado en una instancia de composición de Docker para implementarse fácilmente en un servidor.