The Internet of Things (IoT) represents one of the most significant disruptive technologies of this century. It is a natural evolution of the Internet to embedded and cyberphysical systems, “things” that, while not obviously computers themselves, nevertheless have computers inside them. With a network of cheap sensors and interconnected things, information collection on our world and environment can be achieved at a much higher granularity. There is minimal human intervention for the operation of devices. Every device is connected to every other device, communication with one another, IoT devices are also exposed to physical tampering, war driving, malicious software and side- channel attacks .
I read this paper. The main question is "what parameters should be used for creation a model of blockchain"? or which parameter changing will show that using blockchain improve our network without one?
I read many papers about "using blockchain in IoT and WSN" but I haven't find any real proposition how it is possible to implement in real devices. Only ideas about how it can work "may be". Now I try to find criteria which can help me show that using blockchain we will receive some benefits (in numbers or %).
There are different factors to consider when leveraging or implementing a blockchain IoT solution. This includes considerations of use case/fit. Below I state some lessons learned from our applied research and some thoughts/considerations, with the following premise:
(1) A blockchain is a immutable distributed ledger (DLT) that is cryptographically secured
(2) A blockchain allows for the automated execution of code, that leverages the state of the blockchain
(3) Data integrity is maintained by a network effort (NOTE: I did not mention Proof-of-X, i.e Proof-of-Work or Proof-of-Stake)
Lastly, I would note that the use of a blockchain makes the most sense when transacting in networks where members have a certain degree of disjoint incentives and thus leveraging a single source of truth improves the efficiency of internal processes.
Throughout this answer I provide references which you may further explore.
SECTION 1: FIRST/SECOND GENERATION DLTs AND IoT DEVICES
Technically speaking the problems really vary depending on whether you plan to use a "first/second-generation" blockchain, whether it's permissioned or permissionless, and whether your devices can properly integrate with the technology.
Non-technically, and more related to business side, - it also, depends on the level of TRUST within the network that your devices will transact in.
What I call "first generation" blockchains, are chains that natively require the use of currency for transactions. In Bitcoin you pay fees through the native currency, in Ethereum it's the notion of gas which relates to Ether.
So the question is, how can devices with: low-computational power, limited bandwidth or memory, transact in the network?
This is quite important because due to these constraints, it would be quite infeasible or impractical to use an IoT device as a miner in the network. The device would be at a technical disadvantage, even if it joins a mining pool [3], and it would not be guaranteed the continuous generation of the currency which is REQUIRED to transact.
So if you want to, for example, leverage the Ethereum public blockchain for the use case of a smart-home - recording the state of your devices, assigning identities and validating access to devices - Then you can perhaps define an architecture, for example where each device directly communicates with the blockchain or where the home acts as a central point of communication between the all the devices and the blockchain. Of course, this defeats the purpose of decentralization because now there's a central point of failure.
NOTE: that these issues arise ONLY when you need to record a transaction in the blockchain. A mobile device, for example, can use an RPC call to connect to the Ethereum network or run a lighweight node [4].
NOTE: that Ethereum in the near future implement Proof-of-Stake
Other questions follow depending on the use case, what if you want collect IoT/sensor data and then automatically share that information
with other devices/entities? In this scenario, you can leverage the blockchain and smart contracts to define a type of identify/management service.
The data itself, would not be stored in the blockchain but would rather be recorded on an external data repository.
So then, the question is: How can other devices or parties be guaranteed the integrity or provenance of data?
In the public blockchain, these are tasks left to Oracle-like- services, etc [5].
Either way, the use of currency is required to transact -there needs to a cryptoeconomic incentive to allow trustless transactions.
SECTION 1: PERMISSIONED LEDGERS
But, if the use case is related to a type of business network where we do not need anonynimity or pseudoanonymity when transacting, then we can do away with Proof-of-Work and financial incentives. This is essentially the premise for using a permissioned blockchain, such as hyperledger Fabric or Corda [1,6]
So in use cases, for supply chain where IoT devices are leveraged you would then only interact with a service that connects to a blockchain (an immutable distributed ledger). But, then this means that when leveraging such permissioned ledger the device/user is essentially still paying
for "TRUST". The user/device is paying for trust by paying the service provider that provides access to that blockchain, rather than paying a miner.
Nonetheless, this is more practical and easier to integrate since you are only dealing with a "centralized" service provider such as IBM's blockchain-as-service. Such service providers, provide a great deal of tools and support that simplify the use of permissioned blockchains.
Overall, this feels like it goes against the spirit of blockchains, decentralization, but it does make it easier integrate or leverage blockchain technology. Doesn't it?
SECTION 3: THIRD GENERATION BLOCKCHAINS
Third generation blockchains such as IOTA [7] focus rather on leveraging the functional/business incentives of using a blockchain.
Meaning, businesses or devices will contribute to maintaining the integrity of transaction because doing so is valuable to their business - without needing a financial incentive. This is in essence, true decentralization contrary to the spirit of permissioned ledgers.
IOTA is branded as the lightweight distributed ledger with scalability and quantum resistance for all things Internet of Things.
You may refer to their blog for more details on actual implementation [8]
SUMMARY OF SELECTED CONSIDERATIONS
(1) Decentralization & Trust
(2) Identity Management Framework for Devices
(3) Interoperability & Compatability
(4) Practical/Implementation/Economic Considerations (i.e. more tooling required)
We are currently writing a paper where we explore the use of different blockchains (i.e. Ethereum, Hyperledger) for an IoT supply chain use case.
The paper highlights, the notion of trust, and the price we pay for TRUST/DISTRUST within business networks, interoperability, maturity of tools, etc.
We further discuss frameworks for transforming natural language agreements/contracts into smart contract.
Please feel free to reach out if I can be of assistance or to answer any questions.