This package provides an implementation of the PoI-based blockchain. This is a new model for LoRaWAN join procedure.
Main contact: Lounès Meddahi (lounes.meddahi@gmail.com)
The PoI-based blockchain is a blockchain based on a trust index associated with each full node in the blockchain network and an overall threshold. When the trust index (a value between 0 and 1) of a complete node is lower than the threshold, the node is definitely banned from the blockchain network. As the node's trust index is added to the blockchain when it adds a new block to the blockchain, other full nodes can easily reject the block mined by such a node. In the case of LoRaWAN, if a network server has allowed too many illegitimate devices to connect, its trust index will fall below the threshold and it will be banned.
In order to get such a blockchain, we adapted the classic blockchain scheme.
To implement the blockchain, we distinguished between the two possible block types (genesis block and classic block). We have provided an object-oriented implementation in python.
Before deploying the blockchain, you need to define a blockchain network. In the case of PoI-based blockchain for LoRaWAN, the users of the blockchain network (the nodes) are the network servers. In this repository, we do not propose an easy installation of such an architecture. To use our PoI-based blockchain implementation, you need to define the communication rules between users to spread the blockchain. An implementation for the LoRaWAN case is available on GitHub.
The paper has been accepted at ISNCC'23.
If you use the project in your work, please consider citing it with:
@misc{Block4PoId,
author = {Lounès, Meddahi and Ahmed, Meddahi and Patrick, Sondi and Fen, Zhou},
title = {Leveraging blockchain for a robust and scalable device identification in LoRaWAN},
year = {2023},
journal = {IEEE 2023 International Symposium on Networks, Computers and Communications (ISNCC'23)},
}