Monetization of IoT data using smart contracts

IET NetworksVolume 8, Issue 1 p. 32-37 Special Section: Exploring IoT Systems in Businesses: Frameworks, Use Cases, Policies, Protocols and ServicesFree Access Monetization of IoT data using smart contracts Ahmed Suliman, Ahmed Suliman Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this authorZainab Husain, Zainab Husain Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this authorMenatallah Abououf, Menatallah Abououf Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this authorMansoor Alblooshi, Mansoor Alblooshi Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this authorKhaled Salah, Corresponding Author Khaled Salah khaled.salah@kustar.ac.ae Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this author Ahmed Suliman, Ahmed Suliman Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this authorZainab Husain, Zainab Husain Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this authorMenatallah Abououf, Menatallah Abououf Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this authorMansoor Alblooshi, Mansoor Alblooshi Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this authorKhaled Salah, Corresponding Author Khaled Salah khaled.salah@kustar.ac.ae Department of Electrical and Computer Engineering, Khalifa University of Science, Technology and Research, Abu Dhabi, United Arab EmiratesSearch for more papers by this author First published: 01 January 2019 https://doi.org/10.1049/iet-net.2018.5026Citations: 69AboutSectionsPDF ToolsRequest permissionExport citationAdd to favoritesTrack citation ShareShare Give accessShare full text accessShare full-text accessPlease review our Terms and Conditions of Use and check box below to share full-text version of article.I have read and accept the Wiley Online Library Terms and Conditions of UseShareable LinkUse the link below to share a full-text version of this article with your friends and colleagues. Learn more.Copy URL Share a linkShare onFacebookTwitterLinkedInRedditWechat Abstract In the era of the Internet of Things (IoT), smart connected devices have the ability to generate data that could be of interest to the public. This paves the way for an emerging market for monetized data exchanges, where IoT device owners can sell access to live data generated by their connected devices to interested users. Implementing a trusted, cost-efficient, automatic monetization solution of IoT data can be a challenging problem and usually involves intermediaries and centralised governance and management. Blockchain and smart contracts introduce a secure and trusted platform to carry out transactions in a highly trusted, secure, decentralised manner. In this study, they present a blockchain-solution and implementation using Ethereum smart contracts for monetizing IoT data with automated payment involving no intermediary. The authors discuss key aspects related to architectural design, entity relations, interactions among participants, logic flow, implementation and testing of the overall system functionality. 1 Introduction The Internet of Things (IoT) is one of the most hyped horizontal innovations these days and is an area that is transforming our lives in many radical ways [1-3]. In its basic definitions, IoT devices are smart, connected devices that have Internet connectivity and processing capacity. These devices typically have the ability to sense and send collected data to centralised servers for processing, analysis, and subsequent actions. Some of these collected data can be of interest to the public. Bucherer et al. in [4] discussed the future of an IoT enabled world where data in itself will become a valued commodity, and customers will be willing to pay for its use. This trend is further supported by the recent growth in the use of machine learning across all industries, which makes regularly accumulated data valuable in developing new smart technologies. Therefore, it is envisaged that IoT devices will have the ability to generate revenue from the data that they sense or collect. This may include data that can be generated from webcams streaming live video from sport events, volcano eruptions, hot tourist attraction spots and so on. Another example may include data sensed and collected from Medical IoT devices wearable by patients in clinical trials can be of interest. Other examples may include data collected from various public IoT devices in smart cities for surveillance, monitoring, or to simply perform monitoring, usage, or advanced data analytics functionalities. The monetization of data from these IoT devices is a challenging task when considering issues related to automation and scalability. With billions of connected devices, having a centralised platform to govern and manage the monetization aspect of the data can be a bottleneck. Also, centralised governance would be a costly option with intermediary fees and charges – and more importantly, it is a central point of mistrust, failure, hacking, and compromise. Therefore, there is a need to automate the monetization of collected IoT data in a manner that is highly trusted, secure, scalable, and highly automated with no intermediary. To date, the monetization of data or services with IoT or non-IoT systems is typically done using a centralised system where an intermediary is involved. However, Blockchain is a new promising technology is gaining significant traction. Blockchain smart contracts have the ability to automate the monetization of IoT data in a decentralised manner with high scalability, security, and trust. The blockchain is the underlying technology of bitcoin and now is seen as a horizontal innovation, and a platform which can be leveraged and used in many application domains, industries, and finance. Blockchain smart contracts are basically code that can be uploaded to the Blockchain and executed by all Blockchain network miner nodes, which validate and verify transactions and their execution outcomes. The transactions and execution outcomes are recorded on the blockchain ledger, with high consistency and immutability [4, 5]. The main objective of this paper is to illustrate how blockchain smart contracts can be used automatically and systematically to monetize the data generated and collected from IoT devices. Specifically, we present a system overview, architectural design, and implementation of an automated payment system can be used to rent IoT data. The primary contributions of this paper can be summarised as follows: We propose a Blockchain-solution using Ethereum smart contracts for the monetization of IoT data – whereby payment and token access are issued automatically to the IoT owner based on usage time and with no intermediary or trusted a third party. We present details of the overall system, architectural design, entity relations, and interactions among participating parties with the smart contract. We provide the full code of the Ethereum smart contract and discuss key aspects related to logical flow and interactions, authentication, implementation and testing of the overall system functionality. 2 Background In order to appreciate our proposed blockchain-based architecture and solution for automating the monetization of IoT data, this section provides a brief overview of blockchain and Ethereum smart contracts. 2.1 Blockchain The blockchain is a distributed shared ledger composed of chained blocks that include provenance and details of all transactions, data, and execution outcome [6, 7]. Each block is hashed and chained into the next block, making it an extremely secure chain of immutable entries [1]. Blockchain has been attracting huge attention since its use in the first cryptocurrency implementation in 2008 of Bitcoin. Blockchain, when used for the cryptocurrency, the blockchain miners solve the double spending problem by validating transactions and employing Power of Work consensus algorithms. Recently, many blockhain-based cryptocurrencies similar to Bitcoin have been emerging [8-10]. 2.2 Ethereum smart contracts Ethereum is fundamentally a programmable blockchain that allows users to develop their own code and business logic to be hosted on the Ethereum blockchain network. The Ethereum Virtual Machine (EVM), which is the run time environment for Ethereum computations, can run user codes of variable complexity, allowing the technology to be used for more than just documenting monetary transactions [2, 3]. One of the most famous applications of Ethereum has been the implementation of smart contracts, which was started by its own founder Vitalik Buterin in 2014 [3]. A smart contract is fundamentally a code that validates a negotiation and immediately brings a contract into effect, without the involvement of any intermediaries [3]. The smart contract code resides on a blockchain as multiple functions with unique addresses that can be called by any user of the blockchain. Basically, there are 'getter' functions to retrieve information and state variables, and 'setter' functions to set values to variables. All of these functions can have restricted access by using the qualifier 'only'. Also 'events' are used to log and broadcast messages to all miners and user participants on the blockchain. A smart contract is called by a data field which contains the function name and parameters. The function caller pays 'gas' for the execution of the code depending on the computational steps. A function takes input parameters related to the corresponding transaction, the function call, or the data, is converted to hexadecimal and placed in the transaction, the transaction is then signed and upon successful compilation, creates a contract entry on the blockchain, thereby bringing the security benefit of blockchain technology to the contract management system, which is what makes smart contracts famous [5, 6]. The concept of smart contracts can be used to automate negotiations between service providers and users along with the required monetary transactions without a trusted intermediary [2], as depicted in Fig. 1. While the IoT market has progressed well enough to make our lives hassle-free by making remote device access possible, and even facilitating the renting of such devices, monetising the real-time use of data acquired through IoT devices is an exciting new challenge to address. Several financial, computational and ethical issues need to be considered to make a substantial contribution in this field. Fig. 1Open in figure viewerPowerPoint Smart contracts for monetizing IoT data 3 Related work The current literature is lacking work on automating the monetization of IoT data. In this section, we describe related work reported in the literature with regards to different methods of monetizing data. The authors in [11-13] presented some research work on monetizing IoT services using smart contracts [11-13]. They used blockchain to build a decentralised, trusted, transparent and open architecture to model a new marketplace with IoT brokered infrastructure, with no centralised ownership. Eva et al. discussed in [4] the concept of monetization and revenue generation for the IoT, with the data derived from IoT systems as the main source of the proposition. They draw from the Laws of Information, proposed by Walsh and Moody in [5], and present four different business models to better demonstrate the scope of this new market. Traditionally, any business model bases its monetary value on only the actual physical commodity or service, with price defined particularly for the information involved. However, looking at the recent shift and wide acceptance of e-commerce, the public consensus on the monetization of data could soon change too. Zhang and Wen [14] proposed an E-Business model for IoT. The authors present the reasons, why traditional E-Business models fail for IoT since they depend on a third party. They argue that a blockchain-based E-Business model would outperform any traditional model while offering many advantages including efficiency and lower costs. On the ever increasing phenomena of sharing services and devices, Bonger et al. proposed in [6] and conceptually design a decentralised app that allows sharing securely, privately, and without the interference of a third party (TTP) by utilising the smart contracts on Ethereum blockchain instead of an intermediary. Since users are identified by public keys in Ethereum, signing up is not required and therefore it is more secure. The renting terms are conditions that are set by the owner of the device upon registering the device. Also, the use of smart contracts ensures that the conditions of the rental agreement are met. Beck et al. discussed in [7] blockchain as a basis for a trust-free economic system. This a very important prerequisite to any further advancement in IoT systems, as evident by the fact that IBM and Samsung are investing in the creation of an IoT derivative of the Ethereum blockchain. The authors discuss the differences between a trust-free system and the current state of things. Furthermore, a conceptual prototype is developed using a real-life example. Similarly, in [15], Khan and Salah proposed a mechanism of using P2P decentralised blockchain and smart contracts to share services securely and automate existing multi-step workflows with the use of cryptocurrency. The paper also discusses the significance and the challenges of using blockchain in IoT from the perspective of transaction privacy and evaluating the digital assets. The use of blockchain adds a billing layer in systems that use cryptocurrency for the exchange of services or as compensation for exposing the data which makes sharing of services easier. An example provided in the paper as an application for IoT-blockchain combination is solar panels selling the excess energy by issuing smart contracts without the interference of the user. The inventors of Slock.it [8] introduced the Universal Sharing Network which makes it possible for any asset to be 'rentable' without requiring any trusted third party by employing blockchain and smart contracts. In Slock.it, physical assets or objects can be made smart and connected to the Internet as well as interact with Ethereum smart contracts. This makes it possible for humans or even other objects to access a service from objects directly through the contract without any intervention or permission from a third party. Huckle et al. [9] proposed a design called ExpressIT which is a Distributed App (DAPP) that uses blockchain and smart contracts to securely monetize assets and thereby making a profit out of them. DApps are basically frontend applications that interact with the Blockchain platform through defined APIs. The decentralised P2P sharing of IoT devices transactions would be stored in the immutable ledger of blockchain without the intrusion of TTP or 'middle man'. Multiple applications would make use of DAPP such as AutoPay. In AutoPay, the authors provided a conceptual design for a scenario where a smart car would initiate a smart contract and pay for filling up the fuel or parking fees without any user interaction. One of the applications of blockchain and smart contracts in EIoT is the monetization and enabling of multiparty energy trading in smart grids [10]. Blockchain increases the integrity and trust of those transactions between the consumers and the distributed energy providers without the involvement of a third party in a decentralised and secure manner. In addition, this will make the trading of energy faster, scalable and cheaper due to the reduced transaction costs of the intermediaries. In terms of the security benefits of the blockchain, the transactions are verified in a multifactor manner by the distributed ledger. Moreover, blockchain can detect any unauthorised or suspicious attempts to change any critical data or configuration. Blockchain also allows more accurate readings of the actual consumption and real-time executions. Another application of M2M electricity market was presented in [11]. A scenario of a trade between two electricity producer nodes and a consumer node over block chain is illustrated. The two producers present offer to the consumer who analyses these offers and accepts the offer which satisfies his/her demands and budget. The execution of the accepted offer is done in an atomic exchange fashion (money for energy) where either both transactions succeed or fail together. The consumer node prepares a transaction by locking the required funds and sending the chosen offer with the details of the payment. The accepted exchange is the submitted to the chain and then the consumer node checks if the chain validated the transaction. The industrial process is simulated in Aspen Plus (AP). 4 System architecture, design, and implementation In this section, we present a system overview and architectural design for the monetization of IoT data in an automated, decentralised manner by using Ethereum smart contracts. In our design, we opted for Ethereum blockchain as it is the only, to date, an available platform that is accessible by all public users who are the customers in this case. Furthermore, the Ethereum blockchain allows for programmability (through smart contracts) of the blockchain as well as payment in cryptocurrency using the Ether token. Fig. 2 illustrates the main participants of the system which include the IoT device, the owner of the device, MQTT broker, and customers. The system comprises of a contract code, programmed in Solidity language, residing on the Ethereum blockchain that allows a device owner to set the conditions and rules for automating the sale of the data of the IoT device he owns. An interested customer can interact and call the contract to access and used the data in real time, with no involvement of a trusted-third party to mediate the exchange of payments. Fig. 2Open in figure viewerPowerPoint System overview for automating the monetization of IoT data using Ethereum smart contracts The data generated by the IoT device is aggregated and collected by an MQTT broker hosted in the cloud. In our architecture, the MQTT broker is better hosted in a cloud environment so that it can be reliable, scalable, available, and also accessible by all customers globally with low latency. MQTT broker follows a publish/subscribe protocol for collecting and accessing the data. MQTT is an extremely lightweight messaging protocol that is commonly used by IoT devices http://mqtt.org/. The MQTT broker allows the IoT device to publish the data on a specific topic and allows access to the data by public users through subscribing messages. The MQTT broker also authenticates valid customers using smart contracts. The IoT device is equipped with a regular MQTT API to connect with the broker. The device publishes data to its listed topics on the broker, which are then further published by the broker to the subscribed customers. The broker has an added communication interface to interact with the smart contract using JS Services. Upon a successful data access, an automatic payment in ether (the cryptocurrency token of Ethereum) based on use time is deducted from the customer balance and is sent to the owner of the IoT device. The following subsections discuss in more detail design aspects, smart contract code, its logic, implementation, and testing of the overall system functionality. 4.1 Design aspects The design of our system considers four key components which all possess Ethereum Addresses (EA): owner, IoT device contract which gets created by the owner, MQTT broker which stores the data generated by IoT device, and the customer. (i) Owner: The owner of the IoT device creates the device contract. The owner also creates MQTT topics and assigns their respective rates, in agreement with the MQTT broker. Any payment received after data access to a particular device is automatically transferred to the owner's ether wallet. (ii) IoT device contract: The smart contract holds all the logic and code for the rules to govern deposits by customers, payments to the owner, rates, usage time, issuance of token access to MQTT broker, and logs of all events. (iii) MQTT broker: A trusted third party that collects the data from IoT device and authenticates customers based on access tokens issued by the smart contract. (iv) Customers: Public users who are interested in using and paying for specific IoT data. Fig. 3 illustrates a generic diagram, showing entity attributes and relations among system participants in the context of the Ethereum environment. As shown, every IoT device is associated with a single owner, single MQTT broker, and can have multiple customers who can subscribe to multiple topics. An IoT device can have the capability to publish single or multiple topics of interest to customers. An owner can have multiple IoT devices. Also, an MQTT broker can be handling multiple IoT devices. Fig. 3Open in figure viewerPowerPoint Entity attributes and relations among system participants 4.2 Logic flow and smart contracts In this subsection, we briefly illustrate the logical flow of our smart contract. The full code of our smart contract in Solidity language is made available at GitHub. The owner of the IoT device creates a contract through the constructor of the IoTSmartContract and specifies the MQTT broker's address along with the default topic's details. The contract then registers the broker and logs an event using TopicAdded. Fig. 4 shows the code for the IoTSmartContract constructor. The values of msg.sender and b are the EA of the owner and broker, respectively. Fig. 4Open in figure viewerPowerPoint IoT smart contract constructor [Code is available at: https://github.com/AhmedTS/IoTSmartContract.] As shown in Fig. 5, for accessing the IoT data, the customer first needs to make an initial ether deposit to the contract through the payable deposit function, which records the amount the customer deposits and adds it to the existing deposit, if any. Fig. 5Open in figure viewerPowerPoint Function calls and interactions with the smart contract Then, the customer can access a specific topic by specifying the topic and the ether amount they wish to use through the subscribe function. It is important to note that at this step no actually ether is taken from the customer but is only deducted from the customer's initial deposit. When the customer wants to access the IoT data, the customer would invoke the access function with a specific topic. The contract then checks if the customer has the proper subscription and if so, the contract sends the access duration and a token to the customer. Additionally, an Accessing event is logged (with parameters that include the customer's address, token, requested topic, and the access duration). The event messages are publically broadcasted and captured by all Ethereum nodes including the customer and the broker. The broker will use the token to authenticate the customer off the chain. Authentication is done by requiring the customer to send the same token but signed by the customer's private key. Once authenticated by the broker, the customer will be given access to the IoT data through an MQTT connection for the specified period of time or until the customer disconnects. The Solidity codes for the subscribe and access functions are shown in Figs. 6 and 7, respectively. As shown in Fig. 7, to generate a unique access token, the contract hashes the concatenation of several variables (the owner and customer's address, the topic ID and the total number of accesses through the system). Fig. 6Open in figure viewerPowerPoint subscribe function code [The code is available at: https://github.com/AhmedTS/IoTSmartContract.] Fig. 7Open in figure viewerPowerPoint access function code [The code is available at: https://github.com/AhmedTS/IoTSmartContract.] The communication between the broker and the customer is direct via MQTT protocol where the broker publishes the data of the topic to the subscribed customers. It is worth noting that the subscribe function can be called by any customer who wishes to use the service. When a customer disconnects, the broker invokes the updateSubscriptionTime() function where the customer's subscription balance is updated according to the duration of the data access. In case of session expiry, which occurs when the deposit of the customer is used up, the broker disconnects the session and invokes the updateSubscriptionTime() function, as shown in Fig. 8. The smart contracts send the payment to the device owner after the disconnect request. Fig. 8Open in figure viewerPowerPoint updateSubscriptionTime function code [The code is available at: https://github.com/AhmedTS/IoTSmartContract.] If a customer wishes to refund his/her remaining balance, the customer invokes the refund function of the smart contract. The contract then ensures no data is currently being accessed, resets the client's deposit and subscriptions and sends the remaining ether back to the customer. This interaction is shown in Fig. 9. The code for the refund function is shown in Fig. 10. It is worth noting that the customer pays for Ether gas consumption when executing the function to be called by the smart contract, which comes from his own account and not the funds within the smart contract itself. Fig. 9Open in figure viewerPowerPoint Refunding a customer who terminates the subscription Fig. 10Open in figure viewerPowerPoint refund function code [The code is available at: https://github.com/AhmedTS/IoTSmartContract.] 4.3 Implementation and testing Our smart contract was implemented and tested using Remix IDE found at http://remix.ethereum.org/. In this section, we primarily focus on testing the correct interaction and functionality among system participants though the Ethereum smart contracts. Aspects related to the full system testing and implementations of the MQTT authentication of customers as well as the testing of the actual data exchanges among IoT device, MQTT broker, and customers are left for future work. The Remix IDE offers rich features that make it possible to test and debug smart contracts prior to deploying them. Remix IDE offers multiple Ethereum wallets, allowing us to simulate a real-life scenario with an owner and multiple customers. In addition, a debugger is also available that allows the investigation of various transactions to ensure the correct behaviour of the contract. Using Remix IDE, we tested thoroughly various scenarios and conditions with multiple customers to ensure the expected logical functionality and execution outcome from the contract, and to also ensure the correct behaviour including access of function setters and modifiers, and the generation of the access token. Moreover, one of the most important cases is the deposit and subscription. The subscription should not be allowed if the requested amount exceeds the pre-deposited amount. Conversely, if the subscription amount is less or equal than the deposited amount then it should be allowed. Figs. 11 and 12 show the output from Remix IDES for the cases where the subscription is invalid and valid, respectively. Fig. 11Open in figure viewerPowerPoint Output in case of a failed access Fig. 12Open in figure viewerPowerPoint Output in case of a successful subscription In Fig. 13, it is depicted that initially that the customer has 0 ether deposit, therefore any attempt at a subscription fails and causes it to revert to the initial state seen towards the bottom. Fig. 14 shows that the user has deposited 5, and then the customer tries to subscribe to the first topic (ID = 0) with 5 ether. As shown in the Remix snapshot, the transaction is successful and the user is subscribed. Another important case is the access case. A user should only be allowed access to a topic if they already have a subscription for it. Figs. 11 and 15 show the cases where the access fails and succeeds, respectively. We can see clearly in Fig. 15 in the 'decoded output' row that the user receives the duration they have and the random token. Fig. 13Open in figure viewerPowerPoint Output in case of an unsuccessful subscription Fig. 14Open in figure viewerPowerPoint Remix output for a refund case Fig. 15Open in figure viewerPowerPoint Output in case of a successful access Finally, a customer should be able to refund his deposit and remaining subscriptions if so desired. Fig. 14 shows an example where a customer starts with 100 ether in their wallet and deposits 10 ether after which they refund and get their ether back. It is noted that the wallet does not go back to 100 because there is a small amount of ether deducted as a payment to miners for validating transactions (gas). 5 Conclusion In this paper, we have presented a system design, architecture, and implementation of a blockchain-based solution using Ethereum smart contracts for the monetization of IoT data with automated payment in a way that involves no intermediary. We implemented Ethereum smart contracts using Solidity language. We gave details of system interactions among participants, and also tested various functionalities of the system using Remix IDE. As a future work, we are in the process of implementing a full functional system consisting of a smart webcam, which streams live images to an Amazon-based MQTT broker in which images are aggregated. We are also developing front-end DApps (decentralised applications) and wallets for the different participants to interact with the Ethereum smart contracts. 6 References 1Peck, M.E.: 'Blockchains: how they work and why they'll change the world', IEEE Spectr., 2017, 54, (10), pp. 26– 35 2 Ethereum, http://www.ethdocs.org/en/latest/introduction/what-is-ethereum.html/, accessed 20 December 2017 3Pierro, M.: 'What is the blockchain?', Comput. Sci. Eng., 2017, 19, (5), pp. 92– 95 4Eva, B., Uckelmann, D.: ' Business models for the internet of things', ' Architecting the internet of things' ( Springer, Berlin, Heidelberg, 2011), pp. 253– 277 5Walsh, P., Moody, D.: 'Measuring the value of information: an asset valuation approach'. Guidelines for Implementing Data Resource Management. European Conf. on Information Systems Proc., Gdansk, Poland, 2002 6Bonger, A., Chanson, M., Meeuw, A.: 'A decentralized sharing app running a smart contract on the ethereum blockchain'. Proc. of 6th Int. Conf. on the Internet of Things, Stuttgart, November 2016, pp. 177– 179 7Beck, R., Czepluch, J.S., Lollike, N. et al: 'Blockchain – the gateway to trust-free cryptographic transactions'. Proc. of 24th European Conf. on Information Systems (ECIS), Istanbul, Turkey, 2016 8 'Slock.it',. Available at https://slock.it/index.html/, accessed 30 November 2017 9Huckle, S., Bhattacharya, R., White, M. et al: 'Internet of things, blockchain and shared economy applications'. Int. Workshop on Data Mining in IoT Systems (DaMIS), London, UK, 2016, vol. 98, pp. 461– 466 10Mylrea, M, Gourisetti, S.N.G.: 'Blockchain for smart grid resilience: exchanging distributed energy at speed, scale and security'. Resilience Week (RWS), Wilmington, USA, September 2017, pp. 18– 23 11Sikorski, J.J., Haughton, J., Kraft, M.: 'Blockchain technology in the chemical industry: machine-to-machine electricity market', Appl. Energy, 2017, 195, pp. 234– 246 12Hachem, S., Issarny, V., Mallet, V. et al: 'Urban civics: an IoT middleware for democratizing crowdsensed data in smart societies'. IEEE 1st Int. Forum on Research and Technologies for Society and Industry Leveraging a better Tomorrow (RTSI), Torino, Italy, September 2015, pp. 117– 126 13Dwyer, G.: 'The economics of bitcoin and similar private digital currencies', J. Financ. Stab., 2015, 17, pp. 81– 91 14Zhang, Y., Wen, J.: 'The IoT electric business model: using blockchain technology for the internet of things', Peer-to-Peer Netw. Appl., 2017, 10, (4), pp. 983– 994 15Khan, M., Salah, K.: 'IoT security: review, blockchain solutions, and open challenges', J. Future Gener. Comput.Syst., 2018, 82, pp. 395– 411 Citing Literature Volume8, Issue1Special Issue: Exploring IoT Systems in Businesses: Frameworks, Use Cases, Policies, Protocols and ServicesJanuary 2019Pages 32-37 This article also appears in:2020 Winners of the IET Premium (Best Paper) Awards FiguresReferencesRelatedInformation