Open access peer-reviewed chapter - ONLINE FIRST

Exploring the Use of Blockchain Technology in IoT Applications

Written By

Sergey Khvan, Refik Caglar Kizilirmak and Mehdi Shafiee

Submitted: 04 July 2023 Reviewed: 30 August 2023 Published: 21 December 2023

DOI: 10.5772/intechopen.1003635

Blockchain - Pioneering the Web3 Infrastructure for an Intelligent Future IntechOpen
Blockchain - Pioneering the Web3 Infrastructure for an Intelligen... Edited by Luyao Zhang

From the Edited Volume

Blockchain - Pioneering the Web3 Infrastructure for an Intelligent Future [Working Title]

Assistant Prof. Luyao Zhang, Dr. Mark Esposito and Dr. Terence Tse

Chapter metrics overview

34 Chapter Downloads

View Full Metrics

Abstract

The integration of blockchain and IoT presents tremendous potential for unlocking new opportunities and capabilities. With additive decentralized features, businesses and individuals can benefit from increased security, transparency, and efficiency in various applications. This chapter first presents the technical aspects of this integration, including the role of smart contracts in decentralized IoT systems and how blockchain enhances the security, stability, and transparency of IoT networks. Then, a step-by-step tutorial for developing smart contracts and ledger on Ethereum blockchain is presented, particularly from the perspective of IoT nodes. The considered scenario is for an IoT device that writes/retrieves data from the blockchain; however, the presented methodology can easily be extended for different use cases.

Keywords

  • Internet of Things (IoT)
  • blockchain
  • smart contract
  • Ethereum
  • decentralized systems

1. Introduction

The Internet of Things (IoT) systems have become increasingly popular in several applications ranging from smart homes, automation, and healthcare to smart transportation [1]. The IoT infrastructure mainly interconnects countless devices, sensors, and systems over the existing Internet Protocol (IP) to collect, manipulate, and visualize the data for intelligent decision-making. It is a proven technology that enhances the efficiency and productivity of many processes in several industries [1]. The growing interest in academia and industry will lead to new innovations in the field, which will have a more visible impact on our daily lives.

To fully exploit the potential of IoT systems and accommodate a massive number of devices in the network, resource-efficient (e.g., energy consumption, spectrum usage, computational resources) multiplexing methods play a key role [2]. IoT multiplexing methods combine multiple data streams from several devices into a single channel. The effective use of multiplexing method reduces the use of network resources resulting in reliable and sustainable network performance. Mainly, when the limited memory, processing power, and battery life of an IoT device are considered, the importance of these multiplexing methods is more evident. Quality of service (QoS) is another crucial aspect of IoT networks, as different applications or different devices in the same network may require different QoS levels [2]. The multiplexing methods may also help to reach desired QoS levels by optimally allocating the resources among the devices. IoT systems may also suffer from interference in case multiple devices share the same spectrum [3]. Multiplexing methods should also consider interference management while sustaining efficient spectrum usage. Moreover, the security of IoT data is of concern in many applications. Multiplexing methods should consider security threats and ensure the isolation of data streams from different IoT devices to prevent unauthorized access or interference. Furthermore, the scalability of the multiplexing methods is important in IoT networks since the number of IoT devices and associated data can grow rapidly. When accommodating a massive number of IoT devices, multiplexing methods should be able to adjust and optimize resource allocation while still maintaining the QoS requirements of the devices. Lastly, the real-time nature of IoT networks necessitates more computationally efficient multiplexing methods, for example, with less control signaling, so that the devices can join or leave the network and are assigned their channels in a lightweight manner. Considering all these challenges, the design and development of IoT multiplexing methods is an active research field targeting efficient, reliable, and secure communication among connected devices.

