You are currently viewing a new version of our website. To view the old version click .
Electronics
  • Feature Paper
  • Article
  • Open Access

2 February 2020

A Cost Analysis of Internet of Things Sensor Data Storage on Blockchain via Smart Contracts

,
,
,
and
1
TSYS School of Computer Science, Columbus State University, Columbus, GA 31907, USA
2
Department of Electrical and Computer Engineering, Ana G. Méndez University, Gurabo, PR 00777, USA
*
Author to whom correspondence should be addressed.
This article belongs to the Section Computer Science & Engineering

Abstract

Blockchain is a developing technology that can be utilized for secure data storage and sharing. In this work, we examine the cost of Blockchain-based data storage for constrained Internet of Things (IoT) devices. We had two phases in the study. In the first phase, we stored data retrieved from a temperature/humidity sensor connected to an Ethereum testnet blockchain using smart contracts in two different ways: first, appending the new data to the existing data, storing all sensor data; and second, overwriting the new data onto the existing data, storing only a recent portion of the data. In the second phase, we stored simulated data from several sensors on the blockchain assuming sensor data is numeric. We proposed a method for encoding the data from the sensors in one variable and compared the costs of storing the data in an array versus storing the encoded data from all sensors in one variable. We also compared the costs of carrying out the encoding within the smart contract versus outside the smart contract. In the first phase, our results indicate that overwriting data points is more cost-efficient than appending them. In the second phase, using the proposed encoding method to store the data from several sensors costs significantly less than storing the data in an array, if the encoding is done outside the smart contract. If the encoding is carried out in the smart contract, the cost is still less than storing the data in an array, however, the difference is not significant. The study shows that even though expensive, for applications where the integrity and transparency of data are crucial, storing IoT sensor data on Ethereum could be a reliable solution.

1. Introduction

Blockchain technology is revolutionizing the way we store, share, and interact with data. It provides various essential services for data storage including immutability, transparency, decentralization, and fault tolerance without the need of a central authority. Initially developed by Satoshi Nakamoto as a trusted, distributed ledger system for the Bitcoin cryptocurrency [], blockchain technology is currently being researched in areas such as healthcare, education, smart cities, financial services, logistics and supply chain, provenance, electronic voting, among other applications.
In the realm of Internet of Things (IoT) systems, the use of blockchain is currently researched under various aspects including decentralized architectures, authentication, autonomy, security, and marketplaces []. Many IoT systems are not computationally powerful in terms of storage and processing power, so much of the research in the integration of blockchain and IoT systems have focused on the computational cost to validate, process and integrate IoT devices in blockchain networks under security constraints []. However, no rigorous study of the monetary cost to store IoT sensor data has been published to date.
Storing sensor data on a public blockchain where anyone can access it (almost in real-time), is a useful capability. For example, sensors that check air quality, monitor food temperature, or water quality in an area could publish their readings on a public blockchain which would allow reliable and tamper-resistant data storage. Any researcher could potentially download and use the data to address problems of interest in a community. The data could also provide reliable resources for auditing purposes []. In addition, using blockchain systems to store sensor data could potentially enable utilization of these systems for crowdsensing in which contributors could sell/auction their collected data to interested third parties, hence creating distributed marketplaces using smart contracts [] for IoT sensor data and, at the same time, alleviating some privacy aspects in the utilization of IoT sensor data in crowdsensing systems since contributors would agree on a smart contract in the blockchain itself, and they would give consent through the smart contract.
In this work, we shed light on the monetary cost of storing sensor data on a public blockchain. We test various storage options for data from one sensor and data from several sensors. Our study comprises two phases. In the first phase, we describe an IoT testbed to store sensor data on the Ropsten Ethereum testnet blockchain via smart contracts and we examine the monetary cost of this operation under two different storage options: (1) appending the new data to the end of the existing data, hence storing all data; (2) overwriting on the existing data, hence storing a most recent portion of the data. In the second phase, we examine the cost when storing data from several IoT sensors on the blockchain. In this phase we simulate data for several sensors assuming sensor data is numeric; in particular, an integer and store the data on the blockchain in three ways: (1) storing the data in an array, (2) encoding the data from all sensors into one variable outside the smart contract and storing the variable on the smart contract, and (3) encoding the data from all sensors into one variable within the smart contract and storing the variable on the smart contract. Our results indicate that even though it could be expensive, for applications where the integrity and transparency of data are crucial, storing IoT sensor data on Ethereum could be a reliable solution.
Thus, the main contributions of this work are as follows:
  • We describe an experimental testbed to store IoT sensor data on a public Ethereum-based blockchain network.
  • We analyze the monetary cost (in gas, which is a monetary unit in Ethereum) when storing IoT sensor data using two storage mechanisms.
  • We propose a method to store encoded data from several sensors for more efficient storage and examine the cost when storing data from several IoT sensors on the Ethereum blockchain using three methods.
