John works as a graphic designer. He also runs a taxi organization in Mumbai. John doesn’t have an office and prefers working from his home in Delhi. The company’s management suggested Mumbai as the optimum city for him to run operations based on his preferences. He does not own any of the vehicles, they are rented through a third organization in which a number of people like John have pooled resources of value (time, money, reputation, computation). The hardware and software of the vehicles updates automatically, the vehicles decide when they need to go for servicing, tell each other about best routes for a greater return on investment. When Seema enters one of John’s taxis and asks it to take her home, the taxi recognizes her through a third party service that verifies identities called ‘VerifyB’. ‘VerifyB’ automatically identifies important credentials about her, like blood group, insurance, wallet balance and sends only relevant information to John’s taxi service.
As soon as the ride begins, software on the taxi begins deducting pico-payments from Seema’s bank wallet which contains US dollars. Thankfully, John’s taxi service accepts USD and even if it didn’t, the system can convert any currency into one that John prefers. The software on the taxi service runs a dynamic insurance pricing algorithm for the taxi as well as Seema. The model charges a higher insurance rate in accident prone areas. If John’s fleet has decided to go by the route that is safer to drive on, but slightly longer; the algorithm adjusts the price of the fare and insurance accordingly.
All transactions in Seema’s ride happened automatically. She never had to interact with a hand held device. She entered into a taxi of her choice and specified her intent. Only relevant information about Seema was provided to John’s fleet. John could never know her name, age, where she lives, her friends, relationships, etc. The identification software does not allow this information to be shared and asks for consent from Seema when an odd request such as her name or phone number arises, Seema declines it and flags John’s fleet’s reputation. This does not affect her journey. Both John and Seema did not have to know or interact with each other.
John’s taxi service is not a normal organization. The company consists of John who is an investor and a software program that manages everything. There is no human management. There are no drivers, the fleet comprises of self-driving cars. John does not have a lot of liquid money, but he contributes in terms computing resources.
Back home, John runs another venture that sells excess energy from the solar panels on his roof to a micro-grid, he rents out his excess wifi bandwidth. When not at home, he rents out his empty apartment through a software program that manages home rental and pays him per second for occupancy and usage in a currency of his choice. Smart locks, motion sensors, thermostats and host of ‘smart’ devices manage services such as identity verification, time spent in the house, usage of water, electricity, usage of the swimming pool, etc. Things collaborate with each other seamlessly. All transactions of currency and otherwise are recorded and encrypted in a distributed ledger. John does not have to rely on a third party to ensure trust. Trust is intrinsic. Trust is encoded in the system.
Bitcoin, Ethereum or started to appear in regular parlance due to their impressive returns. It made some people really really wealthy. That in my opinion is not what is interesting about these currencies. What’s interesting is the potential of the technology underlying these currencies. If you view the world in terms of money and you are thinking in terms of Billions of dollars, you might be wrong. Think trillions!
Welcome to the world of Blockchains!
Blockchain is a globally distributed ledger which depends on the resources of a peer-to-peer network. Simply put, think of the Blockchain as a really long spreadsheet. You have a copy of the spreadsheet and your friend Martha has another copy. The document consists of four columns: fruit name, amount of fruit added, who added the fruit and the date when the fruit was added. You add an entry to the spreadsheet, “2 Apples”. For both your spreadsheets to be identical, Martha needs to add the same entry “2 Apples”. Now Martha’s friend Seema wants to join your little spreadsheet group, so Martha gives a copy of the spreadsheet to Seema. When Seema adds an entry “9 Oranges”, both you and Martha need to make changes to your respective copies for them to be identical. The rule is that no one can delete or modify a previous entry, members can only add entries.
It’s been a few days, your little spreadsheet group now has 20 members. Martha, who was one of the founders of the spreadsheet group hasn’t made any contributions to the document. She starts getting jealous of Seema, who has become somewhat of a rockstar. In the spite of anger, she decides to make slight modifications to the spreadsheet. She replaces Seema’s name with her’s at a few places in the spreadsheet. She even convinces 5 other members to do the same in exchange of favors.
When it is time for everyone to update their spreadsheets, John notices a discrepancy in some spreadsheets belonging to Martha and a few other members. They call for a Fruit spreadsheet intervention where all spreadsheet copies are laid out and checked for inconsistencies. 14 of the 20 spreadsheets are found to be identical copies, 6 copies belonging to Martha and her gang are found to be fudged. A consensus is reached based on a vote of members. Martha and her gang are forced to delete their copies and replace them with the 14 identical copies. The document’s sanctity remains intact. Balance is restored.
Handling 20 members was still manageable for the team, however it quickly starts getting messy and complicated to maintain copies on our group even beyond 50 members. Now imagine a million members in our Fruit spreadsheet group, it is a nightmare.
Seema suggests they start using a computer program to maintain copies. This simple program checks and updates all copies of all the members whenever an entry is made to the spreadsheet. It also checks for any discrepancies in the previous entries by tallying all copies on this network. Seema’s idea although clever, has one major flaw. Checking and updating a million spreadsheets is computationally intensive and soon a few members’ computers start crashing.
John suggests another idea; rather than checking the entire spreadsheet, why not check for a single mathematically unique value (we will call this the Hash value) in each document. The value is derived by a formula from the spreadsheet’s columns. Let’s say we assign a unique numerical ID to each member and fruit respectively. We add the IDs of the member and the fruit in each column entry along with the date and amounts fruit which we store as the Hash value for the first entry in the spreadsheet. For subsequent entries, we use the same formula and add the hash value of the previous entry. This starts forming a chain of hash values that reference the entire spreadsheet. The advantage of this is that the computer program will only have to check for the hash value of the last entry in the spreadsheet chain rather than the entire spreadsheet. If any member tries to tamper with the spreadsheet’s previous entries, he will have to make changes for all entries in the spreadsheet chain that too for all spreadsheet copies, which is practically not very feasible.
However, the spreadsheet chain too has a flaw in design. For a large spreadsheet on the network, performing realtime updates to all members’ documents is also computationally intensive since transactions and updating of chains can take place in milliseconds. How does the system handle two entries at the same time? What if an entry to the chain takes place while the chain is being updated?
Martha suggests that rather than performing transactions realtime, we handle all the transactions within a span on 10 minutes. This chunk of transaction can then be added to our spreadsheet chain as a block. John, Seema and Martha have just created a Blockchain.
Trust is intrinsic; integrity is encoded and distributed.
For the sake of simplicity, I’ve deliberately left out a number of features like encryption, cryptography, consensus protocols, etc. in the above example. We will cover those going forward.
A new world order… erm… maybe… maybe not
The first blockchain was conceptualized by an anonymous person or group known as Satoshi Nakamoto in 2008. It was implemented in 2009 as a core component of Bitcoin. Like our Fruit spreadsheet example, the words block and chain were used separately in Satoshi Nakamoto’s original paper, but were eventually popularized as a single word, blockchain.
Bitcoin or any other digital currency isn’t a file saved somewhere. It is a representation of the transactions taking place on the Bitcoin’s Blockchain, where each transaction is verified and approved by a large peer-to-peer network. Apart from digital currency, blockchains can be programmed to record anything of value and importance to humans securely like land records, birth certificates, identities, medical records, etc.
A lot has been talked about the opportunities and possibilities of this technology in the domain of finance, viz. micro-payments, currency conversions, remittances, insurance, Blockchain IPOs, Altcoins etc. I will stray away from these topics as much as possible. Partly because enough has been written by experts in economics and partly because the immediate transformation felt by people will most likely not be in this domain. I truly believe that for the technology to be adopted, it’ll have to ease in into the world of finance, much like the internet did, rather than be this gift from a mysterious person here to change the face of finance. Again, I’ll be the happiest if proven wrong.
Although revolutionary, it would benefit us more if we stop thinking of the Blockchain as this revolutionary technology (which it is) and start thinking of it as a tool that secures and embeds trust in systems. “Any design that incorporates lightness and thinness conveys the impression of being smaller, lesser, and humbler. Pity gives way to respect when much more value is delivered than originally expected” says John Maeda in his book The Laws of Simplicity. We can be more forgiving if the technology which is yet to mature misbehaves, if we stop thinking of it as the David set out to defeat all the evils that exist in world. If we just stop thinking of it as a doorway to a new world order.
The Blockchain needs to be thought of as a tool to be used to secure trust in systems rather than a solution to all of the world’s problems. Although the idea is revolutionary, it’s value is in the execution. The killer app for blockchain will probably not come from a large company. It’ll come from the fringes, maybe a few kids in a garage somewhere tinkering with it. We need to start at a small scale. Simple applications. Maybe a small house or maybe a room in the house.
Hey! They are calling Blockchain the new internet. What does that even mean?
The internet ushered in a new era of entrepreneurs and industries. Although some feel, it failed to fulfill it’s promise of being democratic, of providing equal opportunity to all stakeholders. Much like the era before, the internet has turned into a monopoly with a handful of companies controlling majority of the traffic and thereby majority of the wealth. All this at the expense of privacy of the people these companies generate wealth from. Jaron Lanier argues in his book “Who owns the future” that the middle class is increasingly disenfranchised from online economies. By convincing users to give away valuable information about themselves in exchange for free services, firms can accrue large amounts of data at virtually no cost. Many feel that Blockchain might become a way for these firms to start being accountable. It’s a long shot, but one that we need to get right.
The internet was not meant for distribution of value, it was meant for sharing of information. It made copying of data easier, it failed in enabling transfer of value… Money, is not like a selfie, a tweet or any other information good. You can send the same selfie to all your friends, but not the same dollar. The money you send needs to leave your bank account. The same dollar cannot be used for two transactions. This is called the double spend problem. For people to be able to do business on the internet, there was a need for intermediaries which people could trust. Banks and number of tech companies jumped at this opportunity. They solved the double spend problem by clearing every transaction through central databases of one or many third parties. Each third party took a cut of the transaction in fees. The settlement in many cases can take days. The blockchain promises to reduce transaction costs and settlement times drastically without the need of a central authority.
Satoshi designed the system to work on top of the internet, but it can run without it if necessary. Dictatorial governments could shut down the internet and the blockchain could still function as a mechanism for transaction. You could perform transactions over shortwave radio, morse code or even a series of emoticons in text messages. Unlike the internet, the blockchain is a much more inclusive system.
In the fruit spreadsheet example earlier, we missed two major components of the blockchain, when people reach a consensus, who does the work? How do we even leverage this chain of transactions to build things other than just currency?
Consensus is achieved by tallying the hash values of all copies of the chain. This requires the people in the network to spend a lot of computing power to maintain the blockchain. The fruit spreadsheet group is not a multi-national corporation. How then do we reward people for contributing resources for maintaining the network?
Satoshi leveraged the existing peer-to-peer networks with clever cryptography to create a consensus mechanism that could solve the double-spend problem as well as, if not better than a trusted third party. To achieve this, the bitcoin network uses a Proof of work (PoW) mechanism. Miners or participants on the network who run bitcoin nodes gather up recent transactions as a block of data where each block must refer to the previous block. This process repeats every 10 minutes. The problem is that there are multiple miners trying to solve for the same block. To select a miner who will be assigned to solve a block of transactions, we create a mathematical puzzle that is hard to solve, i.e. it takes a lot of work. The puzzle often is to find a really long number (hash value) where the computer tries to guess each number. Whoever solves the puzzle first gets to mine the block. In exchange for mining the block, the miner receives bitcoin as a reward. After every successful transaction, the puzzle starts increasing in complexity i.e. miners need to look for an even larger hash value. The complexity of the puzzle also depends on the number of miners in the network. Finding the hash statistically takes about 10 minutes. The first version of the Ethereum blockchain also used proof of work. There are however other consensus mechanisms.
Proof of stake is a mechanism that requires miners to spend a native currency to perform a transaction i.e. users need to have a stake in the transaction being carried out. For the Ethereum blockchain, the native coin is ether. To achieve consensus, the network participants spend a tiny amount of ether to exercise their vote.
Proof of activity combines proof of work and proof of stake. A random number of miners have to perform work (solve the puzzle) and sign off on a block using a crytpokey (currency) to make a block official.
Proof of capacity requires miners to allocate a sizable volume of their hard drive to mining while proof of storage requires miners to allocate and share disk space in a distributed cloud.
There exist other mechanisms like the one used by Ripple (XRP) which rely on social networks for consensus. The value of a member in a social network is determined the number of unique members/nodes it connects to. This type of a mechanism is biased where newcomers need social intelligence and reputation to participate. Only authorized member groups reach consensus. This model allows for corporate style structures to exist with accountability on the blockchain.
Satoshi chose owners of computing power as an economic set. Ethereum chose owners of ether while Ripple chose owners of social capital as the economic set.
These are computer programs that secure, enforce and execute the settlement of a contract between organizations, people and things. The term Smart contract was coined in 1994 by Nick Szabo, back when it was an idea nowhere to go. Blockchain changed all that. It enabled people to write programs that were enforceable. Transactions can be executed on a decentralized technological platform with a built in settlement system. What it means is that when you purchase a stock or a mutual fund, it shows up instantaneously without having to wait on intermediaries. That’s kinda cool.
The blockchain enables you to enforce complex smart contracts which require multiple people to approve a transaction by enabling a multiple signature protocol. It is also known as multi-sig. Think of it as a lock which requires multiple keys to open. Each member has a key or signature. Multi-sig could be used in cases of arbitration or a remote shareholder meeting to decide a company’s strategy. A set of smart contracts can be bundled together perform complex transactions called distributed apps a.k.a dApps.
Distributed applications (dApps)
A distributed application (dApp) is a set of smart contracts that stores data and enforces multiple smart contracts on a blockchain. These dApps can start interoperating with each other to perform specific functions on the network. For example, a universal verification dApp can be used by anyone to request and verify the identity of a person. In this case the verification dApp can decide how much information about the identity is needed for the transaction to be performed. In the case of John’s taxi service, Seema only needs to provide her wallet information to John’s taxi, which the verification dApp provides. If John requests for any other information, the dApp flags this request and asks Seema if she wants provide the same.
Simple smart contracts require people to sign off on the transactions, however for simple repetitive actions like getting milk delivered every morning and making realtime payments, people might choose to automate the task to a program. We call these autonomous agents. Some autonomous agents could be intelligent, that they could adapt to the state of the system and act accordingly. For example, the system knows that you are on vacation and thereby stops the milk subscription temporarily. At the other end, a collection of dApps can enable companies to craft clever, self reinforcing agreements. A simple request for a new device shouldn’t go through multiple approval emails, a smart contract could streamline the process. Another case would be when building a product, goods can be micro scheduled to arrive at the factory floor directly from the supplier. No need of a warehouse.
Now imagine an entire company running on the blockchain network without any human intervention. This is the holy grail of what blockchain could accomplish and we call it the Distributed Autonomous Enterprise (DAE). The blockchain makes the stuff of sci-fi movies truly possible, freeing humans to do other (hopefully better) things with their time.
Enabling things to collaborate
The technology of blockchain is not ready for primetime. It is susceptible to capacity problems, system failure, unanticipated bugs, and perhaps most damaging, the huge disappointment of technically unsophisticated users. Much like the internet in it’s nascent days, there needs to be a lot of experimentation, trial and error, before blockchain can be used by people in their day to day lives. Of course there exist mature applications like digital currency, but then again blockchain needs to go beyond just currency transactions.
The burgeoning field of the Internet of Things (IOT) seems like a ripe candidate. The technology of blockchain has the potential to solve a number of problems around intelligence, automation, privacy, transfer of value and many more that have been on the minds of designers and engineers. Few of the early consumer IOT devices have delivered practical value; unless you want your thermostat to ask your light bulb to ask your speaker to send a message to you on your smartphone that it’s too hot in the house.
Your Amazon Echo should easily be able to talk to your Google Home, Cortana or any other AI assistant or internet connected device.
To realize the full value of IOT, networks need to interoperate. Your Amazon Echo should easily be able to talk to your Google Home, Cortana or any other AI assistant or internet connected device. The challenge is that all these devices and companies that design them work with centralized databases. You need different API protocols to operate with data from each of these providers. Often they don’t play well with each other.
The Internet of Things working on top of a blockchain infrastructure presents the opportunity to create common standard APIs for common contracts that the entire network can use; including governments, large players like Google and Amazon to small startups. An example of this would be an identity management API: you don’t need to create profiles on different platforms. When you create a verified profile on one of the platforms, any application can use it to provide services. The individual can decide the amount of information that needs to be shared and easily revoke access to their personal data. If any company tries to replicate this data on their central server, the blockchain would have an entry for this transaction. If users wants a particular company to delete their data, the blockchain would enforce the individual’s right to be forgotten.
On the Internet of Things, every object needs to be registered and have an identity. Devices need to coordinate transfer of value in the form of money, electricity, computation, reputation, etc. They need to create networks of trusted devices and these networks need to interoperate with the outside world. The internet of things depends on a ledger of things. The firmware of these internet connected devices can have metadata attached so that other devices on the network can quickly authenticate, recognise and collaborate with these devices without the need of setting up. This information can be used to assign roles and behavioural characteristics to these devices in the form of smart contracts. Although a rudimentary IOT infrastructure is being developed by a number of companies in silos, it would be better for users, incumbents and new players to share the network, much like the internet. All your devices including your PC and phone need to operate on the same network.
Privacy — the elephant in the room.
What happens when all the devices around you start collecting information about your actions. Collecting, sharing and analyzing infinite amounts of data that can dog an individual forever. They’ll use this information to sell you things and provide you with personalized services. Is that the cost of your personal information? Is a relevant search result the true value of your privacy? These are important questions that need to be answered before companies start bombarding you with smart devices in exchange for your private data with no or very little repercussion. Smart home devices and services should pay you for accessing your private information. The value of the data should be according to how personal the information is. For example, your name and age are not too valuable, but your health records are.
It is important for these devices to make privacy the default setting.
This ledger of things apart from securing privacy and trust can play a significant role in streamlining the interaction between devices and the surrounding world. It is important for these devices to make privacy the default setting. Brands will earn trust by respecting privacy, keeping users at the centre of their design and ensuring end-to-end encryption. Blockchain networks can easily be designed to ensure privacy.
1. Intelligent systems
A blockchain network of IOT devices can be the foundation for intelligent automation systems for homes or other private and public spaces. If a connected device does not perform well, is consuming too much data or electricity than defined by it’s smart contract; then the network can reset, restart or altogether reject the object. Devices can have firmware that has metadata embedded for other devices to authenticate, recognise and delegate tasks. The firmware will include smart contracts defined by the manufacturer or in some cases, the user. These smart contracts can trigger events like updating the device software, scheduling repair and maintenance, sending notifications to local authorities in cases of danger, etc.
Blockchain can enable intelligent infrastructure. For example, a mesh network water supply pipes and smart meters. The smart meters can communicate with each other and notify of a leakage or excessive pressure. Since the network is built with blockchain, it can work on top of the internet or can be standalone. If one of the smart meters malfunctions or loses connection to the internet, the neighbouring smart meters can pick up the data and transfer it if any one of the nodes is connected to the internet. The network can trigger smart contracts to upgrade, repair or replace a smart meter. The system is self-maintaining and self-serving.
2. Exchanging units of value
Internet of Things deployed on a blockchain network can ensure a secure and reliable exchange of units of value like money, electricity, time, personal data, computing power, etc. Users can securely rent excess capacity like wifi bandwidth, electricity generated by solar panels, expensive equipment and other resources that were previously impossible. This enables a true shared economy unlike that of Uber and AirBnb where the parent company becomes a data warehouse and can utilise your personal information for other motives apart from providing relevant services. Even if they do, on the blockchain network, the individual would be able to see where and how her data was used.
Users can even monetise their personal data. A company like Fitbit may want to know what you ate for breakfast, your activity or that you are contemplating on joining a yoga class. In return, Fitbit can pay you in Fitbit coins, coupons or currency.
Peer-to-peer distributed models
Blockchain networks also enable secure and reliable peer-to-peer models of production and distribution. For example, people can start selling excess electricity that their solar roofs generate on a micro-grid network. These nodes can create their own self-servicing electricity infrastructure on top of a mesh network. These networks can interact with the local or national electric grid where they can buy or sell electricity between communities. Smart contracts can be configured to negotiate for the best rates of electricity. Solar credits can be given to users that produce energy from the sun. The electricity generated from solar can be priced lower or exchanged for solar credits. Devices that consume less energy can be awarded additional credits which can be redeemed for buying upgrades or in the form of currency. These smart devices would work seamlessly with any public utility.
A blockchain network can be created where every piece of public infrastructure is tagged. Smart public devices along with tagged public infrastructure like benches, smart poles, traffic signals can form an Internet of Public Things. This Internet of Public Things can be a self-maintaining, self-servicing system deployed on a distributed ledger that every citizen can access. Citizens can track location, safety, maintenance details of public utilities. Fraud and corruption would either be extremely difficult or impossible. A government that deploys such a system would have an increased acceptance rating.
Companies can tag every piece of equipment that communicates ownership, warranties and other important information. Systems can also be deployed as private blockchains by companies to track inventory, manage insurance, self-maintenance and self-servicing of equipment. Smart contracts can trigger auto-renewal of leases, manage payments, purchase of upgrades, automate delivery and repair, etc.
Blockchain can increase accountability and reduce or eliminate corruption in both public and private institutions.