The multiplexing methods mainly refer to physical layer processing, such as time division multiplexing (TDM) and frequency division multiplexing (FDM). TDM primarily shares the spectrum in time among the devices, whereas FDM shares the spectrum by dividing it into multiple slots. Multiplexing can sometimes occur using non-orthogonal methods where devices simultaneously operate in the entire spectrum using signal processing methods such as spread spectrum or interference cancelation. There are several works in the literature that optimizes the IoT network performance using these methods in the physical layer [4, 5, 6]. In practice, all these physical layer multiplexing methods occur between the devices and the first-hop router and today implementations are based on well-known link-layer standards such as LoRaWAN [7], 802.11 (Wi-Fi) [8], and 802.15.4 (ZigBee) [9]. Some versions of LoRaWAN use spread spectrum, 802.11 uses orthogonal frequency division multiplexing (OFDM), and 802.15.4 employs TDMA or carrier sense multiple access (CSMA). Most of the off-the-shelf IoT devices support either of these standards, and developers are not allowed to modify the physical layer specifications, including the multiplexing method implemented.

The multiplexing in IoT can also refer to the methods implemented in upper layers, such as efficient routing for low-power wireless packet-switched networks such as 6LoWPAN [10]. 6LowPAN protocol runs in the network layer, specifically in IPv6, and facilitates the integration of the IP-based network layer to the link layer (such as Wi-Fi, ZigBee) by allowing mesh networking among IoT devices. Furthermore, routing protocol for low power and lossy networks (RPL) is another network layer protocol proposed for IoT devices for efficient routing of the packets arriving from different IoT devices [11].

In the application layer, there are other protocols that consider the power constraint of the IoT devices, such as MQ telemetry transport (MQTT) and constrained application protocol (CoAP). MQTT is a lightweight application layer protocol based on publish-subscribe messaging pattern, which requires a central intermediary node called broker to exchange data between the devices and servers [12]. CoAP, on the other hand, which is again a lightweight protocol, allows devices to communicate with each other through mesh topology using client-server model [13]. Both are widely used in IoT domain.

Recently, the decentralization of IoT systems using blockchain has also emerged as an alternative solution that addresses the aforementioned scalability, reliability, and security issues. First of all, using smart contracts that are programmable agreements executed on blockchain can manage the access rights of IoT devices that inherently give control over the control of QoS requirement of different devices [14]. The same approach can also be used to allocate resources efficiently while each device is multiplexed in the same channel. Another solution that blockchain brings is its enhanced security and privacy features. In blockchain, each transaction is transparent, meaning that multiple devices can access it. Data stored on the blockchain is tampered-proof that ensures data integrity and eliminates the risk of unauthorized modifications.

Furthermore, blockchain can store and process data securely, either locally or in a distributed manner. IoT devices can participate as “full nodes” in the blockchain’s consensus mechanisms. This approach may reduce the latency in the network. However, full nodes need to store entire blockchain data, which is not desired for IoT devices with limited memory storage. Therefore, a more preferred approach is that IoT devices implementing “wallet” interact with the blockchain through transactions of smart contracts to write and retrieve data from the blockchain. Figure 1 shows the scenario considered in this chapter. In Section 2, we give more insights of blockchain-based systems. In Section 3, we discuss the advantages of the integration of blockchain and IoT. In Section 4, we show the building and deployment of a smart contract for a simple scenario and IoT implementation with blockchain. Finally, we conclude in Section 6.

Figure 1.

Illustration of a blockchain-based IoT system.

2. Blockchain

Blockchain technology is a versatile and secure ledger system that can be used in various industries. The first idea of blockchain technology was introduced in 2008 by Satoshi Nakamoto [15]. Blockchain is a shared, immutable ledger that records transactions and tracks assets in a business network. Blocks are linked together using hash addresses and cannot be overwritten. The transaction process starts with a request broadcasted through the network. Then, consensus algorithm is used to verify the transaction according to the data stored in the blockchain. After the verification, a new block is created and added to the blockchain. To provide better reliability, full nodes store a copy of the entire blockchain. Blockchain brings trust to peer-to-peer networks and ensures the anonymity and security of the users.