This work is different than the work presented by Park et al. [] and by Javaid [] because we evaluate the monetary cost of storing IoT sensor data in a public blockchain rather than the monetary cost to create an IoT marketplace. In addition, both of the aforementioned studies use a model based on strings of characters (with no sensor data or IoT device used) to experiment with their market model. To the best of our knowledge, this work is the first analysis of the monetary cost of storing IoT sensor data on a public blockchain. The rest of the paper is organized as follows. Section 2 presents a review of the related work. In Section 3 we describe the testbed and the experiments to analyze the monetary cost of IoT sensor data in a public blockchain. Finally, Section 4 provides some concluding remarks.

3. Methodology

3.1. Experimental Testbed

In this study we created a testbed to store IoT sensor data in a public blockchain system. The IoT testbed used to collect IoT sensor data is composed of the following elements:
  • A DHT11 temperature/humidity sensor: The DHT11 is a low-cost (less than $10 USD) capacitive sensor that captures humidity and temperature data, and provides a digital output. A limitation of the DHT11 sensor is that it generates data every two seconds.
  • A Raspberry Pi 3 Model B device: The Raspberry Pi Model 3B is a small, low-cost and embeddable computer that can be used to create IoT prototypes. The 3B model is powered by a 1.32 GHz quad-core processor, it has 1GB of RAM, on-board WiFi/Bluetooth connectivity, and a 40-pin GPIO bus []. Figure 1 shows an image of the Raspberry Pi with the DHT11 sensor. The Raspberry Pi acts as a lightweight Ethereum node.
    Figure 1. Prototype Raspberry Pi IoT (Internet of Things) device used for the testbed.
  • MetaMask: MetaMask is a browser extension that acts as a bridge between Internet browsers, Ethereum-based blockchains, and decentralized applications (DApps) running on a full Ethereum node []. In our testbed, MetaMask was used as an Ethereum wallet and this extension is executed on the Raspberry Pi device. We used MetaMask because it provided an Ethereum faucet in which a wallet can obtain a limited number of free funds in Ethereum’s digital currency (ethers) for the IoT sensor transactions/operations.
  • Infura: Infura is an infrastructure that offers a suite of tools to connect apps to the Ethereum network []. It runs fully connected Ethereum nodes and provides access to them via an application programming interface (API). Once an account and project are created in Infura, an URL end point that can be used to push the smart contract transactions onto the blockchain via web services. Infura is needed because of the computing power of the Raspberry Pi does not allow to connect it directly to the Ethereum network.
  • Ropsten: Ropsten is an Ethereum blockchain to test applications (a testnet) []. Among the testnets, Ropsten is the one that most closely follows the main Ethereum blockchain (Mainnet). Ropsten uses the proof of work (PoW) consensus mechanism, which is the same mechanism used by the Mainnet.
