Why ChainLink is NOT the oracle of the future
ChainLink has hit the crypto scene with a bang; with a market cap in the billions and an army of hopeful holders that feel safe in the knowledge that ChainLink will be the next big thing in crypto.
These hopes are based on a sound assumption; this industry will need oracles to provide inputs from the outside world into smart contracts and oracles will become a bedrock of the blockchain ecosystem.
Despite this, it is my personal opinion that ChainLink will not be the dominant oracle of the future. In this article I will go over why I believe this to be true and suggest an alternative oracle that is popular in China but unheard of everywhere else.
What is ChainLink?
ChainLink is an oracle service that is currently operating on the Ethereum blockchain but is designed to be agnostic. Its mission is to provide an ecosystem where information from the outside world can be inputted into smart contracts on the blockchain in a decentralised way.
ChainLink works by allowing a third party like an exchange to become an input node that feeds certain information into the blockchain like the price of Bitcoin in USD. The exchange in this example would run a chainlink node and put up collateral to compensate users if they provide wrong information.
Other third parties can request information from a ChainLink node and put up a fee to compensate them for providing the information.
Chainlink also has a token, LINK, that is used to cover the fees for using the service. As mentioned above, the market cap for LINK is in the billions.
ChainLink provides this information to smart contracts and decentralised applications, making it a hard requirement that it is itself decentralised and trustless otherwise it would compromise all the decentralised services that depend on it.
The problems with ChainLink
This leads me into the next section of the article. ChainLink has some big issues in fulfilling its vision to be an oracle for the blockchain ecosystem and they are explained below.
ChainLink inputs cannot be verified without trust
The inputs that come back from ChainLink nodes cannot be verified in a trust-less manner.
Let’s say I have a smart contract that needs to know what the weather is and it asks a ChainLink node for the answer. I get back an answer stating that it is Sunny today in my region but how can I trustlessly verify that this is actually true?
The short answer is that you cannot. ChainLink does not have a trustless way to verify whether the information given back to you is accurate or not and instead relies on centralised verification and dispute resolution.
ChainLink has a large attack surface
Recently ChainLink was attacked by someone who spammed the network with requests. These requests also tricked the ChainLink nodes into paying exorbitant gas fees by minting Chi tokens. All up the attack cost ChainLink nodes 700 ETH in gas fees.
ChainLink temporarily solved this issue by enforcing a whitelist, further emphasising the trusted nature of the protocol and giving credence to Vitalik’s post.
ChainLink’s reward and punishment model are decoupled
As explained above, ChainLink nodes provide inputs into the system upon request and provide collateral to compensate requestors for inaccurate information.
For example, BP might become a provider of jet fuel prices on ChainLink for airlines. An airline like Singapore Airlines could have a smart contract that checks the price of jet fuel from BP and uses that price to buy futures to hedge against fluctuations in the jet fuel market.
If BP gives inaccurate prices to the Singapore Airlines contract, it could have severe or minor implications for them. In the event that this happens, Singapore Airlines can request compensation for damages related to the incorrect price.
This is where it gets tricky, who decides how much to compensate Singapore Airlines for the damages? What if the collateral provided by BP is too small to cover the damages? What if it is bigger but Singapore Airlines get’s all of it anyway?
In extreme examples, the effect of a wrong input can be immeasurable and there would be no way to pay it back. If you murder someone and the court orders that you compensate the family, any money you provide may help the family but it will never bring back the person. This is one of the strongest flaws in the protocol, it is impossible to price in the risks of being wrong and compensate accordingly.
This issue is further compounded by the lack of trustless verification. Node providers can’t accurately compensate for being wrong and requestors can’t trustlessly prove the accuracy of the inputs and how much a wrong input cost them.
The alternative — the NEST protocol
The NEST protocol is a truly decentralised oracle that provides information for pricing pairs without the risk of manipulation from a third party.
NEST works by having “miners” provide a price ratio pair for two different tokens, e.g. USDT:ETH and adding a corresponding deposit e.g. 10 ETH & 10 ETH worth of USDT.
If a miner provides an inaccurate price, an arbitrageur can buy or sell the deposit provided by the miner and in turn provide their own price plus a deposit. Each counter proposal requires a greater deposit than the previous.
The end result is that cheating is expensive (putting a ridiculous price input will result in someone profiting at your expense) and trustlessly verifiable as the prices provided are kept accurate by miners and arbitrageurs without a trusted third party.
The prices provided by the NEST oracle can then be used in various services without counter-party risk, whitelisting or dangers related to slippage or manipulation from flash loans.
Anyone can provide inputs to the NEST oracle and add their own token pairs. Anything that can be tokenised can be added to the NEST oracle. Like with the BP example above, jet fuel tokens could be matched up against a USD stable coin to provide accurate and decentralised pricing inputs from the oracle.
NEST’s novel approach as an oracle service has won it a lot of enthusiasm from the Chinese market and for a time NEST ranked as one of the most used smart contracts on Ethereum. Despite this, it is not well known outside China but should be.
Disclaimer: I recently started helping out the NEST team and as a result began research into their protocol and competing protocols like ChainLink. I was surprised by the elegance of NEST and the centralisation and popularity of ChainLink. These findings have led to me writing this article and I hope you found it insightful.
What do you think about ChainLink and NEST? Did I miss anything? Leave your comments below