Satoshi Nakamoto laid the foundation for the Blockchain technology in 2008 by presenting a solution for decentralized trust among unknown entities . BitCoin, the first decentralized digital currency, impacted financial institutions, and a wide-number of cryptocurrencies entered the market in the following years. The majority of blockchain applications currently involve digital cryptocurrencies, where the users exchange monetary value with each other through the decentralized framework.
Enabling decentralized trust through a consensus protocol and distributed storage through a tamper-proof ledger are the critical features of the Blockchain technology. Any application that involves multiple stakeholders can benefit from these features because it enables transparent interactions without requiring a trusted third party. IoT applications in the context of smart cities and supply chain management consist of numerous stakeholders, where the Blockchain technology can be used to strengthen the confidence among the involved entities and organizations.
Although the technology has been around for almost a decade, its technical underpinnings are made clearer only in the last two years. On the one hand, architects designing IoT applications are fully aware of the limitations and capabilities of contemporary IoT platforms and technologies. On the other hand, Blockchain developers and enthusiasts understand the practical details of the Blockchain frameworks and their viability on different classes of computation and storage platforms. We notice a gap between the two communities, and it is essential to bridge this gap to fully exploit the capabilities of blockchain technology beyond cryptocurrencies and FinTech applications.
This paper presents the promises of Blockchain for IoT and describes the challenges and limitations of the blockchain by correlating the architectural elements of IoT with the Blockchain. Furthermore, the paper also discusses the fundamental design questions for the application developers who are designing and implementing applications at the intersection of Blockchain and IoT.
Section 2 provides an overview and the architecture of IoT. Building blocks and architectural elements of the blockchain are presented in Section 3. Section 4 discusses the opportunities for applying blockchain for the IoT. Section 5 describes the challenges and open questions. Finally, Section 7 concludes the paper.
2 Overview of the IoT
Application areas of IoT include air quality monitoring, smart cities, supply chain management, and production line monitoring. Internet-of-Things comprises of computation, communication, sensing, and actuation functionalities, and such functionalities are distributed throughout the network. IoT architecture can be broadly classified into three layers as shown in Figure1.
End-device Layer: The end-device layer comprises of sensors, low-power embedded platforms, wireless communication technologies, and power sources. Low-power embedded IoT platforms act as a hub for sensors and one or more wireless communication technologies. IoT platforms are typically deployed in challenging and hard-to-reach environments. Thus, it is essential to keep the devices running longer on battery power or harvested energy. IETF defines the devices in this layer as very constrained sensor motes with limited processing and storage capabilities, and they are referred to as class 0 devices. The end-device layer is the most resource-constrained layer in IoT application architecture.
Edge-device Layer: The edge-device layer is responsible for collecting sensor data from end-devices. This layer consists of a network gateway for handling inbound and outbound communications with the end-device layer. Also, the data from multiple end-devices are processed in this layer to meet the real-time demands of the application. Devices at this layer are more capable than the end-device layer with respect to computation and storage capabilities.
Server or backend layer: The server or the cloud backend layer is responsible for storage and visualization functionalities. End-users of the IoT application interact with this layer for monitoring and control of their infrastructure. Web servers, data analytics engines, and databases operate at this layer to cater the demands of the end-users. Devices in this layer have the maximum processing and storage capacities among all the layers in the stack.
Table I summarizes the resource capacities at different layers of the IoT stack. The end-device layer is a constrained layer with insufficient resources for computation, communication, and storage, while the server or the backend layer consists of maximum resources.
Application of any new technology and protocol to the IoT must consider the resource capacities of different layers before their deployment.
IoT applications following the above architecture have been widely used in various deployments, but the integration of blockchain into such an architecture remains challenging as discussed in Section 5. The overview of blockchain and its fundamental building blocks are presented in the next section.
3 Overview of the Blockchain technology
|Server and Backend||High||High||High||High|
The Blockchain technology uses the combination of cryptography, a consensus algorithm, and a distributed ledger to create a decentralized and trustworthy platform. In this section, we will discuss the three key aspects of Blockchain technologies.
Cryptographic Digital Signature: The public-key cryptography is used in blockchain to generate a signature for Blockchain transactions. Users carry out transactions by creating a digital signature using their private keys. Recipients in the blockchain network verify the transaction using the public key of the sender to ensure that the transaction is indeed signed by the sender. Source or end-devices sign the transactions when they create a transaction.
Distributed Ledger: Blockchain use a distributed storage to record the transactions. In essence, all the platforms in the network store either the entire transactions or a subset of transactions. All the nodes in the network come to a consensus (using a consensus algorithm) before entering the transactions into the ledger. This feature makes blockchain effectively immutable.
Consensus algorithm: Blockchain does not rely on a centralized server for verification and validation of transactions. Instead, Blockchain uses a peer-to-peer model, and all the decisions within the network are made by the participating members through a consensus protocol.
The core building blocks of blockchain such as public-key cryptography, distributed ledger, and consensus algorithms are promising for the IoT. We will describe the opportunities for applying blockchain technologies to the IoT in this section.
Privacy/anonymity: Transactions in Blockchain use the digital identity generated using public-key cryptography and a hashing algorithm. IoT applications with sensitive information can leverage these mechanism to hide real identity in the network.
Monetary exchange of data and compute: Monetary exchange of data and compute: IoT applications in the area of smart cities use sensors in combination with crowdsourcing to deliver digital services to the city population. Monetary rewards may be essential to involve the community members in smart city applications and to leverage the edge resources such as computation power, storage, and bandwidth. Blockchain technology can also be used to set up a monetary system to issue tokens to the community members for their participation.
Record transactions for account and audit: The data from IoT applications are transported through infrastructure owned by multiple organizations. Supply chain monitoring focuses on tracking and monitoring assets throughout the supply chain process. Traditional supply chain monitoring systems rely on a centralized architecture, wherein all the data from assets are stored in a central database. Using blockchain for recording the data in a decentralized ledger increases the trust while moving assets (real or digital) through infrastructure owned by multiple and diverse stakeholders.
Smart Contracts Nick Szabo introduced the concept of Smart Contracts  as an alternative to the traditional paper-based contracts. A smart contract is a digital contract embedded in the system, which gets executed when the conditions declared in the agreement are met. Smart contracts arbitrate transactions autonomously while exchanging assets between parties or dealing with non-trusted members in a blockchain network. IoT applications, for example, can employ smart contracts when transporting sensor data through infrastructures owned by multiple stakeholders and selling data produced by the sensors
We now discuss the challenges that arise in applying blockchain for the IoT.
Resource constraints: IoT platforms have limited resources for computation, communication, and storage, while Blockchain technologies demand excessive resources. Class A low-power IoT platforms have less than 10 KB of data memory and less than 100 KB of program memory , while a Blockchain node requires memory in the order of GBs . In addition, the computation requirements of consensus algorithms such as Proof-of-Work are well-beyond the capabilities of low-power, resource-constrained IoT devices. Contemporary Blockchain technologies are therefore ill-suited for such low-power IoT devices because their resource demands. From Figure 1, the end-devices and edge-devices does not have the capacity to execute the Blockchain processes, and the server layer is ideally suited for contemporary Blockchain technologies. Such an approach might connect a centralized IoT deployment to a decentralized blockchain network, where the server layer of the IoT deployment acts as the entry point to the blockchain network.
Bandwidth requirements: Platforms in the Blockchain network have to interact with other platforms in the network to participate in the consensus process. Due to the decentralized nature of the consensus process, platforms in the network exchange information about the blockchain to validate transaction and to create new blocks. IoT devices operating at end-device layer have severe bandwidth constraints, which also means the contemporary blockchain solutions are not suited for end-devices. Edge-devices and servers may have sufficient bandwidth, but it is important to note that the bandwidth requirement of blockchain may exceed the bandwidth requirement of the application itself, at least with most contemporary blockchain protocols.
Security: Blockchain technology follows a decentralized architecture, wherein all the devices in the network coordinate and cooperate with each other through pre-defined protocols. Thus, the devices stay connected to the blockchain network for participating in the consensus process. This always-connected feature makes IoT devices potentially more susceptible to security attacks.
Latency demands: IoT applications typically consist of a collection of data producers and data consumers, and in some cases, the data consumers react to an event and perform an actuation. The introduction of Blockchain technology in this context may reduce the responsiveness if the data consumer may be required to wait for the conclusion of the consensus process before reacting to an event. Contemporary Blockchain technologies are not suitable for time-sensitive IoT applications that need fully confirmed transactions.
Transaction fees: Most open Blockchain technologies charge a fee for transactions, and use it to rewarding the nodes involved in consensus process. IoT devices cannot store all the data to such a blockchain since storing the data to a blockchain incurs a transaction fee. If one wishes to put data from IoT devices on such a blockchain, it may need to be aggregated to reduce the transaction fees, but in this case it would be important to make sure that the aggregation process does not filter out essential information. Alternatively, an architecture where the data itself is transported off the chain and only hashed values or key transaction records are stored on the blockchain for verification and provenance purposes may be preferred.
Permissioned vs public: Contemporary blockchain technologies can be broadly classified into two categories as public and permissioned blockchains. Public blockchains such as Bitcoin and Ethereum allow anyone to become a part of the network without any authorization. Anyone wishing to participate in the public blockchain can simply download and install the necessary frameworks, and this type of blockchain technologies require substantial resources for consensus process. Permissioned blockchains, on the other hand, consists of authorized members in the network. This type of blockchain may be suitable for IoT applications involving multiple known organizations as the network consists of authorized members, which open up opportunities for fast, higher-throughput consensus protocols.
Partition tolerance for intermittently connected devices: IoT applications in the space of supply chain monitoring consist of mobile devices with intermittent connectivity. Also, the end-devices running on batteries use duty cycling to prolong the lifetime. Furthermore, the devices operating on the wireless bands regulated by ETSI and FTC has to adhere to the bandwidth limitations enforced federal authorities. In such scenarios, the devices connect to a server or edge-device intermittently to exchange data. Assuming an architecture in which the server is acting as a lightweight node for recording the IoT data to a blockchain, the server has to download and store the headers of the blockchain to keep itself synchronized. For intermittently connected IoT devices, the cost of running a lightweight node for recording IoT data in a blockchain network may outweigh the benefits because of the bandwidth, computation, and storage costs. New blockchain protocols and frameworks are essential for reducing the infrastructure cost when using blockchain for recording IoT transactions and DAG-based protocols such as IOTA provide partition tolerance by making it easy to merge transactions from partitioned parts of the network.
Transaction Volumes - these are quite severely limited on most current open, permissionless blockchain technologies, also preventing high volume sensor data applications from being carried directly on the blockchain.
Physical interface weakness - As cyber-physical systems, individual sensors and actuators could be hacked or misused to report false or erroneous data that gets logged on to the blockchain in an immutable fashion.
6 Related Work
to detect anomalies in IoT applications. CIoTA applies the concepts of blockchain in combination with extensible Markov Model (EMM) to identify malicious activities. Dorriet al.  presents the gaps in contemporary security and privacy methods, and contribute LSB, a lightweight and scalable blockchain for IoT security and privacy. LSB’s lightweight protocols reduce the bandwidth and computation costs. Pietro et al.  investigate the communication overhead of blockchain synchronization protocols for the IoT and highlight the uplink and downlink bandwidth demands. PlaTIBART  is a testing framework to manage and deploy blockchain networks for transactive IoT applications. Hossein et al.  introduce a distributed data storage framework for IoT applications using the blockchain.  ensures that the IoT data ownership stays with the stakeholders. These papers address some of the challenges in described in Section 5, however, the architectural details and performance implications are not clearly addressed, especially for resource-constrained IoT platforms.
The opportunities and challenges of applying blockchain for the IoT are presented in the literature. Huckle et al.  discuss the applications of blockchain for monetizing IoT applications, but their work does not describe the challenges. Seyoung et al.  demonstrates how blockchain can be used for storing sensor data using smart contracts. Canoscenti et al.  reviews the use cases of the blockchain and highlights the open problems in integrity, anonymity, and adaptability when storing IoT data in a decentralized network. The authors of  analyze the communication overhead of blockchain synchronization for the IoT. Unlike  and , our work focuses on architectural challenges and performance implications when using blockchain for IoT for data storage, monetization, security, and privacy.
Blockchain technology has already made a significant impact in the cryptocurrency applications. The fundamental building blocks - distributed ledger, consensus mechanisms, and public-key cryptography - of blockchain technology is promising for IoT and supply chain monitoring applications. We have discussed the architecture of IoT applications and mapped the functional blocks of the blockchain technology to reveal the architectural challenges involved in applying blockchain for the IoT. Next, we have presented opportunities for applying blockchain for the IoT. Finally, we concluded with the challenges which need to be addressed to fully exploit the benefits of blockchain technologies in the IoT domain. Despite the challenges, blockchain technologies are highly promising for resolving security, privacy, and trust issues in multi-stakeholder application environments.
This work is supported by the USC Viterbi Center for Cyber-Physical Systems and the Internet of Things (CCI).
-  S. Nakamoto, “Bitcoin: A peer-to-peer electronic cash system,” 2008.
-  N. Szabo, “Smart contracts,” Unpublished manuscript, 1994.
-  C. Bormann, M. Ersue, and A. Keranen, “Terminology for constrained-node networks,” Internet Requests for Comments, RFC Editor, RFC 7228, May 2014, http://www.rfc-editor.org/rfc/rfc7228.txt. [Online]. Available: http://www.rfc-editor.org/rfc/rfc7228.txt
-  (2018) Running a full node. https://bitcoin.org/en/full-node#minimum-requirements.
-  N. Kshetri, “Can blockchain strengthen the internet of things?” IT Professional, vol. 19, no. 4, pp. 68–72, 2017.
T. Golomb, Y. Mirsky, and Y. Elovici, “CIoTA: Collaborative IoT Anomaly Detection via Blockchain,”ArXiv e-prints, Mar. 2018.
-  A. Dorri, S. S. Kanhere, R. Jurdak, and P. Gauravaram, “LSB: A Lightweight Scalable BlockChain for IoT Security and Privacy,” ArXiv e-prints, Dec. 2017.
-  P. Danzi, A. Ellersgaard Kalør, Č. Stefanović, and P. Popovski, “Analysis of the Communication Traffic for Blockchain Synchronization of IoT Devices,” ArXiv e-prints, Nov. 2017.
-  M. A. Walker, A. Dubey, A. Laszka, and D. C. Schmidt, “PlaTIBART: a Platform for Transactive IoT Blockchain Applications with Repeatable Testing,” ArXiv e-prints, Sep. 2017.
-  H. Shafagh, L. Burkhalter, A. Hithnawi, and S. Duquennoy, “Towards Blockchain-based Auditable Storage and Sharing of IoT Data,” ArXiv e-prints, May 2017.
-  S. Huckle, R. Bhattacharya, M. White, and N. Beloff, “Internet of things, blockchain and shared economy applications,” Procedia Computer Science, vol. 98, pp. 461 – 466, 2016, the 7th International Conference on Emerging Ubiquitous Systems and Pervasive Networks (EUSPN 2016)/The 6th International Conference on Current and Future Trends of Information and Communication Technologies in Healthcare (ICTH-2016)/Affiliated Workshops. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1877050916322190
-  S. Huh, S. Cho, and S. Kim, “Managing iot devices using blockchain platform,” in 2017 19th International Conference on Advanced Communication Technology (ICACT), Feb 2017, pp. 464–467.
-  M. Conoscenti, A. Vetrò, and J. C. D. Martin, “Blockchain for the internet of things: A systematic literature review,” in 2016 IEEE/ACS 13th International Conference of Computer Systems and Applications (AICCSA), Nov 2016, pp. 1–6.