Application of the blockchain for the IoT becomes more popular, as it brings the solution to main drawbacks of the IoT. Besides the enhanced security, privacy, and transparency, the use of the blockchain for IoT applications allows the implementation of new functionalities and business models [16].

One of the key benefits is the ability to ensure transaction authenticity and record ownership transfers. This is particularly important in supply chain management, where blockchain can be used to track the sources of insecurity in IoT devices and provide a transparent and immutable record of product information, such as origin, processing method, and transportation route [17].

In Figure 2, a simple blockchain schema is given, where the genesis block is the first block of the blockchain. In the IoT example that we present in Section 4, we will deploy the smart contract on this block. Each block of the blockchain stores the hash code of the next block. In the blockchain, no other block can be inserted in between the blocks; therefore, the history of transactions could be secured.

Figure 2.

Illustration of a blockchain.

2.1 Consensus

Consensus is a fundamental aspect of blockchain technology that ensures agreement among participants in the network regarding the validity of transactions and the state of the blockchain [18]. A consensus protocol is used to assign the contribution of nodes(miners) that will be used to verify each transaction. Consensus protocol makes transactions more efficient, secure, binds them to time, and allows the creation of new functionality. It is achieved through various consensus mechanisms, such as Proof of Work (PoW), Proof of Stake (PoS), Proof of Authority (PoA), and Proof of Luck (PoL) [19]. After achieving consensus, new blocks are added to the blockchain.

The most common algorithms are Proof of Work (PoW) and Proof of Stake (PoS). Proof of Work (PoW) uses miners to confirm transactions. Miners are “unreliable” users/actors who compete in solving a mathematical puzzle or a challenge to have the new block accepted by the blockchain. This process is called mining and is designed as a way to be easily solvable by the blockchain, but requires significant computational power from the user. Limitations in scalability and vulnerability to attack are the main drawbacks of PoW [20]. Those limitations and possible environmental impacts due to low energy efficiency [21] are the main reason for the growing popularity of other algorithms.

Proof of Stake (PoS), on the other hand, selects validators based on the amount of cryptocurrency on the account and willingness to “stake” as collateral [22]. To validate the transaction more than half of the selected users must accept the information, which is passed as a request. In comparison with PoW, PoS reduces energy consumption due to the absence of mining [21]. Even though PoS became more popular due to better energy efficiency, it also has its challenges. The main ones are “nothing at stake” problem and potential centralization tendencies [20]. Therefore, the choice of the right consensus algorithm should be carefully considered according to the requirements for the implementation.

2.2 Smart contracts

Smart contracts is a code, which is stored in the blockchain. Their functionality can be executed by the nodes of the blockchain, when certain conditions are met. It eliminates the need for intermediaries and increases efficiency and transparency in various applications [23]. Smart contracts are a key feature of blockchain technology and enable the automation of complex processes and the creation of decentralized applications (DApps) [24].

2.3 Challenges

As any other technology blockchain faces several challenges. Those are scalability, throughput, latency, privacy, security, interoperability, and regulatory and legislative issues [18, 24, 25]. Scalability is a major concern as blockchain networks need to handle a large number of transactions while maintaining decentralization and security [25]. Moreover, it may require a lot of storage in the nodes of the blockchain, as they store full copies of the entire chain. Another crucial part is privacy and security, as blockchain transactions are transparent and immutable, raising concerns about data protection and confidentiality [25]. Loss of the data may lead to new issues related to legal rights. Interoperability is another challenge, as different blockchain platforms may have different consensus mechanisms, governance models, and technical specifications, making it difficult to integrate and exchange data between them [26].

3. Integration of blockchain and IoT