We used two major tools to collect data, write and deploy the smart contract transactions on Ropsten. The first tool is the Remix IDE [], which is a web-based environment used to develop and test smart contracts using the Solidity programming language. Remix was used to upload the smart contract to the Ropsten testnet and it provided the application binary interfaces (ABI) to interact with the contract. The second tool is the Web3 Python library which we used in a Python script that was executed in the Raspberry Pi IoT device. The Web3 library contains the necessary methods to interact with the blockchain including signing and sending transactions, receiving receipts, among others. The Python script that we created was executed in the Raspberry Pi IoT device to collect sensor data, create, sign and send transactions to Ropsten via the Web3 library and Infura, as well as to log transactions. Thus, steps performed by this Python script (Figure 2) are as follows:
Figure 2. Steps performed by Python script at the Raspberry Pi IoT device.
  • Sensor data collection from the sensor at the Raspberry Pi.
  • Creation of blockchain transaction data with inclusion of nonce, origin address, destination address, and other data needed to process the transaction in the blockchain.
  • Data signing with the account’s private key to authenticate that the correct account is sending the data.
  • Sending transaction data to Ropsten in which fully connected nodes receive the data via Web3 and Infura.
  • Extraction of the transaction’s receipt from the blockchain, in which the cost, specifically the monetary cost in gas usage of the operation. At this point the script repeats again from step 1.

3.2. Experimental Procedure

With the testbed described in the previous section, we then proceed to evaluate the monetary cost of IoT sensor data storage in Ropsten under two scenarios:
  • Storing all data on a contract (array appending): In this scenario, we appended the new data generated by the IoT device at the end of an expanding array stored in the smart contract.
  • Storing only a recent portion of the data on a contract (array substitution): In this scenario, we allocated a fixed array in the smart contract and stored only the most recent portion of the data that could fit in the array, thus overwriting the array entries. In this last scenario, we performed two types of substitution: substitution with array size = 200 entries and substitution with array size = 2000 entries.
In Ethereum the amount of computational effort required to execute the operations in a transaction or a smart contract is measured in gas. The basic operations allowed in an Ethereum blockchain and how much gas they require are published in the Ethereum beige paper []. When a transaction is created, a gas limit, which is the maximum amount of gas the originator is willing to pay for, along with how much the originator is willing to pay per gas is specified in the transaction. The currency to pay for gas is ether, more specifically the gas cost is specified in gwei which is 10−9 ether. The price for gas is not fixed. It is up to the sender of a transaction to specify any gas price they like. On the other side, it is up to the miner to verify any transactions they like. Naturally, to maximize their profit, the miners usually pick the transactions that specify the highest gas price.
If an operation runs out of gas, the miners stop mining and the operation is reverted back to its original state. The originator still pays the miners the fee for their computational costs and the operation gets added to the blockchain even though it is not executed. If there is any gas left over, it is refunded to the originator. There are mechanisms in place in Ethereum to prevent bloated gas limits in transactions [,]. On the most part the price one is willing to pay per gas determines the speed of the transaction. The website ethgasstation.info [] provides information about current gas prices, transaction confirmation times, and miner policies on the Ethereum network. To gauge the cost of gas prices for different types of transaction speeds, we checked ethgasstation.info.
After pushing the transactions onto the blockchain, the Python script described in the previous section extracted the gas used for the operation from the transaction receipts when the sensor transactions were confirmed. Figure 3 shows a diagram with these steps. We also confirmed the transactions through etherscan for Ropsten [], a web-based tool that allows viewing of all transactions on Ethereum blockchains including Ropsten.
Figure 3. Steps to store sensor data in Ropsten as performed in our experiments.
We created three smart contracts to measure the gas cost of storing data on Ropsten. The first contract appended the data in an expanding array, thus storing all data points on the contract. The second contract kept an array of size 200 (hence 200 recent data points were kept, making a substitution every time data sensor data was uploaded), and the third contract kept an array of size 2000 (hence 2000 recent data points were kept, making a substitution every time the IoT sensor data was uploaded). Ethereum allows unsigned integer data types of 8 bits to 256 bits with 8-bit increments named uint8, uint16, uint24, …, uint256. We initially tested storing individual 8-bit and 256-bit unsigned integers on the Ropsten blockchain and found that storing a 256-bit int (uint256) is not more expensive than storing an 8-bit int (uint8) in terms of gas usage. In fact, storing one 256-bit integer costs 26,796 gas which is slightly less than storing an 8-bit integer which costs 27,283 gas. For this reason, in the smart contracts, we used the data type uint256 even though the humidity sensor data would allow smaller number of bits to be used. When creating a transaction, and to make sure that we had enough gas to cover the extra operations for storage in an array, we specified the gas limit to be 140,000 which was consistent with the gas estimate that Remix provided. We specified the gas price to be 40 gwei for average transaction speed as was suggested by ethgasstain.info when we ran the transactions/experiments in July 2019.

