What is an oracle and what does it do?
An oracle network removes the need to trust a single participant for critical data input. There’s no point to using a trustless, decentralised, fault-tolerant and Turing-complete blockchain smart contract platform if the data interface to the real world can be compromised. If the data itself is wrong, or malicious, it defeats the purpose of smart contracts. A smart contract must be able to utilise real world data to build applications with any real use case; limiting smart contracts to blockchain-to-blockchain interactions (like ICOs on Ethereum) is not enough. So is ChainLink the answer?
Some use cases and applications of oracle nodes for smart contracts:
- Accessing price lists, tax lists or sanctions lists in real time
- Automatic payments on metric based parameters (eg. employee bonuses for exceeding performance)
- Automatic insurance payout during disasters (farmers during drought, automobile owners during a flood)
- Reading retail transactions, merchant payments or remittance amounts
- Time based and event based scheduling of contracts (transfer salary to account on first of every month)
- Expiration or creation records of products (supply chain management or… humans)
What is a decentralised oracle network?
Since an oracle is essentially an application/service that interfaces the blockchain with the real world, the real task for smart contract legitimacy is to ensure that the oracle isn’t taking wrong inputs by being compromised or being fed bad information. Herein lies the catch – what’s the point of using a trustless blockchain smart contract if you’re trusting a third party with the real world data anyway? It defeats the purpose of a blockchain based smart contract. It’s using a platform that’s supposed to be decentralised by adding a centralised input layer.
This is where ChainLink (LINK) comes in. The token exists to create a financial incentive for the ChainLink network to play nice. With an inbuilt reputation system, bidding system and a decentralised network that relies on independent oracle service providers, users can ensure their data is trustworthy as it’s verified by multiple independent sources. Bad actors are removed/disincentivised from the system and the most trustworthy nodes are the most profitable. This gives a free-market, economic benefit for oracle services to be consistently trustworthy in providing their data. Read the ChainLink whitepaper – it explains everything in vivid detail.
“The oracle problem”
Oracle services are complicated to build. A smart contract platform only has to interact with the blockchain – the data from the real world that is fed to the smart contract has to be done be a different service that guarantees the safety and legitimacy of the information. If there’s a smart contract that immediately releases disaster relief funds to municipalities when there is a large scale natural disaster, you need to be sure that there actually is a disaster, and that the oracle network hasn’t been compromised by any party.
Most of ChainLink’s competitors take a different approach; instead of guaranteeing a decentralised, merit based, blockchain-economics-incentivised service to provide legitimate data (permissionless), they provide a closed service that guarantees the APIs that feed the oracles the data are trustworthy (permissioned). This means two things. The first is a disadvantage and the second is an advantage for ChainLink:
- You are relying on the trust and security (that they won’t be hacked) of the oracle service provider. Companies like Microsoft have decades of experience in the field and are largely trusted by enterprises for these tasks.
- If you do trust the oracle service, you will be assured that your data is private and authentic. With ChainLink, the data privacy (despited encrypted queries) of real world information is a concern.
There are centralised oracle networks like Microsoft’s Coco and Corda, and decentralised oracle networks such as ChainLink and Hivemind. Both are on different ends of the spectrum of permissibility of information, and have their specific advantages, however due to its decentralised nature, ChainLink’s values align highly with the fundamental values of the blockchain.
Breaking down the advantages of a decentralised oracle network:
- Super high uptime: there’ll always be an oracle available, depending on the size of the network. Even the largest centralised web services providers go down from time to time (AWS taking down the internet along with it in Feb 2017)
- Censorship resistant: no one arbitrarily decides which smart contract queries to allow and which to deny
- Confidentiality: ChainLink encrypts all requests, ensuring that oracle providers aren’t privy to and can’t publish specific smart contract information
- Flexibility: A collection of aggregated data sources provides more robust data than a single oracle could.
- Trustworthiness: the on-chain part of ChainLink which aggregates different responses will have it’s code available publicly, and can therefore be verified by any user.
Isn’t ChainLink simply a JSON parser?
The value of ChainLink lies in the network of nodes. Even if it was a JSON parser, LINK tokens aren’t meant to reward people who provide the service of parsing data, but to parse this data trustfully and consistently. By the way, the ChainLink code is obviously not just an API reading JSON parser, since ChainLink itself is a smart contract platform that collects data, understands and works with a configured service level agreement between both parties, logs the required parameters, conducts an auction bidding process from oracle service providers, and maintains a reputation system of all nodes.
Imagine you’re using a ChainLink query to run a fantasy football team platform. After a football match the data coming from some of the oracles regarding the result is different, and there’s a huge discrepancy in scores. Some oracles are saying that your team won the match, and some are saying the opposite. In the case of a centralised oracle service, there’s nothing you can do except trust Oraclize or Microsoft or whoever that the decision they make regarding which data is false, and which nodes should not be counted, is actually legit. In the case of ChainLink, the LINK network will aggregate the same data from a bunch of different oracle service providers, depending on the bid, rank them with their reputation and come to a calculated understanding about which data is legit.
When all this happens on one platform, and you factor in the potential real world use cases (which are huge and almost limitless), and then you factor in the multiplying power of the network effect (more nodes = better data), ChainLink suddenly doesn’t seem like just a JSON parser.
Beyond the JSON meme
ChainLink is fundamentally blockchain agnostic. Not all of its competitors in the oracle space are. This means that ChainLink doesn’t need Ethereum to survive, despite being an ERC20 token. If Ethereum fails in the future, the LINK tokens can be distributed again on another blockchain through airdrops. The tokens are just a means of assigning value to oracle providers via blockchain-economics. The ChainLink network itself can interact with any blockchain, and query hundreds if not thousands of oracles to any smart contract on any blockchain. If you think about it, Ethereum needs ChainLink to survive, and not the other way around. Right now, since the mainnet isn’t released yet, we just know that ChainLink works with Bitcoin, Ethereum and Hyperledger blockchains. ChainLink is also Byzantine fault tolerant, while some of its main competitors such as Microsoft Coco and Mobius are not.
Partnerships and scope
I’ve also previously written about the many partnerships ChainLink has, most notably SWIFT, the largest payment messaging service in the world. I don’t have the industry knowledge or technical understanding to know what these partnerships entail, but if ChainLink works out to be a good solution for even one blockchain (let’s say Hyperledger), it justifies many times its current value for the LINK token.
When you think about the future of blockchain tech, the most obvious impediment to your investments in various cryptocurrencies is that large companies start creating their own blockchains. This is possible if existing decentralised solutions don’t scale up and refine themselves in time to be better solutions than centralised, private blockchains. The Hyperledger project, backed by IBM and the Linux Foundation, is one such umbrella project that would allow large companies to get the best out of blockchain tech 3-5 years from now. ChainLink currently works with Hyperledger, and theoretically will always work with whatever the latest smart contract platform is in the future.
During the gold rush, the people who made the most money were the ones who sold mining equipment to the gold mines. ChainLink is the mining equipment – the infallible middleman in the smart contract economy that is bound to be the evolution of cryptocurrencies in the near future. If it works, that is.
ChainLink’s competition: thoughts and notes
ChainLink isn’t the only oracle solution in town. 2018 is going to be all about platforms, dApps and smart contracts, and the natural evolution of pure blockchain to blockchain interaction is real world use. You need oracles for that, and what’s more, you need oracle solutions that are failsafe and trustworthy. Here are the services and frameworks that allow people to create and deploy oracles. In other words, ChainLink’s main competitors:
As part of Microsoft’s Azure platform, Coco provides a blockchain development interface for enterprises, leveraging secure environments such as Intel’s SGX and Windows’ Virtual Secure Mode. Coco currently interfaces with Ethereum, Quorum, Corda, and Hyperledger Sawtooth. While Coco’s oracles are not Byzantine fault tolerant, they utilise a mix of BFT and crash tolerance known as Caesar consensus. You can find out more in their whitepaper. You can see why I’ve listed it first; it’s the most likely oracle candidate for large enterprises who don’t want their data on distributed systems, who are willing to trust a centralised party like Microsoft. Since there is only one node for executing smart contracts with Coco, it eliminates the problem of determinism that ChainLink has to solve (by aggregating various answers from different oracles to find the best answer). The problem, again, is that you must trust external data sources.
Bletchley Cryptlets are the older, deprecated versions of Microsoft’s Coco. Still, it’s worth a read to find out how blockchain tech evolved through 2016. Its oracles were a proprietary solution that only worked if you were utilising the Bletchley platform with Ethereum, since it used Ethereum Virtual Machine. It was Byzantine fault tolerant, though, unlike Coco which superseded it.
Oracles are part of the Corda platform, which is another enterprise blockchain solution. They aren’t an independent or decentralised oracle platform, but if your business uses R3 Corda for its blockchain tasks, you wouldn’t need a third party oracle service. That, of course, means it can’t be used with Ethereum or any other blockchain/smart contract platform.
Oraclize is a centralised oracle service provider, however, they facilitate the honest retrieval of data by providing proof of authenticity for all data given to smart contracts. The service is currently implemented on Bitcoin and Ethereum (both main and testnet), with Rootstock implementation undergoing development. The downside to Oraclize’s approach is the inability of the user to pinpoint where the fault lies within spurious data. Basically, let’s say Oraclize’s oracles provides you with wrong data; you wouldn’t be able to tell if it was Oraclize’s fault or the fault of the webpage providing Oraclize that data.
Town Crier was created by IC3 (Initiative for Cryptocurrencies and Contracts), a consortium of students and faculty developers from various Ivy league schools. Ari Juels, Cornell professor and financial cryptographer who helped create Town Crier is an advisor of ChainLink. Sergey Nazarov worked on the project himself. It’s an open source protocol running on C, developed for the Ethereum blockchain so far. It’s not as vast in scope as some of the other projects here, but still worth a mention. Its relation to ChainLink posits itself in a unique place – it’ll probably be implemented alongside ChainLink and not compete with it.
Hivemind is a decentralised oracle protocol developed as a Bitcoin sidechain. It uses Bitcoin smart contracts to automate most of the traditional oracle processes. Hivemind uses a cryptocurrency Votecoin, to build reputation and economic incentive, similar to ChainLink’s own LINK tokens. It seems to be much earlier in the development pipeline, but shares some interesting similarities with ChainLink.
Aeternity is not a true competitor since it’s a blockchain platform on it’s own, competing with the likes of Ethereum, Gnosis and EOS. Still, it’s a turing-complete decentralised smart contract platform with inbuilt oracles. It features atomic swaps, and like Hivemind, uses prediction markets for… predictions. Their whitepaper is a simple, interesting read.
Mobius provides oracles as one of its services, though it’s much more a developer tool for integrating existing apps with blockchain platforms. Its oracles utilise a patent pending proof of stake protocol, while the Mobius platform provides a marketplace for developers to connect dApps and micropayments between machines. It truly is a much more ambitious project than most of the others on this list, since they seek to do so much. I can’t help but wonder whether the tried and true method of sticking to one problem and solving it well might not be a better approach. Still, Mobius has partnerships with WaltonChain and advisers in Jed McCaleb to boast about. ChainLink might be ahead in terms of development, but we have to wait and see whether Mobius lives upto its promises in the whitepaper.
How ChainLink stacks up to its competition
Okay, real talk. The fundamental difference between ChainLink and all the other oracle services above (except Mobius and Hivemind) is that in everything else, the smart contract must trust external data sources. Since ChainLink’s network is decentralised, it allows it to be trustless while also being verifiable. When it comes to Mobius, I genuinely think it’s too early to tell whether half the things they claim to create will work and work well. The whitepaper is huge in scope and doesn’t go into sufficient detail regarding security and fault tolerance of oracles, which ChainLink’s does. We’ll have to wait and see when the Mobius testnet is released in Q2 2018.
There’s also possible vulnerabilities in ALL oracle implementations if something like Spectre and Meltdown can affect Intel’s “secure” SGX environment. We wouldn’t know.
Conclusion: Is ChainLink Going to Succeed?
To me the use case of centralised oracles like Oraclize, Corda and Microsoft Coco are entirely different to ChainLink’s network. Logically, it would be more economically feasible to spread the load of gathering legitimate data and paying the highest bidder using a cryptocurrency token than it would to pay Microsoft to handle everything for you. That’s what cryptocurrencies are for – creating a free market, and cutting out the middleman, and in turn reducing costs. Then again, I don’t see ChainLink being used for any highly sensitive operations due to data privacy concerns, despite its encrypted queries. Military, government and private bank data will never be done on decentralised blockchain systems. If you’re hedging your bets on who will be the Google and Facebook of oracles in 2020, it may as well be Microsoft…
Still, we all know smart contracts are coming in a big way. We all know decentralisation of services is going to be mainstream in some form or the other. When I read the various potential implementations of smart contracts, I can’t help but think a decentralised oracle solution is not a novelty, but a necessity for blockchains to function and interact on a global scale. Right now, Ethereum creates a ‘token economy’, allowing the tokenization of businesses leading to great blockchain economics. However, if Ethereum and competing platforms want to be used in the real world, it needs a project like ChainLink to act as middleware. New projects keep coming up from time to time, and we don’t know who wins till the dust settles, but so far I feel that Ethereum needs ChainLink, and not the other way around.