Most IoT systems today operate on centralized server systems. These server systems have the task of storing, maintaining, and retrieving IoT data. They employ powerful data analytics tools capable of handling large volumes of data, enabling organizations to analyze, apply machine learning techniques, and visualize the data. These centralized systems also rely on various communication, data management, and security protocols to safeguard and sustain their operations. However, despite the prevalent use of centralized systems in the IoT domain, they face challenges related to scalability, latency, and the potential for a single point of failure, which undermines the feasibility of IoT systems [14].

The use of blockchain technology offers several advantages to overcome the aforementioned challenges. Some of these advantages include:

  • Decentralization: In a decentralized network, multiple nodes participate in verifying and validating transactions. This completely removes the need for a single central server and reduces the risks associated with a single point of failure. For example, well-known denial of service (DoS) attacks are common security threats in centralized systems.

  • Immutability and transparency: The data stored on a blockchain is permenant and cannot be altered. This feature is particularly useful in applications where multiple entities need to trust the data on the blockchain. In contrast, centralized systems are controlled by a single authority, which lacks transparency and raises concerns in applications where data ownership and privacy are important.

  • Enhanced security: Public key cryptography is widely used in many blockchain systems. It enhances data security through digital signatures that ensure the integrity of data. Furthermore, the validity of the transaction is verified by multiple participants via consensus mechanisms. This inherent characteristic significantly strengthens the system’s resilience against unauthorized data tampering.

  • Smart contracts: Smart contracts form the foundation of data exchange in a blockchain-based IoT systems. They are self-executing agreements with predefined rules deployed on the blockchain. They enable interactions between IoT devices and allow secure and autonomous transactions by eliminating the need for intermediate devices. Smart contracts can facilitate trust and streamline processes within IoT networks.

  • Scalability: In the context of blockchain, scalability refers to the ability to handle a high number of transactions per second. Traditional blockchains may face scalability challenges as network traffic grows. Several methods have been proposed to overcome these challenges, such as off-chain solutions, also known as layer-2 solutions. These solutions allow transactions to be processed outside the main blockchain, creating additional space and reducing the change of congestion. In the domain of IoT, this becomes particularly useful as the number of IoT devices and associated data grow. Moreover, these layer-2 solutions bring additional security and privacy benefits of their own.

4. Explaining blockchain technology and working with Alchemy

This section presents a step-by-step tutorial for smart contract deployment on the Ethereum blockchain and writing/retrieving data through it, for IoT applications. We use Alchemy blockchain development platform, which is a popular tool for software engineers to develop their DApps [27]. It provides a set of APIs, tools, and other solutions to facilitate the development of blockchain applications. Alchemy allows building and effectively deploying smart contacts on several public blockchain networks, including popular Ethereum [28] and Solana blockchains.

The popularity of Alchemy has increased recently with the growing momentum in decentralized applications with its friendly graphical user interface (GUI) and specific tools for DApps. The process of DApp development starts with building a smart contract for a specific IoT scenario that runs on a selected blockchain. Then, the contract is deployed and tested on a testnet in order to verify its functionalities of storing and reading data from the blockchain. In this section, we consider Goerli Ethereum testnet which is a separate blockchain that mimics the original Ethereum blockchain allowing developers to test their DApps without interacting with the main Ethereum network. Goerli testnet tools are also available in Alchemy platform. Please note that we are not discussing the implementation of a full Ethereum validating node; rather, we are focusing on smart contract development. Any workstation connected to the Internet would suffice for creating and uploading smart contracts to the blockchain. We also demonstrate how this smart contract is utilized within a DApp created using Alchemy, and we showcase how IoT devices interact with this DApp. Here are other prerequisites for the development of DApp at the workstation.

