Blockchains and the Internet of Things
Cryptocurrencies like Bitcoin represent much more than digital economic innovations. The true value of the underlying technology -- the blockchain -- has only just begun to be explored, and potential applications to the Internet of Things and Smart Systems are vast.
To understand why, let’s review the basics of how Bitcoin, and blockchains generally, work.
- Blockchain Basics
- Blockchains, Altchains, and Sidechains
- Applications for IoT and Smart Systems
If you haven't been living under a rock, you are probably aware of Bitcoin as a popular (and controversial) cryptocurrency -- a form of money that can be transferred securely and anonymously across a widely distributed peer-to-peer network. The Bitcoin blockchain is essentially a ledger of all legitimate transactions that have occurred on the network so far, which is maintained by the collaborative efforts of all the nodes in the network.
The process is automatic, based on consensus, and fully auditable. That creates a “trustless” system where nobody has to put their faith in anyone else, because the Bitcoin network itself is guaranteed to keep a fair and accurate record of which bitcoins belong to whom (solving what is known as the Byzantine Generals Problem).
The Bitcoin blockchain is built up over time, as new transactions are added to the ledger. Whenever two people exchange bitcoins, an encrypted record of the transaction is sent out to all other nodes in the Bitcoin network. The other nodes verify the transaction by performing complex cryptographic calculations on the data in the record, and notify one another each time a new “block” of transactions is confirmed as legitimate (every 10 minutes). When a majority of the nodes agree that a block passes muster, they all add it to the ledger and use the updated version as a cryptographic basis for encrypting and verifying future transactions.
That way, the blockchain can record an accurate history of Bitcoin exchanges and, because it’s constantly being extended and verified collectively, is basically impervious to fraud (outside of flaws in the underlying structure [see Satoshi's original whitepaper here], a 51% attack, or other weakness in the system).
Since Bitcoin was first created in 2009, many other cryptocurrencies or "altcoins" have sprung up using similar structures. Each has its own blockchain, often called “altchains” because they are largely based on forks of the Bitcoin software.
Developers quickly realized that blockchains weren’t restricted to monetary transactions -- they could be used to track and verify any kind of digital exchange. Perhaps the most prominent example is Namecoin, a distributed DNS namespace. The Namecoin blockchain is a record of who controls which name in the .bit namespace (e.g. mydomain.bit). Another example is Datacoin, which lets users store data in its blockchain.
The trouble with the proliferation of altchains is two-fold. One: The security and reliability of a blockchain network depends on its size -- the number of nodes involved -- and the Bitcoin blockchain has a big lead in terms of its computing power, which makes it difficult for fledgling cryptocurrencies to gain widespread adoption. Two: Forking development results in siloing of the assets and networks of altchains. That means each altchain duplicates a lot of the code and functionality of other blockchains without being directly integrated with them (which is due partly to the reluctance of Bitcoin’s developers to make big changes to the software now that there’s so much at stake in the network). It also means that assets -- like Bitcoins or Namecoins -- can’t be transferred directly between blockchains (there are third-party exchanges for that).
To solve both those problems, some developers have proposed a concept called the “sidechain.” Sidechains enable developers to create software that iterates on a “parent” blockchain, while allowing assets to be directly transferred between the parent and the sidechain, and from one sidechain to another.
That means the Bitcoin “parent” blockchain could spawn sidechains to handle the exchange of names, data, or other assets within the Bitcoin network without altering the core functionality of Bitcoin (see a list of potential applications here).
As blockchains and sidechains proliferate, there are several important implications for the Internet of Things and the development of Smart Systems. For one, blockchain technology could provide a way to track the unique history of individual devices, by recording a ledger of data exchanges between it and other devices, web services, and human users.
Blockchains could also enable smart devices to become independent agents, autonomously conducting a variety of transactions. Imagine a vending machine that can not only monitor and report its own stock, but can solicit bids from distributors and pay for the delivery of new items automatically -- based, of course, on the purchase history of its customers. Or a suite of smart home appliances that can bid with one another for priority so that the laundry machine, dishwasher and robo-vacuum all run at an appropriate time while minimizing the cost of electricity against current grid prices. Or a vehicle that can diagnose, schedule and pay for its own maintenance.
At a more abstract level, blockchain networks themselves also have the potential to become independent agents, what some have referred to as “Distributed Autonomous Corporations.” These would supplant systems like banking and arbitration, which have traditionally relied on trusted and centralized human authorities, with trustless and decentralized networks. Examples include electronic couriers to securely transfer sensitive information, escrow services to transfer ownership rights, or even auto-installation services to verify and push updates to the software governing other DACs.
"In the absence of a centralized server brokering messages, supporting file storage and transfers, and arbitrating roles and permissions, any decentralized IoT solution should support three foundational types of transactions:
• Trustless peer-to-peer messaging
• Secure distributed data sharing
• A robust and scalable form of device coordination."
Source: IBM Institute for Business Value (PDF)
Building a distributed future
Blockchains and cryptocurrencies are a fairly new invention, and current applications only scrape the surface of their possible uses. As various companies, projects and individuals begin thinking about ways to apply blockchains to the IoT and Smart Systems, we’ll collect information about those developments and other resources below.
- The Fifth Protocol - Bt Naval Ravikant (April 2014)
- Minimum Viable Block Chain - By Ilya Grigorik (May 2014) H/T @mjfreshyfresh
- Farstuff: The IoT Podcast - #9: Bitcoin & The IoT (June 2014)
- Bitcoin and the Three Laws of Robotics - by Stan Larimer (Sept 2014)
- Device democracy: Saving the future of the Internet of Things - IBM (Sept 2014)
- The Blockchain Application Stack - By Joel Monegro (Nov 2014)
- Blockchain AI: Consensus as the Mechanism to foster ‘Friendly’ AI (Nov 2014)
- Decentralized Money: Bitcoin 1.0, 2.0, and 3.0 - IEET By Melanie Swan (Nov 2014)
- A New Supply Chain Operating System? - Adrian Gonzalez (Jan 2015)
- Bitcoin hardware startup 21 wants to put “a miner in every device”—but should we? - Postscapes (May 2015)
- Bitcoin Series 24: The Mega-Master Blockchain List
- Bitcoin: Enabler for the IoT? - Bosch (June 2015)
- The Future of the Web Looks a Lot Like Bitcoin - IEEE (July 1st)
Object-oriented ontology (OOO)
"A manufacturer of cryptographic open source hardware and software."
"A free decentralized application that is downloaded to your personal computer, laptop or mobile phone. Each product, service and/or asset that is created by the decentralized application will have it’s own unique token that can be easily transferable person-to-person via the bitcoins blockchain."
"Drop-in wireless infrastructure that's flexible and secure."
"We've developed a chip for embedded bitcoin mining."
" A platform for decentralized applications"