3.3. Results

The sensor data and the gas consumption for the three smart contracts are shown in Figure 4 in top and bottom graphs, respectively. The graphs are shown in one figure to make the relation between sensor readings and costs for storing them more apparent. As shown in Figure 4 (top), humidity readings fluctuated between 50% and 80% during the execution of the experiments. We collected more than 2000 data points which were stored on Ropsten using the three different smart contracts. We observed from Figure 4 (bottom) that the gas cost was mostly affected by the method used to store the data on the blockchain.
Figure 4. Data captured by the IoT device (top); gas consumption of storage options (Gas used: y-axis on left; data points) (bottom).
In the array substitution method, the average cost of the substitution method was 58,777 gas. However, once the actual substitution began, the cost was reduced by 33% (39,905 gas on average). In our experiments, the most expensive operations were array initializations and the least expensive were those of array substitution. From our experiments, array substitution was cheaper than array appending by 26% on average. We can deduce then that the smart contract operations have the most impact on the gas cost, and the size of the data holds little no to weight affecting the increase/decrease of gas.
We now calculate the total cost of storing T data points on the blockchain under the two different storage options as follows (in gas):
  • Method 1—array appending:
    Tappending = Cost for Initialization + Cost for appending T data points
  • Method 2—array substitution (Keeping N data points):
    Tsubstitution = Cost for Initialization + Cost for appending N data points + Cost for overwriting TN data points
Using the data from Table 1, we can calculate the cost of storing T data points on the blockchain as follows:
Table 1. Average gas consumption of storage options.
  • Method 1:
    Tappending = 82,960 + 52,960 × T,
  • Method 2:
    Tsubstitution = 103,777 + 58,777 × N + 39,305 × (T − N),
For example, suppose that a business/entity needs to store 6000 data points on Ethereum in a month, their monthly gas cost would be:
  • Method 1: Tappending = 82,960 + 52,960 × 6000 = 317,842,960 gas
  • Method 2: Tsubstitution with N = 200:
    Tsubstitution = 103,777 + 200 × 58,777 + 5800 × 39,305 = 239,828,177 gas
  • Tsubstitution with N = 2000:
    Tsubstitution = 103,777 + 58,777 × 2000 + 39,305 × 4000 = 274,877,777 gas
As of 22 November 2019, the recommended Ethereum gas price for standard mining in the Mainnet as published in ethgasstation.info was 10 gwei and 1 ether is 146.87 USD. Recalling that 1 gwei = 10−9 ether, we calculate the total cost in US Dollars (USD) for storing 6,000 data points as follows:
  • Method 1: Costappending = 317,842,960 × 10 × 10−9 ether = 3.1784296 ether = 466.82 USD.
  • Method 2 with N = 200: Costsubstitution = 239,828,177 × 10 × 10−9 =2.27969 ether = 334.82 USD.
  • with N = 2000: Costsubstitution = 274,877,777 × 10 × 10−9 = 2.74877777 ether = 403.71 USD.

3.4. Discussion

