Blockchain technology is being touted by enthusiasts across several industries as a solution for all matter of inefficiencies. Despite its benefits and successful implementations to date, there are several factors and drawbacks that have to be considered before deciding if applying blockchain technology to a particular use case is worthwhile. This article focuses on one specific hurdle: the oracle problem.
What is blockchain?
At its core, blockchain is just a way of storing data in a sequential and decentralized manner. Blocks of data of a given size are created in chronological order. When a block reaches its size limit a new block is created, with each new block being connected to the previous one. This chain of blocks is distributed across all network participants – or nodes – which hold a copy of the blockchain up to date. In order for a new block to be created, its data must be in accordance with the previous block (and, thus, with all previous blocks) – which is verified by the nodes. This verification usually requires the consensus of the majority of the nodes. This architecture gives blockchain two characteristics that make it a very secure way of storing data:
1) Immutability – previous blocks and the information they contain cannot be changed.
2) Decentralization – since the data is distributed across several nodes a single point of failure susceptible to tampering is non-existent.
3) Trustlessness – the previous characteristics make it so that blockchain users never have to rely on a trusted third party when interacting with the network. This characteristic is further demonstrated in smart contracts, just as explained below.
Besides the advantages in simple data storage, blockchain technology enables the use of smart contracts, that can be used in many industries, which lead to overall efficiency gains by removing middlemen from transactions.
What are smart contracts?
Smart contracts are a piece of self-executing code embedded in the blockchain. Their main advantage is that they are trustless – agents do not have to rely on a trusted third party in order to deal with each other – if an agreed-upon input is detected, a predetermined output will occur. The most common example of a smart contract is one that allows a participant to exchange one cryptocurrency for another: if a given number of currency x is provided, the smart contract returns a certain number (according to a predetermined ratio) of currency y. After a smart contract is deployed it is not possible for its terms to be altered nor can one party withhold their performance after the other already performed theirs.
Due to the factors above, it is no surprise that several industries and even governments are being very optimistic about the wide scale deployment of blockchain technology. With the benefits of blockchain as a database being apparent on their own, the possibility of implementing smart contracts drives this appeal even further.
Below are some proposed use cases for blockchain and smart contracts:
– Supply chain and logistics – Blockchain implementation has been suggested as a way to guarantee traceability from the beginning of a supply chain all the way up to the consumer. This type of initiative has been especially welcomed by industries whose products have special attributes that require additional controls, such as organic or fair-trade produce. In these cases, the producer enters the data about a product into the blockchain for the first time, which can then be traced throughout the supply chain using barcodes or RFID tags.
– Smart Utilities – The concept of smart utilities is originally more connected to the topics of IoT and Smart Cities than with blockchain– with solutions such as smart meters seeing already some adoption. However, there are some initiatives that plan to use blockchain and smart contracts in addition to IoT devices. As an example, an electricity company could provide their clients with a smart meter, which would feed the monthly electricity usage data into a smart contract to automatically settle the payment of that month’s bill.
– Sports betting – a smart contract could perform the function of a bookmaker in an automatic and decentralized way, allowing users to place their bets on sports events and paying the winners instantaneously after receiving data of the result.
The oracle problem
Besides being exciting new applications of blockchain technology all of these situations have one thing in common – they require data that is external to the blockchain. In the case of logistics, the blockchain needs to know where the product was at a given time, in the case of the electric company its smart contract needs information regarding how much energy was consumed, and in the bookmaker’s case, the smart contract needs to know the result of a certain game in order to pay the winners.
Any of these bridges that feed information from the real world or from the “regular” internet into the blockchain can be considered oracles. Simply put, an oracle is anything that feeds external data into the blockchain. It can be an organic producer that tags its products for the first time before shipping them, a smart meter that measures how much energy a household is using, or a website that displays game scores. The problem is that by making use of these oracles to retrieve external data a single point of failure is being reintroduced to the blockchain – the network is required to trust the information coming from a single agent – it can no longer be considered fully decentralized and trustless. The producer can make mistakes, or intentionally register extra products, the smart meter can be tampered with and the website from which the smart contract feeds can be hacked to show a certain result.
This is what is called the oracle problem – right now it is not possible to feed real world data into the blockchain without going through a centralized oracle.
As it was presented above, the decentralized, secure and trustless nature of blockchain technology that allows for the removal of both a single point of failure in databases and the requirement of a trusted third party in every transaction, is what makes it appealing to these industries. This leads to a paradoxical situation, in which the applications that stand to gain the most from blockchain adoption lose the benefits of this technology by reintroducing a single point of failure in the figure of an oracle.
While solutions for oracles that retrieve data from the internet (such as the sports betting smart contract above) are foreseeable – for example the smart contract could retrieve data from all the websites that display the result of a game and accept the result displayed by the majority, instead of trusting just one – a solution for oracles that deal in real world data is not as close.
Until this problem is solved, blockchain implementation is stuck in a place in which the most exciting and revolutionary use cases, especially those that interact with the real world, are hindered by the lack of reliable and tamper proof oracles. For the time being, industry players have to decide whether blockchain and smart contracts still make sense for them, even with this piece of the puzzle missing.