Prerequisites:

  • Alchemy account: A service providing APIs and tools for blockchain development and interaction.

  • MetaMask Wallet: Browser extension wallet for Ethereum transactions with a small amount of Ether (ETH) for fees. 0.001 ETH is required in mainnet to obtain the testing cryptocurrency (Goerli ETH).

  • VSCode: Microsoft’s code editor offering extensions for various languages, including Python and Solidity that we consider in this tutorial.

  • Python 3.9+: Programming language required for Ethereum and blockchain development.

  • Solidity: Ethereum’s programming language for creating smart contracts.

  • Web3: Python library enabling interaction with Ethereum nodes and smart contracts.

  • Solcx: Python library for compiling Solidity smart contracts for Ethereum.

Installation of web3 and solcx using terminal.

To install “web3” and “solcx” libraries, the following commands should be entered in the command prompt.

The first command in Figure 3 will download and install the necessary files for the “solcx” library, which is used for Solidity contract compilation. The second command is for “web3” library installation, which is essential for interacting with Ethereum blockchain networks using Python. After running these commands, the installation process for both libraries should begin. Once the installation is completed, they can be used in Python projects on the workstation to interact with Ethereum smart contracts and implement blockchain functionality.

Figure 3.

Installing py-solc-x and web3 libraries.

After preparing the development environment, in the following sections, we describe each phase of building a blockchain-based IoT system. We start with creating a DApp with Alchemy in Section 4.1, and then proceed to create a smart contract in Section 4.2, followed by deploying the smart contract to the blockchain in Section 4.3. Lastly, reading and writing data from the blockchain are described in Section 4.4. While our discussion can be applied to various scenarios, we are specifically demonstrating a scenario in which an IoT device writes its sensor reading to the blockchain and is also able to read other data from the blockchain.

4.1 Creating a DApp with Alchemy

DApps can be created using Alchemy development platform. For that purpose, users should register and log into https://www.alchemy.com/. The dashboard is given in Figure 4 where users can create a new DApp after selecting Ethereum Goerli. After clicking “Create App,” a DApp named IoT_test will be generated on the Ethereum Goerli blockchain, and users will encounter the interface shown in Figure 5. The API key of the DApp can be obtained by selecting “View Key.” This key will be utilized later when deploying our smart contract to the blockchain. It plays a crucial role in enabling the DApp to establish communication and interaction with the deployed smart contract. The API key is an authentication mechanism that allows the DApp to access and execute functions within the smart contract securely.

Figure 4.

Creating a new DApp, named IoT_test, using Alchemy.

Figure 5.

Alchemy dashboard of created app.

Testing the DApp without deploying any smart contract involves installing the Metamask wallet, obtaining test ETH from https://goerlifaucet.com/, and connecting to the testnet. This allows exploration and interaction with the DApp on the testnet to ensure proper functionality before deploying smart contracts. Note that there are no legal Ethereum rules that mandate testing. For additional guidance on testing the DApp, please refer to Ref. [29]).

4.2 Building the contract

Developers utilize the Solidity programming language to create smart contracts for Ethereum blockchain. Alchemy provides tools for streamlined deployment and interaction of these contracts within their DApps on the blockchain. For this example, we present a smart contract for a simple IoT scenario through which IoT device will collect data from its sensor and store it in the blockchain. The Solidity code can be found in Figure 6. This smart contract, named IoT_SmartContract, is created using Solidity programming language; hence, smart contracts have .sol extension. Through this smart contract, the IoT device stores the value of sensor reading and timestamp representing the time when the data was collected in value and timestamp variables, respectively. There are three functions defined in the smart contract, namely addReading (adds a value from the sensor with timestamp as an array [timestamp, value]), getReadingCount returns the number of the blocks in the blockchain, and getReading requires the index of the block to retrieve data from.

Figure 6.

Sample IoT smart contract (IoT_SmartContract.Sol) created using solidity.

4.3 Deploying the contract