As previously stated, the gas required to push a new data point in the blockchain does not seem to depend on the size of the array in either appending or substitution methods. Out of the two methods, using substitution proved to be the more efficient method for data storage on the Ropsten Ethereum blockchain. The total gas cost for storing the most recent 200 data points was about 75.4% and storing the most recent 2000 data points was about 86.5% of that of appending.
On the Ethereum blockchain, when data is substituted it still exists in the ledger and can be retrieved from older blocks by looking at the transaction hash. The “get” functions in smart contracts do not change the state of the blockchain so they can be executed at no cost, allowing for cost-efficient data retrieval. As was mentioned in Section 3.2, our initial test showed that storing an unsigned 256-bit integer (in uint256 data type) on the blockchain costs 26,796 gas. If 6000 data points were stored individually on the blockchain, then the cost would be about 26,796 × 6000 = 160,776,000 gas. This would be about 51% of appending all data, 67% of storing the most recent 200 data points, and 59% of storing the most recent 2000 data points. In our study, we chose to store all or some portion of the data with the idea that the data could be used to make inferences about the environment from which the humidity sensor is collecting data. One out-of-place humidity value sensor may raise suspicion but when most of the recent values are abnormal, it may indicate problems with the environment, the sensor, or data submission process. Smart contracts can be used to take actions in these cases, although it will have its costs in gas units.

3.5. Storing Data from Several Sensors

In many applications data from several sensors are more useful. In this phase, we focus on storing data from several sensors on the blockchain. We assume that readings from all the sensors are written onto the blockchain at once via a smart contract. For example, we assume that there are 32 sensors and the data from each sensor is at most 8-bits long. Note that the total length of data from all sensors is 8 × 32 = 256 bits. The discussion below can be adapted to any number of sensors where the sum of maximum number of bits to represent the data for each sensor does not exceed 256. Since we assumed the sensor data is at most 8-bits long, we simulated the sensor data by generating random numbers between 0 and 255 in the Python script. We examined three methods of storing the data from the 32 sensors on the blockchain. The three methods and the gas usage for each transaction are given below. For each method we ran 20 simulations to obtain the gas usage. Except for a few cases, the gas usages were constant (equal to the values indicated in parentheses). This is as expected considering the gas cost structure in Ethereum. In the exceptions, the gas amounts were very close to the numbers indicated in parentheses.
  • Method 1. Storing the data in an array of size 32 of uint8 values (gas: 88,600)
  • Method 2. Encoding the 32 values into 256 bits in the Python script (outside the smart contract) and storing one uint256 on the blockchain (gas: 26,796)
  • Method 3. Encoding the 32 values into 256 bits in the smart contract script and storing one uint256 on the blockchain (gas: 84,837)
The encoding in methods 2 and 3 is such that each 8 bits of the 256 bits represents the reading from one sensor. This is simply done by multiplying the sensor values by powers of 2 8 (i.e., 2 0 ,   2 8 , 2 16 ,   ,   2 248 ) and adding them together. More specifically, if d 0 , d 1 , d 2 , ,   d 31 are the data from the 32 sensors then the 256-bit integer that represents them is d 0 x   2 0 + d 1 x   2 8 + d 2 x   2 16 + + d 31 x   2 248 . Note that each multiplication by 2 8 amounts to shifting the number 8 bits to the left.
With this encoding, method 2 comes down to storing an uint256 on the blockchain which needs 26,796 gas. This is the cheapest option as the encoding is done outside the smart contract. In our implementation the “get” method simply returns the 256-bit number so one needs to do the decoding once they get the data from the blockchain to get the actual sensor readings.
In method 3, the set method in the smart contract receives the 32 sensor readings in an array and encodes them into a 256-bit number value using the encoding described above and stores the result in an uint256 variable. As one expects, this is more expensive than method 2 because encoding operations cost gas. The gas required in method 3 is about 3.2 times the gas required in method 2. This directly translates to monetary equivalents. Even though more expensive, performing the encoding via the smart contract may be more desirable. It has the advantage of avoiding manipulations of data, hence providing stronger integrity.
We would like to note also that method 1, in which an array is used to store the data, costs the most, hence should be avoided unless there is an absolute need to store the sensor data separately in such a structure.

4. Conclusions

Blockchain is a developing technology that provides much desired security mechanisms such as integrity, authenticity, availability, and fault tolerance although at some cost. Blockchain is not suited for all scenarios but there are many cases where benefits may outweigh the cost. IoT is an area where developments are rapid but many challenges remain, especially with respect to security. Utilizing blockchain technology for challenges in IoT is an active area of research. More research that addresses the cost, in particular ways to minimize the cost of using blockchain for IoT, need to be conducted. Considering the amount of data generated by IoT devices, efficient representations of data that enable more manipulations via smart contracts at smaller costs should be studied. More functional smart contracts that can do some analysis on the data and provide alerts (for example light a led) when data is out of range, efficient ways to carry out these operations, and the cost analysis of such smart contracts could enable more practical applications of blockchain technology in IoT.

