What happens when you put smart washing machines on a blockchain?
In writing this article, Dr Joshua Ellul and Prof. Gordon Pace explain their investigation into how to combine the interconnectedness of all things promised by the Internet of Things with the trust promised by blockchain technologies.
It’s a quarter to midnight. You’re finishing your dinner party. It was a terrific evening, but a headache has started to niggle. Due to your intolerance you specifically bought wine with no added sulphites. Or so you thought. Suspecting that something might be amiss, you scan the bottle with your phone. Up pops a detailed list of certificates, showing that all the production processes ensured that sulphites weren’t added and that all the necessary spot checks were made. Maybe you just had one too many, you think.
Heading to bed, you walk over to your dispenser and down a couple of glasses of water. As the last water bottle gurgles empty, the dispenser automatically places an order for a few new ones and pays for them straight away to benefit from the 10% discount you get with advance payment. As your eyes start to feel heavy, you quickly set your automated home system to let the delivery man in, after verification from your security camera, to drop off the water bottles. You have a long day at work tomorrow, and there’s no way you’re going to be back before 19:00.
Such a future seems distant, but it could actually be implemented tomorrow. Technically, that entire scenario could have been our reality a decade ago. But there is one problem we’re still having trouble with—trust.
All of these services require trust. Trust that the farmers and their field sensors are inputting correct data. That the actual grapes and all production processes are tracked from the farm to table. That the water delivery company will indeed deliver the order. In the past, obtaining such trust in automated systems required involving a number of entities: the farming co-op, the post office, the water supply company, the bank and the government. But is such centralised trust required? No.
Taking Internet-connected computational devices that can sense and act on their environment, known as the Internet of Things (IoT), and using blockchain (a decentralised digital ledger technology, DLT) will enable a way forward to decentralise these services in a trustless manner.
The Blockchain of Things
The Internet has become an integral part of life for many, providing instant communication, news, updates from social circles, and a multitude of services from wherever you may be.
The IoT takes the Internet to the next level, whereby not only are services made digitally available, but interaction with the real world is digitally integrated as well. This capability is made possible by embedding Internet-connected computational devices into existing products or spaces, which in turn enables more efficient processes. Vineyard employees no longer need to manually check temperature, humidity, moisture, or other environmental factors, since they can automatically be sensed by smart IoT systems which can deliver the optimal amount of water at the right times. Similarly, a smart home system could detect a water delivery employee and automatically give the employee access to drop off the delivery.
If the IoT can enable such automation, then why is blockchain technology needed? It all boils down to trust. If consumers trust the wine producer to follow processes which ensure that no sulphites were added, then there is no need for a blockchain solution here. Similarly, if consumers are fine with paying upfront for the delivery of water and trust the water delivery company to deliver, then a blockchain solution is not required.
|What does Blockchain mean to you?|
|Blockchain is all about trust, or rather the ability to remove trust from a centralised authority by making use of a decentralised system with inbuilt trust. Consider how you typically send money to a friend using a bank account. You store money in an account. The banks keeps track of your funds. For any transactions you make, the bank will alter your balance accordingly. Upon sending money to a friend, you trust that the bank will perform the transfer of funds and update your account balance correctly. The entire process requires trust. And it’s not that trust in banks or other institutions need necessarily be questioned—but for services in which centralised trust is not acceptable, blockchain technologies provide a solution.|
The recent blockchain and DLT hype, however, seems to indicate that consumers and users are organically expecting more transparency and decentralisation of trust in systems which they use. It is hard to argue against a system which imposes more transparency, with in-built guarantees, rather than requiring trust in institutions.
We envisage that consumers in the future will prefer products and services with built-in trust mechanisms. By integrating blockchain with the IoT—let’s call it the Blockchain of Things—more assurances of real-world physical processes can be provided. For example, ensuring that vineyard environmental sensor data were not tampered with, and that payment is only released to the water supplier upon delivery.
To realise the Blockchain of Things, we need to overcome a number of challenges. Many devices used within the IoT have around 10 kilobytes of memory and 100 kilobytes of storage space. That’s around 400,000 times less memory and 100,000 times less storage space than the mobile phones which most of us carry around in our pockets. On the other hand, most blockchain systems require substantially more storage space than is available on mobiles, let alone resource-constrained IoT devices. Also, typical blockchain software requires around 500 megabytes of memory (50,000 times more than is available on such devices) and more than 600 gigabytes of program space!
Recent work at the University of Malta attempts to overcome this challenge using a split virtual machine. This separates parts of the code that are more ‘resource hungry’ and sends them to the network’s more powerful machines. This leaves the less resource hungry parts to be run on the resource constrained IoT devices.
Another challenge is that of connectivity. IoT devices tend to connect to the Internet and surrounding devices in an ad hoc manner—only when requiring service. Blockchain systems need devices to be connected constantly, able to receive all new transactions pertaining to the blockchain network. Solutions to overcome this have been proposed that provide lighter-weight communication requiring less ‘always-on’ connectivity and faster transactions (such communication protocols include IOTA’s tangle and Bitcoin’s Lightning Network).
Can the IoT be trusted?
The final problem faced is that of trust. On a blockchain system, the network itself ensures that transactions are performed in a well-regulated fashion. For instance, when one uses a cryptocurrency such as Bitcoin, the network itself ensures that a user does not overspend money, without having to resort to trusted entities such as banks or government authorities. Similarly, a blockchain system may use smart contracts to regulate an auction. The network, according to the rules set out in the smart contract, would ensure that no one can outbid someone with a lower bid, and that once the auction is closed, no more bids will be accepted. These guarantees, without the need to trust any individual entity, are the reason why everyone is so excited about blockchain and related DLTs. As long as the transactions remain on the blockchain, these technologies ensure well-founded trust.
In real life, trust is built over a network of people, news reports, and so on—some of which we trust more than others.
But what happens when the bits leak from the blockchain to affect the real world? Consider extending the blockchain-based auction to also cover item delivery. How can the network ensure that the seller is not lying if they say they have sent the item? Should it believe the buyer if he claims that he has not received the item? What if fulfillment of the transaction involves other parties—the courier service, the delivery person, the porter at the building where the buyer lives? Whose information should be trusted?
In real life, trust is built over a network of people, news reports, and so on—some of which we trust more than others. A treatment recommendation from a doctor may be trusted more than the same recommendation from a friend. We decide what to trust based on who provides us the information and where we think they obtained that information from.
We are working on a solution to build trust over the Blockchain of Things by mimicking these networks of trust. I may trust a thermometer installed in my building, but not the device installed by the landlord on the washing machine to keep track of how many times it has been used. Using a network of trust, devices in the Blockchain of Things may take action based on information gathered, together with trust measures based on the origin of the information and the carriers in between.
In the end, we may never be sure whether the package was really lost in transit. But if the seller, who has a good reputation, claims to have posted the item, and the post-office claims to have passed it to the courier in my country, but the courier claims never to have received it, then a ‘lost-in-transit’ judgement is more likely than a ‘never-sent’ one.
By building trust into the Blockchain of Things, we can have our real-world transactions taking place on the blockchain. Although not every action may be 100% guaranteed, the network may compute the level of trust it has in each piece of data. In this manner, your air conditioner may decide whether or not to trust information coming in from your washing machine, freezer, and toaster to decide the temperature to set your home. Why stop there? You could allow artificially intelligent robots to make decisions on who should be allowed in or evicted from your home—or perhaps our story’s protagonist should have avoided that last glass of wine.
Authors: Dr Joshua Ellul and Prof. Gordon Pace