In our opinion, BC represents the missing piece of a puzzle to solve privacy and reliability flaws in IoT. The intrinsic decentralized, autonomous, and trustless features of the BC make it suitable to be applied in several different scenarios such as “Smart Home,” “Smart Industries,” “Smart Grid,” and “Smart City” as well. For example, the BC could keep an immutable history of smart devices. Moreover, it may enable an autonomous functioning of intelligent devices, removing the presence of centralized authority or human control by the use of smart contracts. Furthermore, BC can also create a secure way for smart devices exchanging messages with each other. Therefore, the goal of this paper is to figure out how BC can meet the IoT security and privacy requirements or in general how BC can be integrated with IoT.
Thus, in this section, we are going to categorize the analyzed papers in four main groups, taking into account the field where each of them operates. The considered groups are Smart City, Smart Home, Smart Property and Generic Context. The Smart City is further categorized into two sub-sets: Smart Industry and Smart Grid. In
Figure 4, a graphic distribution of the papers under each of the subsets is presented.
Table 3 represents this categorization.
Table 4 categorizes the surveyed solution into two categories
(i) data manipulation, and
(ii) device manipulation. A data manipulation approach utilizes the BC as a secure repository exploiting its features like an immutable public ledger and ability to create a digital trail for verification. A device manipulation approach, on the other hand, utilizes BC not just as a secure book of records, but utilizes smart contracts to create autonomous systems capable of making decisions on the basis of business logic. Smart contracts also eliminate the need for a trusted third-party as the rules are executed automatically based on present conditions and rules are publicly available thereby promoting transparency. Another organization of the analyzed frameworks has been done in
Table 5. In this table, the frameworks have been split into three subsets considering their development level.
Table 6 presents a categorical view of solution addressing the challenges presented in
Section 2.
Table 7 tries to give another perspective to the survey focusing on specific use-case and goal specifying the “technologies” or “models” used instead of considering the operating environment of the solution.
Table 8 specifies the consensus algorithm adopted in each of the presented solutions.
4.1. Smart City
A city can be understood as a Smart City if it is capable of intelligently managing economic aspects, mobility, citizen relations, environmental resources, etc. From the infrastructural point of view, a Smart City is designed to provide services to citizens and enterprises through communication and information technologies. From the technological point of view, this typically means having a network of sensors or in general “smart devices” that can capture data from the surrounding environment and make it available to citizens and authorities for optimal and real-time management of the city. It takes place through the interconnection of infrastructures and devices such as smart energy meters, safety devices, home appliances and smart cars or video surveillance systems. It is easily conceivable that the more “intelligent” and interconnected a city is, the more it becomes a desirable target for hackers. A Smart City management is based on a continuous data exchange among smart devices which collect such data from citizens and the environment.
The risk of an attack on critical services of a smart city is very high and, if it occurs, could lead to serious damage to the citizens’ privacy. In fact, the current scenario confirms that cybercrime attacks are a certain element of the ICT world: insofar as ICT pervasiveness grows, so does cybercrime, and that means that the latter is steadily on the rise. To tackle these risks, adequate defense and protection systems, dealing with any critical attack, are needed. Some security measures useful for reducing cybernetic risk are: encryption, anonymization, and pseudonymization of data or application of the “
security by design” [
117] approach.
An expedient for separation of collected data (that are therefore also physically located in different servers) is the pseudonymization, so that only through a joint treatment of the data is it possible to get the identification of the producer; pseudonymization thus does not preclude that, by the merging data from different sources, the subject becomes identifiable again. In other words, personal data may no longer be attributed to a specific individual without the use of additional information. This additional information is stored separately and, to ensure that such personal data is not attributed to an individual’s identity, it is properly and technically organized. This exactly is the goal of Biswa et al. and Conoscenti et al. [
63,
66]: to find a possible approach to overcome the data privacy risks from the different point of views.
The papers presented in this subsection propose several BC-based systems that operate in such a context. The first is based on pseudonymization concept. In fact, their solution is to split data into several chunks and to distribute them among several smart devices in an IoT environment (Smart Home). In this way, only the owner can rebuild the original data. Moreover, the use of the BC technology provides certification of the data. The BC contains the hash of the data produced by the IoT devices. An owner of smart devices can specify access rules to the data.
Thus, if some external entity (Service Provider) wants to get the data, it has to be authenticated. The data owner decides, using a specific access list, whose public key is allowed to access the produced data [
63], instead proposes the integration of BC into the different layers of the Smart City framework, namely, physical, communication, database, and application layers. The proposed framework overcomes the limitation present in each layer via the BC technology. Ethereum is responsible for providing smart contract functionalities with BC as distributed DB. Finally, the application layer could integrate security to avoid granting intruders any access to other dependent processes.
Another solution that exploits the Telehash protocol for the communication is that developed by Filament company [
59]. The Filament idea is to create wireless networks to control any system, from the lights of a city to the alarm of a company. The system is based on the BC and smart contracts’ technologies, and it enables smart devices (sensors, smart appliances, etc.) to discover, exchange messages, and interact with each other autonomously and without any central entity. Before any communication, the devices must authenticate with each other, e.g., by the Secure Socket Layer (SSL) or Transport Layer Security (TLS) protocols, possibly based on public key infrastructure (PKI). In addition, Prabhu et al. in [
84] proposed an intercommunication model between smart devices in an IoT environment that makes use of the BC as a backbone. The idea is novel compared to those proposed in [
59,
63]. The IP address acts as a key to retrieve information stored on BC. In addition, events stored on BC are used as notifications.
Additionally, on the topic of secure communication between IoT devices, the startup Moeco (Berlin, Germany) proposed a platform called Moeco [
93], named after the company. In an IoT environment where many peers are involved, and some of them play the role of hops, private communication between two nodes must be realized. In light of the above, the Moeco platform is exploiting the BC to develop its own IoT data routing platform thus aiming to create a new concept: Domain Name System (DNS) of things. Every node (e.g., mobile devices) can install Moeco software, becoming a gateway node (bridge) of networks and is incentivized for fulfilling tasks. The payment is in a token called MoeCoin (MOE). The BC used is Ethereum-based, and it stores all the connections and data transfers within transactions. The payment is signed and processed on the BC as well. However, Moeco is planning to move towards a different consensus algorithm, namely the Exonum [
116] custom-built Byzantine one.
Similarly to Biswas et al. [
63], Hashemi et al. [
72] proposed a multi-layer BC-based framework. The target is the same as the previously analyzed works: Data Protection. However, the authors followed a publish–subscribe approach to create a secure environment. The authors assert that conventional best practices to grant data security are not suitable in IoT: the access control list (ACL) cannot be placed on sensors, Kerberos is a central point of trust, etc. The presented solution is based on two concepts: separate data store from data management and design components in a scalable, decentralized and distributed way. The three layers are:
(i) a data storage system based on BC to provide persistent distribution and transparency; a
(ii) messaging service providing a scalable communication system between senders and receivers;
(iii) data management providing a mean for the interaction between roles (data owner, data source, data requester, endorser) with an access control mechanism. The BC is used to collect access control data in a decentralized way. The system allows users to access the data in three different manners:
(i) direct access: everybody can access the BC and download all the chain. It is easy to implement but not feasible in all the contexts because it requires much computational power in each node to manage that large amount of data.
(ii) Client-Server solution is feasible if there is enough trust between clients and server.
(iii) pub-sub method represents a solution where the “Publisher” does not have access to the data. It will send an encrypted version of the data to the “Subscriber” who will be able to decrypt it.
A challenge that researchers are trying to resolve is to find a suitable way to implement access control and authentication approaches fulfilling the IoT requirements. We just saw that classical ACL protocols do not fit the requirements of IoT environment and this is true for other approaches such as Mandatory Access Control (MAC), Discretionary Access Control (DAC), and Attribute-Based Access Control (ABAC) because of their centralized nature. Deters in [
92] proposed a novel model to achieve access control in IoT. The model evaluates the suitability of BC based on statistics derived from access patterns. The first is the “Announcement” approach in which the owner of data or resource can send the transaction to the BC containing the address and his privilege. The second approach is based on a Smart Contract. To access the data, a user must send a transaction to a given smart contract, which, after evaluating the access control rules, decides whether to grant or deny permission to the user.
Even though the purpose of Aitzhan et al. in [
60] is to solve the privacy and anonymization problems by means of BC, what is novel in this paper is the scenario. The target is not hiding the identity of “data” producers but of energy sellers. Thus, in this case, the paper is placed in a smart context that may be considered a subset of the Smart City, namely Smart Grid. The BC is integrated into PritWatt to provide privacy and security to the energy trading system. In such a context, a transaction is understood as an exchange of ownership tokens. The proposed energy trade system generates and uses new addresses for each new attempt to sell energy. In this way, the user’s identity is hidden every time it generates a transaction. The trading process consists of three actors:
(i) a prosumer (PROducer and conSUMER);
(ii) a consumer; and
(iii) an energy broker called
Distribution System Operator (DSO). The DSO manages security and avoids double spending of the energy. Thus, this work is categorized under the smart grid label in
Table 3, in turn, a subset of the smart city category. Moreover, it is possible to insert this work into the smart property context. In fact, the system considers the exchange of tokens about the ownership of a specific amount of energy. The authors also proposed a proof of concept of the presented system.
The secure automation of the energy exchange is possible if smart contracts are exploited. In fact, it is possible to trigger an energy transaction if specific conditions between prosumers and consumers are satisfied. This is the focus of Munsing et al. [
79] where smart contracts are exploited to optimize the energy distribution within micro-grids. In addition, Lombardi et al. [
78] worked on the same topic but from a higher level point of view. Specifically, they presented a three-layer BC-based system that exploits smart contracts, policies and auctions in a grid. The system improves security, availability, and reliability reducing the transaction costs. Together with the previous works, Nehaï et al. [
80] also aim to integrate SmartGrid and BC. The authors utilized BC for peer-to-peer exchange of electricity, at the same time optimizing its transport. In particular, the idea is to move from a centralized approach to a peer-to-peer solution. To make BC work well in a SmartGrid context, they presented “ElectricChain” [
113], which is a mix of different BC approaches. The main idea is to manage transactions related to the sale of electric energy between two users belonging to the same micro-grid. Inhabitants can exchange energy produced in their homes with others, earning a specific amount of “coins” (SolarCoins [
118]) per kWh. The system is based on the exploitation of smart contracts containing all the rules and agreements by the inhabitants. Moreover, for efficient transaction management, a smart contract owns the consumption patterns of the BC users. The authors further highlight the flaws of the presented approach. In the following, the focus is slightly moved to another application field that, in our opinion, is directly linked to the Smart City. It is called Smart Manufacturing. The Smart Manufacturing/Industry can be seen as the adoption of digital technologies capable of improving the interconnection and cooperation of resources used during the operational processes distributed along the value chain [
119]. Other more comprehensive definitions about Smart Manufacturing are presented in [
120].
It is in such a context that Bahga et al. [
62] gave a novel Cloud-based Manufacturing (CBM) system, called BPIIoT, exploiting the BC technology to make it decentralized and trust-less. BPIIoT can improve the well known CBM (which is a new manufacturing paradigm that aims to provide manufacturing resources and capabilities as a Service) platforms by exploiting BC and smart contracts. Each IoT device is a node of the peer-to-peer network and has an account on the BC. A user of the system can transact with the machines directly enjoying on-demand manufacturing services by sending transactions to a registered machine. BPIIoT can be exploited for several manufacturing applications, such as
(i) On-Demand Manufacturing: users transact directly with manufacturing machines such as (Computer Numerical Control) CNC machining or
printing;
(ii) Smart Diagnostics & Machine Maintenance: Exploiting the sensors’ values, it is possible to check if a specific machine is working fine or not;
(iii) Supply Chain Tracking: by tracking product ownership through different phases in a supply chain;
(iv) and others. Moreover, the authors proposed a use case: machine maintenance and smart diagnostics application. The system is based on Ethereum, and the contracts are developed in Solidity language. The benefits of this choice are embedded in the BC technology, and, consequently, the system suffers from the same problems as Ethereum, namely: smart contract vulnerabilities, privacy, efficiency, and government regulation. In fact, in the paper, the authors did not face problems with user anonymization or devices’ provenance. This is, instead, the subject of [
71]. The authors aim to grant and certify the provenance of a constrained device without revealing its identity.
The proposed architecture is based on several security concepts such as Enhanced Privacy ID (EPID) that in turn is an extension of the Direct Anonymous Attestation (DAA). The five actors of the system are
(i) device manufacturer,
(ii) constrained device,
(iii) device owner,
(iv) IoT Data Broker (provenance verifier) and
(v) a BC p2p network. The device manufacturer sends to the IoT Data Broker a public key to check the provenance of a group of devices. Each device has the corresponding provenance issuing private key. Each device calculates another pair of keys to sign the BC transactions. In this manner, the manufacturer cannot monitor the device activity because it does not know this new pair of keys. Another analysis about the BC roles in supply chain management is given in Kshetri et al. [
121]. The authors explain how BC can be merged with the IoT and the aspects of the supply chain it can improve. Remaining in the Smart Industry context, there is an aspect that was not included in the papers cited previously, namely: the smart energy exchange. The scenario presented in Sikorski et al. [
86] considers a novel machine-to-machine (M2M) communication model based on the BC technology. The machines or components, in the Industry 4.0 [
122], must be able to talk with each other and trade every type of commodity (steam, natural gas, coal, energy). Every machine has an embedded system having its digital identity, and this allows for transacting over the BC. The presented system consists of three primary entities: the BC; an energy producer that, utilizing a transaction to the BC, publishes an energy offer; an energy consumer that picks up the best-published offer and then sends to the BC a transaction payment for that offer.
4.2. Smart Home
A smart home is, by definition, a home able to leverage an integrated home automation system, to enhance the comfort, safety, and consumption of people who live there [
123]. The smart home enables owners to manage many internal functions even from outside the home. It is possible to program, activate, deactivate, and control the devices within it without necessarily being physically at home. Thus, a smart home provides the residents with the ability to optimize energy loads, create custom scenarios, and adapt the home to the owner’s preferences and habits. Through the previous
Section 4.1, we analyzed different solutions aiming to reduce privacy and general security issues in a Smart City. However, what happens if the security problems in IoT occur in the home? Does the end consumer have the required knowledge and tools to defend itself from possible external attacks? There are several possible kinds of attacks that could be attempted by an intruder to obtain access to confidential and private data. To cite some of them: malware acting as backdoor; Man-In-The-Middle in case of unencrypted communication protocols; and merely obtaining access to the home router devices (hacking the password of the device). In many cases, breaking into a single device gives the hacker the possibility of violating others. Moreover, some studies demonstrate that, even when the sensor generated data in a Smart home is encrypted, it can reveal a great deal of information about the activities of the users. This is possible by just analyzing their meta-data and traffic patterns [
124]. In light of the above in this subsection, we grouped all papers proposing solutions to solve some of the previous threats through the exploitation of the BC.
In fact, if we think about scenarios where users use private/public keys to sign and secure their activities or action in an IoT environment, even if data or the communication is ciphered, it is still possible to obtain information about the involved users or entities. This is because the public key of the user is known to anyone. Furthermore, there are several situations where the fact that two entities are talking to each other can be sensitive information. A solution to this problem is proposed in [
61]. The main idea is to apply a Blockchain-based PKI system to those scenarios in which a PKI is needed. The application of this kind of solution can create a privacy-aware PKI, overcoming all the limits concerning the conventional PKI systems. A possible scenario in which to exploit the Blockchain-based PKI is the IoT. Here, a single user may act on multiple devices (smart TV, fridge, for example) and the linking of identity, being used across devices, could be a privacy concern. However, this paper does not explicitly focus on this scenario, but it provides an in-depth background about the BC architecture and Blockchain-based public key infrastructure (PKI) system. Another generic and similar solution to solve authentication issues is presented in Fromknecht et al. [
69,
110]. This solution is called CertCoin. It is a NameCoin based system that stores domain information together with their associated public keys in a public ledger (BC). NameCoin is an implementation of the Bitcoin protocol to create a completely peer-to-peer DNS system. Through the Namecoin system, the translation of domain names into the corresponding IP addresses takes place without the use of central servers that can theoretically be subject to government censorship. This solution puts together the pros of both Transparent Certificate Authorities [
125] and the Web of Trust [
126]. The proposed solution does not focus specifically on the application of CertCoin in IoT environment, but is a general approach. A similar approach is proposed by Axon et al. [
61].
However, in our opinion, it can be exploited to manage security aspects in an environment composed of thousands of devices that must trust each other. Another “more efficient” solution than PKI or Pretty Good Privacy (PGP) WoT [
126] is proposed in [
77]. This solution is called Authcoin, and it is based on four main steps:
(i) key generation,
(ii) user–key association,
(iii) public key formal validation and
(iv) domain, certificate, and e-mail validation and authentication processes. The paper takes PGP WoT as a reference point, but Authcoin can be applied to any other authentication system. During the first step (key generation), a new key pair for the user is generated. Specifically, a user uses a local client that must be PGP-compatible. He can also add further information to the key-pair like email address and domain names. The second step merely checks if the public key meets specific requirements. If the requirements are met, the
(v) validation, and authentication steps start. This is the most crucial step of the Authcoin flow. Its strong point is the “bidirectional request–response” challenge. The solution of the challenge is the proof of the responder identity. The authentication idea is based on the concept that a user cannot lie about his/her own identity because this is publicly available in the BC and everybody can easily verify it.
Moving from the specific authentication concerns to other kinds of attacks, it is interesting to cite Huh et al. [
74] who propose a solution to make a denial of service and forgery attack-resistant smart home. The solution adopted is similar to Axon et al. [
61], which is to manage and control devices by using the key stored securely within the BC. However, in this paper, the crux is the smart contract. The main idea is to be able to automatically change the device working mode, switching to energy saving mode when the energy consumption exceeds a specific threshold. This is obtained by exploiting smart contracts registered on the BC. To simulate an IoT system, they considered only a few smart devices, namely three Raspberry Pis and one smartphone. The Raspberry boards were used to meter electricity usage of home devices while the smartphone was used to configure the policies into the BC. This is possible using Ethereum smart contracts. There are mainly three simultaneous running processes on the BC:
(i) homeowner sets up or changes working policies on the BC (sending data to BC);
(ii) devices read the BC periodically to retrieve the updated policies; finally,
(iii) the devices send electricity usage data to the Ethereum BC. To achieve such a goal, the authors wrote three smart contracts to manage the three processes described above. The authors found some weakness during the testing phase regarding the latency due to the Ethereum transaction validation process and the lack of possibility to implement a light client on Ethereum. The latter leads to a significant problem: how and where does the BC have to be stored?
As previously mentioned, smart homes collect and analyze a lot of potentially useful data. Just thinking about the number of connected devices continuously generating data may reveal users’ behavior. This digital information is critical knowledge that could be maliciously used by hackers. Therefore, it is easy to understand that the level of risk associated with a possible privacy violation is proportional to the number of smart and connected appliances. Moreover, there is a situation where only the fact that multiple smart appliances are running, therefore sending data, could be translated into the user presence in the home. If some malicious person has access to this information, he could physically break into the house during the absence of its owner. Wu et al. in [
102] propose an out-of-band two-factor authentication scheme for IoT devices based on BC infrastructure. The proposed method uses Eris BC as the basis. The method utilizes the ability of secondary authentication factor to distinguish a home IoT device from an intruder even in the case when the access token is intercepted. The core idea of the out-of-band secondary authentication is to verify whether an access requester locates within the home or not. The secondary authentication is based on an out-of-band channel like the amount of ambient light in the home. The outside adversary has no control over the indoor lighting conditions. Hence, the verifier device will not get the right action code, and the adversary will fail the secondary authentication. The verification result will be recorded on the specific address on BC.
Dorri et al. [
67,
68] designed a multi-tier architecture to provide security and privacy to an IoT environment accordingly with the IoT requirements and overcoming the limits of the BC and those of the conventional security and privacy approaches as well. They applied BC, whilst removing the PoW, which is computationally intensive, and the coin concepts, but granting at the same time confidentially, availability, and integrity of the data. They used a system based on three layers: smart home, an overlay network, and cloud storage. The Smart Home is composed of devices and only one miner. The miner manages the BC and the access policies on the data. When a device is added to a smart home, the miner creates a block of that node and registers it to the BC. The block contains two headers, namely a block header and policy header. The first includes the link to the previous block in the BC; the second provides information about who can access that data. Each device can securely communicate with another through a shared key. The miner manages the distribution and creation of these keys (Diffie–Hellman algorithm). A device can choose to store data into local storage employing a shared key, or it could place data in cloud storage. To do that, a device has to send a request to the local miner that in turn will send a transaction to the public BC signed with the device’s key and addresses to the cloud storage. The presented architecture can meet five security requirements of a smart home:
(i) confidentiality: by means of the use of the symmetric key encryption;
(ii) integrity: using hashing algorithm;
(iii) availability: just reducing the allowed transactions;
(iv) user control: by the BC technology and finally
(v) authorization: exploiting shared key and authorization policies.
Nevertheless, BC is not used with the unique goal to make a vulnerable environment secure. In fact, using smart contracts, it is possible to find a novel solution to existing problems. For example, a novel implementation and incorporation of BC into IoT is represented by Slock.it [
13]. It represents an automatic authorization approach to access smart devices “
on demand and financially incentivized.” This solution, based on Ethereum framework, aims to give users the possibility to control smart and real-world physical goods (called Slocks) employing the BC. The main idea is to make it possible to rent the use of compliant smart devices (an intelligent object with embedded Slock.it technology) in a smart home environment to external individuals in a trustless and automatic way. This usage (shared or rented) is regulated through smart contracts that accept payments, for that usage, without any intermediaries. A smart device owner, aiming to share or rent it, has to create a smart contract setting the price for the rental. One who wants to access that object first needs to find the contract and then needs to send a transaction payment on Ethereum to use it. The payment will trigger the smart contract that thus allows the access to the object (unlock the object). The end user will have back in its Ethereum wallet the difference between the rental price and the deposit he sent to the smart contract.
Wilkinson et al. propose another similar idea [
87]. The project, called StorJ, exploits the BC technology and a p2p protocol to provide secure, private and encrypted cloud storage allowing users to rent the unused hard disk space of their computer. In the beginning, the system was based on the Bitcoin network. However, later it evolved, moving towards the Ethereum platform, exploiting a novel token called Storj Coin (SCJX). Users can rent their private free space storage (personal computer) belonging to other clients in the network and paying for that using SCJX.
4.3. Smart Property
The most famous BC system is Bitcoin [
19]. This system enabled functionality never previously available in computer science, and the digital currency is just a first application of that technology. The Bitcoin network empowers the ownership and the anonymous transfer of digital coins, Bitcoins. However, Bitcoin software architecture allows for associating to an address a small amount of data (meta-data) that can be used to describe an “asset” different from a Bitcoin and the instructions to transfer such an asset from an address to another. In other words, this meta-data defines a new kind of digital coin that can be thought of as a “token.” These digital tokens are defined as “colored coins” (cc) and are associated with a value that corresponds to an object or service in the real world. You could, for example, have a cc representing your house or your car. Consequently, if/when you want to sell your house/car to another individual, you should send the cc to the new owner. In this way, there would be no need for a physical deed because the proof of ownership is in the BC. This solution to digitally manage the ownership of real goods takes the name of “smart properties.”
The smart property is strictly linked to the smart contract. In fact, in the beginning, the smart contract had to manage the simple activation or deactivation of a software license according to some straightforward conditions. The software license was in fact managed by a digital key allowing the software to work if the customer had paid the license. What BC did, and is doing at the moment, is to allow having guarantees regarding trust, reliability, and security that in the past were necessarily delegated to a “third” party. This is what Herbert et al. tackled in [
73]. They presented a BC base system to achieve the software license validation by means of a peer-2-peer distributed network. The main goal of such a system is the improvement of the protection level provided by the standard software copyright. This work presents two interesting license validation models:
(i) Master Bitcoin Model and
(ii) Bespoke Model. Both of the models are a specific use of the smart property concept. The first one uses a couple of values address/Bitcoin as license ownership. The software is registered in the BC. The vendor charges this software account with a number of Bitcoins that when sent will represent the ownership of that software. The second one is based on the concept of the token. The token is a digital signature representing the entitlement to use specific software. The user that owns this token is allowed to use it. The authors underline the possibility to use this approach in IoT contexts. In this context, where the devices should be able to self-manage, mechanisms to auto-update and auto-validate software license are needed. However, these are static solutions that do not leverage smart contracts. The basic premise of a fully decentralized system is failing in this case. In fact, the authors talked about the possibility of adding further dynamic capabilities by means of smart contracts. A similar approach is followed by Ghuli et al. [
70,
90]. In the first, a method to decide ownership of IoT devices in a p2p manner is proposed. The described solution consists of transferring the ownership from one user (typically the device’s manufacturer) to another one (typically the end user) making a signed transaction (payment) to the manufacturer to obtain the ownership of the physical device (another transaction). These two transactions are added into the BC and verified by the other peers. After that, the manufacturer will send the physical good to the buyer. However, in the presented scenario, there is a central entity called a Certificate Issuing Authority (CIA) that issues a certificate (set of public key and private key) to any requesting entity and provides verification services of a digital signature using the signing authority’s public key.
Differently from the aforementioned two papers, Zhang et al. [
90] in their work allow an exchange of two kinds of goods: real objects and digital ones (data). Moreover, they added flexibility and automation capabilities by means of smart contracts. Specifically, the authors presented a novel Blockchain-based architecture able to manage the transactions in the IoT. In particular, the authors focus on two types of commodities:
(i) paid data (sensors’ acquisitions);
(ii) smart properties (car, house, etc). To accomplish such a goal, they consider a new kind of cc to represent physical goods. For example, to describe the object car, you can use car-coin. The system counts two types of transactions: data and properties. Regarding the data, a user can pay Bitcoins to buy IoTCoin and then use IoTCoin to obtain data or asset ownership. The IoTCoin is a special cc: crypto coins that are based on the BC and can represent virtual goods. Regarding the smart properties, there is an exchange between object-coins and other object-coins or with Bitcoins. To access the IoT data, there are two ways: Positive and Negative. In the positive approach, with a p2p connection between user and provider, the user obtains IoT coins and a key for assessing the API offered by the provider in order to get the data. In the negative approach, the user sends Bitcoins to the data provider and receives IoT coins and the encrypted data. Another interesting analyzed use case is the car’s ownership exchange. The car’s engine is locked, and it can be unlocked only by the private key of the owner. This because, at the end of the transaction, the car control unit will contain the public key of the owner with which the car-coin (IoTCoin) is associated.
Table 5 refers to the development level of the solutions presented in the paper. We categorize a particular solution in a given development level. Many of the surveyed solutions such as BPIIoT [
62], Cha et al. [
65], Dorri et al. [
67,
68], CertCoin [
69,
110], ChainAnchor [
71], Hashemi et al. [
72] and Sapphire [
89], are at a prototype level as they are open to users for evaluation and feedback, but are not yet at commercial level. Solutions like PriWatt [
60], IBM Adept [
64], Huh et al. [
74] and Sikorski et al. [
86] are at a theoretical level and do not present a Proof-of-Concept. Projects like IBM Hyperledger [
75,
76], IOTA (TANGLE) [
82,
83] and Storj [
87] are at pre-product level as the product is available, but active research is still pursued. Products like TransActive Grid [
10], Filament [
59], Enigma [
91,
111] and Moeco [
93] are more mature and thus are categorized as products.