Author Contributions

Conceptualization, Y.K.P., methodology, Y.K.P.; software, J.E., X.R., Y.K.P., and S.J.L. validation, J.E., X.R., Y.K.P., and S.J.L.; resources, Y.K.P., A.J.P., S.J.L.; writing—original draft preparation, J.E., X.R., and Y.K.P.; writing—review and editing, S.J.L., A.J.P., and Y.K.P.; visualization, J.E. and X.R.; supervision, Y.K.P and S.J.L.; project administration, Y.K.P., S.J.L., and A.J.P.; funding acquisition, A.J.P., Y.K.P.

Funding

This research has been supported by the U.S. National Science Foundation and the U.S. Department of Defense under grant award No. 1560214, and the U.S. National Science Foundation under grant award No. 1950416, ‘An REU Site on Security for Mobile Sensing and the Internet of Things’.

Acknowledgments

We thank the anonymous reviewers for their valuable comments, which helped improve the paper’s content, quality, and organization.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Bello, G.; Perez, A.J. Adapting financial technology standards to blockchain platforms. In Proceedings of the 2019 ACM Southeast Conference, At Kenneasaw, GA, USA, 18–20 April 2019. [Google Scholar]
  2. Reyna, A.; Martín, C.; Chen, J.; Soler, E.; Díaz, M. On blockchain and its integration with IoT. Challenges and opportunities. Futur. Gener. Comput. Syst. 2018, 88, 173–190. [Google Scholar] [CrossRef]
  3. Kaaniche, N.; Laurent, M. A blockchain-based data usage auditing architecture with enhanced privacy and availability. In Proceedings of the 2017 IEEE 16th International Symposium on Network Computing and Applications (NCA), Cambridge, MA, USA, 30 October–1 Novermber 2017. [Google Scholar]
  4. Park, J.S.; Youn, T.Y.; Kim, H.B.; Rhee, K.H.; Shin, S.U. Smart contract-based review system for an IoT data marketplace. Sensors 2018, 18, 3577. [Google Scholar] [CrossRef] [PubMed]
  5. Javaid, A.; Javaid, N. Ensuring Analyzing and Monetization of Data Using Data Science and Blockchain in loT Devices. Master’s Thesis, COMSATS University Islamabad, Islamabad-Pakistan, Comsats University, Islamabad, Pakistan, 2019. [Google Scholar]
  6. González-Briones, A.; Castellanos-Garzón, J.A.; Martín, Y.M.; Prieto, J.; Corchado, J.M. A framework for knowledge discovery from wireless sensor networks in rural environments: A crop irrigation systems case study. Wirel. Commun. Mob. Comput. 2018, 2018, 1–14. [Google Scholar] [CrossRef]
  7. Perez, A.J.; Zeadally, S.; Cochran, J. A review and an empirical analysis of privacy policy and notices for consumer Internet of things. Secur. Priv. 2018. [Google Scholar] [CrossRef]
  8. Azimi, I.; Rahmani, A.M.; Liljeberg, P.; Tenhunen, H. Internet of things for remote elderly monitoring: A study from user-centered perspective. J. Ambient Intell. Humaniz. Comput. 2017, 8, 273–289. [Google Scholar] [CrossRef]
  9. IoT: Number of Connected Devices Worldwide 2015–2025|Statista. Available online: Statista.com (accessed on 14 November 2019).
  10. Perez, A.J.; Zeadally, S. Privacy Issues and Solutions for Consumer Wearables. IT Prof. 2018, 20, 46–56. [Google Scholar] [CrossRef]
  11. Gubbi, J.; Buyya, R.; Marusic, S.; Palaniswami, M. Internet of Things (IoT): A vision, architectural elements, and future directions. Futur. Gener. Comput. Syst. 2013, 29, 1645–1660. [Google Scholar] [CrossRef]
  12. Bashir, I. Mastering Blockchain, 2nd ed.; Packt Publishing: Birmingham, UK, 2018. [Google Scholar]
  13. Nguyen, G.T.; Kim, K. A survey about consensus algorithms used in Blockchain. J. Inf. Process. Syst. 2018, 14, 101–128. [Google Scholar]
  14. Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System. Online. 2008. Available online: https://bitcoin.org/bitcoin.pdf (accessed on 14 November 2019).
  15. Buterin, V. Ethereum White Paper. GitHub Repos. 2013, 1, 22–23. [Google Scholar]
  16. Szabo, N. Smart Contracts: Building Blocks for Digital Free Markets. Online. 1996. Available online: http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html (accessed on 2 February 2020).
  17. Hyperledger. Available online: https://www.hyperledger.org/ (accessed on 29 November 2019).
  18. Skiba, D.J. The Potential of Blockchain in Education and Health Care. Nurs. Educ. Perspect. 2017, 38, 220–221. [Google Scholar] [CrossRef]
  19. Sharples, M.; Domingue, J. The Blockchain and Kudos: A Distributed System for Educational Record, Reputation and Reward. Disinf. Open Online Media 2016, 9891, 490–496. [Google Scholar]
  20. Christidis, K.; Devetsikiotis, M. Blockchains and Smart Contracts for the Internet of Things. IEEE Access 2016, 4, 2292–2303. [Google Scholar] [CrossRef]
  21. Pieroni, A.; Scarpato, N.; di Nunzio, L.; Fallucchi, F.; Raso, M. Smarter City: Smart energy grid based on Blockchain technology. Int. J. Adv. Sci. Eng. Inf. Technol. 2018, 8, 298–306. [Google Scholar] [CrossRef]
  22. Dorri, A.; Kanhere, S.S.; Jurdak, R.; Gauravaram, P. Blockchain for IoT security and privacy: The case study of a smart home. In Proceedings of the 2017 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops), Kona, HI, USA, 13–17 March 2017; pp. 618–623. [Google Scholar]
  23. Ganne, E. Can Blockchain Revolutionize International Trade? World Trade Organization: Geneva, Switzerland, 2018. [Google Scholar]
  24. Litke, A.; Anagnostopoulos, D.; Varvarigou, T. Blockchains for Supply Chain Management: Architectural Elements and Challenges Towards a Global Scale Deployment. Logistics 2019, 3, 5. [Google Scholar] [CrossRef]
  25. Wang, J.; Wang, S.; Guo, J.; Du, Y.; Cheng, S.; Li, X. A Summary of Research on Blockchain in the Field of Intellectual Property. Procedia Comput. Sci. 2019, 147, 191–197. [Google Scholar] [CrossRef]
  26. Ayed, A.B. A Conceptual Secure Blockchain Based Electronic Voting System. Int. J. Netw. Secur. Its Appl. 2017, 9, 1–9. [Google Scholar]
  27. Kuo, T.T.; Kim, H.E.; Ohno-Machado, L. Blockchain distributed ledger technologies for biomedical and health care applications. J. Am. Med Inform. Assoc. 2017, 24, 1211–1220. [Google Scholar] [CrossRef]
  28. Curbera, F.; Dias, D.M.; Simonyan, V.; Yoon, W.A.; Casella, A. Blockchain: An enabler for healthcare and life sciences transformation. IBM J. Res. Dev. 2019, 63, 8:1–8:9. [Google Scholar] [CrossRef]
  29. Ferraro, P.; King, C.; Shorten, R. Distributed ledger technology for smart cities, the sharing economy, and social compliance. IEEE Access 2018, 6, 62728–62746. [Google Scholar] [CrossRef]
  30. Mezquita, Y.; Gazafroudi, A.S.; Corchado, J.M.; Shafie-Khah, M.; Laaksonen, H.; Kamišalić, A. Multi-Agent Architecture for Peer-to-Peer Electricity Trading based on Blockchain Technology. In Proceedings of the 2017 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops), Kona, HI, USA, 13–17 March 2017. [Google Scholar]
  31. Wang, Q.; Zhu, X.; Ni, Y.; Gu, L.; Zhu, H. Blockchain for the IoT and industrial IoT: A review. Internet Things 2019. [Google Scholar] [CrossRef]
  32. Ejaz, A.; Anpalagan, W. Blockchain Technology for Security and Privacy in Internet of Things. In Internet of Things for Smart Cities. In Internet of Things for Smart Cities. Springer Briefs in Electrical and Computer Engineering; Springer: Cham, Switzerland, 2019; pp. 47–55. [Google Scholar]
  33. Khan, M.A.; Salah, K. IoT security: Review, blockchain solutions, and open challenges. Futur. Gener. Comput. Syst. 2018, 82, 395–411. [Google Scholar] [CrossRef]
  34. Makhdoom, I.; Abolhasan, M.; Abbas, H.; Ni, W. Blockchain’s adoption in IoT: The challenges, and a way forward. J. Netw. Comput. Appl. 2019. [Google Scholar] [CrossRef]
  35. Mezquita, J.M.; Casado, Y.; Gonzalez-Briones, R.; Prieto, A.; Corchado, J. Blockchain Technology in IoT Systems: Review of the Challenges. Ann. Emerg. Technol. Comput. 2019, 3, 17–24. [Google Scholar] [CrossRef]
  36. Mezquita, Y.; Valdeolmillos, D.; González-Briones, A.; Prieto, J.; Corchado, J.M. Legal aspects and emerging risks in the use of smart contracts based on blockchain. In Communications in Computer and Information Science; Springer: Berlin/Heidelberg, Germany, 2019. [Google Scholar]
  37. Jesus, E.F.; Chicarino, V.R.L.; de Albuquerque, C.V.N.; Rocha, A.A.D.A. A Survey of How to Use Blockchain to Secure Internet of Things and the Stalker Attack. Secur. Commun. Netw. 2018, 2018, 1–27. [Google Scholar] [CrossRef]
  38. Ourad, A.Z.; Belgacem, B.; Salah, K. Using blockchain for IOT access control and authentication management. Int. Conf. Internet Things 2018, 10972 LNCS, 150–164. [Google Scholar]
  39. Guin, U.; Cui, P.; Skjellum, A. Ensuring Proof-of-Authenticity of IoT Edge Devices Using Blockchain Technology. In Proceedings of the 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData), Halifax, NS, Canada, 30 July–3 August 2018. [Google Scholar]
  40. Chen, Y.J.; Wang, L.C.; Wang, S. Stochastic Blockchain for IoT Data Integrity. IEEE Trans. Netw. Sci. Eng. 2018. [Google Scholar] [CrossRef]
  41. Huang, J.; Kong, L.; Chen, G.; Wu, M.Y.; Liu, X.; Zeng, P. Towards secure industrial iot: Blockchain system with credit-based consensus mechanism. IEEE Trans. Ind. Inform. 2019, 15, 3680–3689. [Google Scholar] [CrossRef]
  42. Casado-Vara, R.; Chamoso, P.; de la Prieta, F.; Prieto, J.; Corchado, J.M. Non-linear adaptive closed-loop control system for improved efficiency in IoT-blockchain management. Inf. Fusion 2019, 49, 227–239. [Google Scholar] [CrossRef]
  43. Raspberry Pi 3B specifications. Available online: https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ (accessed on 17 December 2019).
  44. Metamask. Available online: https://metamask.io/ (accessed on 29 November 2019).
  45. Dameron, M. Beigepaper: An Ethereum Technical Specification v.0.8.5. Online. 2019. Available online: https://github.com/chronaeon/beigepaper/blob/master/beigepaper.pdf (accessed on 1 February 2020).
  46. Ethgasstation. Available online: https://ethgasstation.info/ (accessed on 29 November 2019).
  47. Ropsten Etherscan. Available online: https://ropsten.etherscan.io/ (accessed on 29 November 2019).

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.