After saving the IoT_SmartContract.sol file, it needs to be deployed on the Ethereum blockchain. The code in Figure 7 deploys the smart contract created above on the blockchain; in our case it is Ethereum Goerli. For the DApp, we created earlier using Alchemy to interact with this uploaded smart contract ALCHEMY_API_KEY and ALCHEMY_URL should be set. The ALCHEMY_API_KEY is the API key obtained earlier from the “View Key” option in the Alchemy dashboard of the created app, shown in Figure 5. ALCHEMY_URL should be set as “https://eth-goerli.g.alchemy.com/v2/ALCHEMY_API_KEY.” This URL is also available at the Alchemy dashboard of the DApp. Furthermore, in the code, IoT_SmartContract.sol file location should also be assigned to contract_file_path. After running the code, the smart contract will be deployed on the blockchain and it will print the address of the block at which it was deployed. When a smart contract is deployed on a blockchain, it is assigned a unique address on that blockchain. For example, we present the block address in which our smart contract is written in Figure 8. This address should be kept for later use as one of the required inputs on the IoT device and assigned to contract_address when writing/retrieving data, as described in the next section.

Figure 7.

Deploying the smart contract on blockchain, created using Python.

Figure 8.

Output prompt from the terminal after contract deployment.

4.4 Interacting with IoT devices and the blockchain for data exchange

The following describes the process for writing and retrieving data from the blockchain. The code is provided in Figure 9. While any device with the DApp’s API key, an ETH wallet, and the DApp’s smart contract address can read and write data on the blockchain, our scenario specifically focuses on IoT devices writing sensor readings and subsequently retrieving data of other sensors.

Figure 9.

Writing and retrieving data from the blockchain, created using Python.

Note that the code in Figure 9 is given for a computer development environment. When IoT microcontrollers are used to read and write data, minor modifications to suit the specific microcontroller are required. Nonetheless, the procedure remains the same across different microcontrollers and the fundamental principles of interacting with the blockchain are the same.

In the code, the sensor reading from an IoT device, represented by the value stored in the variable reading_value, is written to the blockchain along with a timestamp. For this example, we assigned one integer value of “45” to reading_value as a sample sensor reading. However, it can be changed according to the user’s need, such as real-time sensor reading. After executing the code, this reading value will be written to the blockchain.

In the same run, we also provide retrieving data from the blockchain. Please note that the reading and retrieving portions of the code can be separated as needed; however, up to line-42 should remain common. The code will display the count of stored sensor reading data on the blockchain. Note that the index of the first block is 0. In order to retrieve the data stored, the user needs to provide the index of the block. Figure 10 shows the code output. For example, it displays that there are currently four data entries in the blockchain. After entering the block index of the data to be retrieved, the code returns the timestamp and data. In this example, block index is entered as 1 and the associated data is [1,686,028,212,45]. The format of the time is in Unix timestamp format.

Figure 10.

Output prompt from the terminal to retrieve data.

In using public blockchains, there is a cost for each transaction to write data on blockchain. When a transaction is submitted, a certain amount of cryptocurrency, known as a transaction fee, should be paid to compensate the network nodes for the resources consumed in validating the transaction. In the context of Ethereum, the native token of the blockchain is ETH and the amount to be paid should be stored in the wallet of the IoT devices that are submitting the transactions. In Figure 10, the node_address should be set to the Ethereum wallet address of the IoT device and private_key should store the private key associated with the wallet. After each transaction, the corresponding transaction fee will be deducted from this address. Transaction fees in Ethereum, often referred to as gas fees, are measured in units of Gwei. Users may opt to pay a higher fee for an increased transaction speed. In Figure 10, the gas: value can be changed based on network conditions and user preferences. Note that reading the data from the blockchain does not require a transaction fee.

The transactions in the DApp can be viewed in the Alchemy dashboard (see Figure 5). Here, each transaction or request to the API could be tracked. Also, the addresses of the previous requests could be found. Error codes of the failed transactions are also shown in the result window.

After completing the testing phase on the testnet, the transition to the Ethereum mainnet necessitates the creation of a new DApp. Users need to establish a separate DApp within the Alchemy platform, selecting the Ethereum mainnet environment. The Goerli-based application remains essential for code testing purposes. The same codes we provided above can be used in mainnet, except for the Alchemy_API_Key and Alchemy_URL, which should be configured for the DApp created on mainnet.

