An Introduction to ChainLink

ChainLink is a decentralized oracle service, the first of its kind. When Ethereum went live in 2015, it revolutionized what blockchain could bring to enterprise solution and traditional business. Blockchain was no longer just a medium for new age financial transaction, confined to Bitcoin’s potential to disrupt traditional currency exchange. With Ethereum powered smart contracts, Vitalik Buterin opened up a Pandora’s Box of use cases for blockchain technology.

Problem is, per their design, smart contracts can only manage data on the blockchain. Their potential, the ability to provide tamperproof, decentralized applications for uses the world over, is still largely untapped, as many of the smart contract programs built on Ethereum lack a bridge to the real world industries they’re trying to improve.

This is where ChainLink comes in. With ChainLink, smart contract users can use the network’s oracles to retrieve data from off-chain application program interfaces (APIs), data pools, and other resources and integrate them into the blockchain. Basically, ChainLink takes information that is external to blockchain applications and puts it on-chain.

For many of the blockchain protocols out there, oracles like ChainLink will be necessary to access the data that these protocols need to operate. As such, ChainLink is, as it names suggest, the link that connects blockchain to existing infrastructure.

If that’s enough to sate your appetite, you can skip ahead to our info on markets, wallets, and the like. But if you want a more thorough and technical explanation of ChainLink, let’s jump down to the next section.

How Does ChainLink Work?

ChainLink’s core objective is to bridge on-chain and off-chain ecosystems, and as such, it has two main architectural components: on-chain infrastructure and off-chain infrastructure.

On-Chain Functions

ChainLink’s first component consists of on-chain contracts deployed on Ethereum’s blockchain. These oracle contracts process the data requests of users looking to take advantage of the network’s oracle services. If a user or entity wants access to off-chain data, they submit a user contract (or requesting contract) to ChainLink’s network, and the blockchain processes these requests into their own contracts.

These contracts are responsible for matching the requesting contract up with the appropriate oracles. The contracts include a reputation contract, an order-matching contract, and an aggregating contract.

The first of these, the reputation contract, is exactly as it sounds: it checks an oracle provider’s track record to verify its integrity. In turn, the order-matching contract logs the user contract’s service level agreement on the network and collects bids from responsible oracle providers. Finally, the aggregating contract accumulates the collective data of the chosen oracles and balances them to find the most accurate result.

With these contracts, ChainLink’s on-chain functions undergo a three-step process.

Oracle Selection: When a requesting contract is submitted, the user specifies a set of parameters and requirements for their data search known as a service level agreement (SLA). These may include oracle reputation, data specifications, number of oracles/data resources needed, and so on. Users can then filter and manually search for oracles using ChainLink. At times when a manual search is not optimal, an automated matching engine will be available. For this option, oracles can bid based on a contract’s SLA. Contracts have the option to implement a penalty fee for misbehavior, and once a contract has received enough quality bids, these oracles are selected and the service agreement is initiated. Data Reporting: This one is pretty simple. After they are chosen, off-chain oracles carry out the service agreement and transmit the requested data to the blockchain for on-chain nodes to process. Result Aggregation: In order to ensure data integrity, an aggregating contract collects the data submitted by all oracles associated with a requesting contract. The aggregating contract then averages all the data to provide the requesting contract with an accurate, weighted answer. It should be noted that, under certain circumstances, not all answers can be averaged, but for simplicity’s sake, this article will not explore these possibilities.

Off-Chain Functions

ChainLink’s second component consists of off-chain oracle nodes that are connected to the Ethereum network. Currently, ChainLink only interfaces with smart contracts on Ethereum’s network, but in the future, the program will be blockchain agnostic to work with smart contracts on multiple networks.

Off-chain nodes are responsible for collecting the data from the off-chain resource as requested by user contracts. After retrieving the relevant data, these nodes process that data through ChainLink Core, the core node software that allows off-chain infrastructure to interact with ChainLink’s blockchain. Once the data is processed, ChainLink Core transmits it to the on-chain oracle contract for result aggregation. In compensation for this work, off-chain oracle operators are paid in LINK, ChainLink’s native token, for harvesting and sending data.

In addition to carrying out this crucial function, off-chain nodes also allow developers to integrate external adapters. While it’s not a perfect parallel, external adapters are for ChainLink what decentralized applications are to the Ethereum network. These adapters are plugins that node operators can use to accommodate a number of additional programs into their base of operations. Additionally, they can perform subtasks that streamline the data collection process.

Distributed Sources and Distributed Oracles

We’ve included this section in here because these two concepts are important for understanding how ChainLink sets itself apart from other oracle protocols.

Unlike its centralized counterparts, ChainLink’s program is completely decentralized. The problem with a centralized oracle being, it may give way to fraudulent data. If, for instance, a user contract relied on one oracle to provide a report on a financial audit, this oracle could tamper with this data if it had malicious intent.

To solve these security issues, ChainLink implements what it calls source and oracle distribution. If an oracle wants a trustworthy reputation, it can draw its data from multiple sources. In addition, when a user contract puts in a request with the network, that request is contracted out to multiple off-chain oracle nodes. These oracles may draw from like or different sources.

To illustrate this, let’s say that the Boomer Blockchain Stock Tracker submits a contract request for stock market data. In line with ChainLink’s oracle distribution, this request is then matched up with Oracle A, Oracle B, and Oracle C. Because of the network’s emphasis on source distribution, Oracle A draws its data from Barron’s and CNN Money, Oracle B from MSN Money and Market Watch, and Oracle C from Barron’s and Nasdaq. Thanks to this variety, Boomer Blockchain Stock Tracker isn’t receiving its data from a centralized source and is, instead, receiving a balanced aggregation of information.

In effect, this two-tiered distribution system keeps oracles honest, as each dataset is aggregated together and measured up against one another. Oracles that act out and tamper with data are punished with penalties and a damaged reputation on the ChainLink network.

ChainLink Trading History

ChainLink has been pretty dormant until recently. Coming out of its ICO in late September of 2017, it grew to highs of $0.47, only to a support of $0.14-0.18 until December.

After its December runup, the cryptocurrency is in the market cap top 100 with at a price of $1.29 at time of writing.

Where to Buy ChainLink

ChainLink’s most major exchange is Binance accounting for 97% of the coin’s trading volume in BTC (66.20%) and ETH (31.10%).

Where to Store ChainLink

Built on Ethereum, ChainLink is an ERC20 token, so Ethereum compatible wallets such as My Ether Wallet and the Ledger Nano S.

Roadmap and What’s to Come

Unfortunately, the ChainLink team does not offer a roadmap, but a testnet of ChainLink’s services should come sometime within Q1 of 2018

Generally, the project’s general lack of marketing and concrete updates have frustrated community members in the past. Sergey Nazarov, the project’s CEO, is known for a quiet community presence that favors of behind-the-scenes work on ChainLink.

The team may not hype their project much, but for what it’s worth, they sacrifice brand marketing in favor of product development–and some community members find this focus to be refreshing. For instance, they’ve established an oracle with Swift Bank, and have a few quiet partnerships with zepplin_os and Request Network.

Final Thoughts

I know it’s not the easiest project to comprehend, but once you grasp it, you’ll likely understand why oracle platforms like ChainLink are important for blockchain technology.

The Blockchain realm needs oracles if it wants to see legitimate adoption. As it stands, ChainLink is one of the few oracle providers on the market, and some call it the industry leader. Moreover, it’s the only truly decentralized oracle provider, and if oracles are to operate as securely as the blockchain protocols they serve, decentralization is a must.

Additional Resources:

Website

Whitepaper

Subreddit