5. Conclusions

In this chapter, we addressed the main challenges of IoT systems and discussed how blockchain-based IoT systems can address these challenges. Specifically, we asserted that the reliability, security, transparency, immutability, and scalability aspects of IoT networks can be enhanced with blockchain systems. We then provided a step-by-step tutorial with a detailed list of used tools on how to build and implement an IoT system on a blockchain. We used the most widely used platforms and public blockchain. We considered a simple scenario of reading sensor data at an IoT device and writing data on a blockchain. We provided source codes for building smart contract, deploying it on a blockchain and writing/retrieving data from the blockchain. Our scenario includes the case where the devices interact with the blockchain network only. The work can be further expanded by allowing interactions between the devices, as well as incorporating hybrid solutions with a centralized server.

Acknowledgments

This work was supported by the Faculty Development Competitive Research Grant Programs of Nazarbayev University (grant no. 20122022FD4125 and grant no. 20122022FD4112).

Conflict of interest

The authors declare no conflict of interest.

Abbreviations

DAppdecentralized application
IoTInternet of Things
GUIgraphical user interface
QoSquality of service
TDMtime division multiplexing
FDMfrequency division multiplexing
CSMAcarrier sense multiple access
MQTTMQ telemetry transport
CoAPconstrained application protocol
ETHether
RPLrouting protocol for low power and lossy networks
OFDMorthogonal frequency division multiplexing
APIapplication programming interface
PoSproof of stake
PoWproof of work
PoLproof of luck
PoAproof of authority

References

  1. 1. Hassan WH. Current research on Internet of Things (IoT) security: A survey. Computer Networks. 2019;148:283-294
  2. 2. Oliveira L, Rodrigues JJPC, Kozlov SA, Rabêlo RAL, de Albuquerque VHC. MAC layer protocols for Internet of Things: A survey. Future Internet. 2019;11(1):16
  3. 3. Sarma SS, Hazra R, Mukherjee A. Symbiosis between D2D communication and industrial IoT for industry 5.0 in 5G mm-wave cellular network: An interference management approach. IEEE Transactions on Industrial Informatics. 2021;18(8):5527-5536
  4. 4. An S, Wang H, Sun Y, Lu Z, Yu Q. Time domain multiplexed LoRa modulation waveform design for IoT communication. IEEE Communications Letters. 2022;26(4):838-842
  5. 5. Jia M, Yin Z, Guo Q, Liu G, Gu X. Downlink design for spectrum efficient IoT network. IEEE Internet of Things Journal. 2017;5(5):3397-3404
  6. 6. Wu Q, Chen W, Ng DW, Schober R. Spectral and energy-efficient wireless powered IoT networks: NOMA or TDMA? IEEE Transactions on Vehicular Technology. 2018;67(7):6663-6667
  7. 7. Haxhibeqiri J, De Poorter E, Moerman I, Hoebeke J. A survey of LoRaWAN for IoT: From technology to application. Sensors. 2018;18(11):3995
  8. 8. Banerji S, Chowdhury RS. On IEEE 802.11: Wireless LAN technology. 2013. arXiv preprint arXiv:1307.2661
  9. 9. Ndih ED, Cherkaoui S. On enhancing technology coexistence in the IoT era: ZigBee and 802.11 case. IEEE Access. 2016;4:1835-1844
  10. 10. Yang Z, Chang CH. 6LoWPAN overview and implementations. In: Proceedings of the 2019 International Conference on Embedded Wireless Systems and Networks (EWSN); China: ACM; 2019. pp. 357-361
  11. 11. Iova O, Picco P, Istomin T, Kiraly C. RPL: The routing standard for the Internet of Things... Or is it? IEEE Communications Magazine. 2016;54(12):16-22
  12. 12. Yassein MB, Shatnawi MQ, Aljwarneh S, Al-Hatmi R. Internet of Things: Survey and open issues of MQTT protocol. In: 2017 International Conference on Engineering & MIS (ICEMIS); Tunusia: IEEE; 2017. pp. 1-6
  13. 13. Tariq MA, Khan M, Raza Khan MT, Kim D. Enhancements and challenges in CoAP—A survey. Sensors. 2020;20(21):6391
  14. 14. Zhang Y, Kasahara S, Shen Y, Jiang X, Wan J. Smart contract-based access control for the Internet of Things. IEEE Internet of Things Journal. 2018;6(2):1594-1605
  15. 15. Nakamoto S. Bitcoin: A peer-to-peer electronic cash system. Decentralized Business Review. 2008
  16. 16. Dai HN, Zheng Z, Zhang Y. Blockchain for Internet of Things: A survey. IEEE Internet of Things Journal. 2019;6(5):8076-8094
  17. 17. Rejeb A, Keogh JG, Treiblmaier H. Leveraging the Internet of Things and blockchain technology in supply chain management. Future Internet. 2019;11(7):161
  18. 18. Islam S, Islam MJ, Hossain M, Noor S, Kwak KS, Islam SR. A survey on consensus algorithms in blockchain-based applications: Architecture, taxonomy, and operational issues. IEEE Access. 2023
  19. 19. Alrowaily MA, Alghamdi M, Alkhazi I, Hassanat AB, Arbab MM, Liu CZ. Modeling and analysis of proof-based strategies for distributed consensus in blockchain-based peer-to-peer networks. Sustainability. 2023;15(2):1478
  20. 20. Rebello GA, Camilo GF, Guimaraes LC, de Souza LA, Thomaz GA, Duarte OC. A security and performance analysis of proof-based consensus protocols. Annals of Telecommunications. 2021;77:517-537
  21. 21. Shi X, Xiao H, Liu W, Lackner KS, Buterin V, Stocker TF. Confronting the carbon-footprint challenge of blockchain. Environmental Science Technology. 2023;57(3):1403-1410
  22. 22. Bala K, Kaur PD. A novel game theory based reliable proof-of-stake consensus mechanism for blockchain. Transactions on Emerging Telecommunications Technologies. 2022;33(9):e4525
  23. 23. Zehir C, Zehir M. Emerging blockchain solutions in the mobility ecosystem: Associated risks and areas for applications. Bussecon Review of Social Sciences (2687–2285). 2022;4(2):1-14
  24. 24. Trivedi S, Mehta K, Sharma R. Systematic literature review on application of blockchain technology in E-finance and financial services. Journal of Technology Management Innovation. 2021;16(3):89-102
  25. 25. Yli-Huumo J, Ko D, Choi S, Park S, Smolander K. Where is current research on blockchain technology?—A systematic review. PLoS One. 2016;11(10):e0163477
  26. 26. Abdullah S, Arshad J, Alsadi M. Chain-net: An internet-inspired framework for interoperable blockchains. Distributed Ledger Technologies: Research and Practice. 2022. DOI: 10.1145/3554761
  27. 27. Alchemy - the web3 development platform. Available from: https://www.alchemy.com/ [Accessed: June 29, 2023]
  28. 28. Ethereum Foundation. Available from: https://ethereum.org/en/ [Accessed: June 29, 2023]
  29. 29. A guide to building, testing, and deploying your first DApp with Truffle, Ethers.js, Ganache, and React. Available from: https://dev.to/heydamali/a-guide-to-building-testing-and-deploying-your-\first-dapp-with-truffle-ethersjs-ganache-and-react-1mh0 [Accessed: September 2, 2023]

Written By

Sergey Khvan, Refik Caglar Kizilirmak and Mehdi Shafiee

Submitted: 04 July 2023 Reviewed: 30 August 2023 Published: 21 December 2023