ChainLink is an interoperability-focused project that is bridging the gap between outside applications and blockchain based smart contracts. Working on solving the connectivity problem that is present in the current blockchain ecosystem, ChainLink wants to create the link between smart contracts and real world APIs. Application programming interfaces (API) are a set of commands that one program can send to another program, effectively facilitating the communication between different programs that a lot of the internet relies on to function.
ChainLink’s solution makes it possible for smart contracts to leverage a newly created oracle network to communicate with off-chain systems. Through these oracles, smart contracts are able to pull data off traditional applications and apply them to the blockchain network. There are projects already using oracles that execute based on real world factors. These other oracles are centralized in design but ChainLink is creating completely decentralized oracles to match the paradigm instead of fighting it.
The ChainLink protocol begins with on-chain Ethereum smart contracts that pull from off-chain oracles.
User deployed contracts on the Ethereum blockchain facilitate the requests to pull off-chain data using ChainLink oracles. The first step to pulling data requires the user to submit a contract to ChainLink’s network. A user can set parameters for the off-chain data search including reputation of the oracle, number of resources needed and other important specifications. A manual selection of oracles can be done if preferred. When an automated pairing of user and oracle is done by the ChainLink network, oracles are given the opportunity to bid based on the user submitted contract parameters.
Once a user is paired with the appropriate oracle for the data request, the oracle carries out its job. Data is pulled from off-chain applications and submitted on the blockchain as per the contract.
To ensure the most accurate data result as possible, an aggregating contract processes the information. The contract accumulates the collective data of the chosen oracles and balances them. A final collective result of the Chainlink three step system query can then be deployed into the smart contract by the user.
Nodes located off the blockchain collect data from real world resources as requested by the original Ethereum user contract. These nodes could be from any sort of application. As an example, the Weather Channel could be running a node that holds data. Users could connect using ChainLink to have weather condition data implemented into smart contracts. Currently, ChainLink only interfaces with smart contracts on Ethereum’s network, but in the future the program will be more flexible.
Once the data is collected, it is run through the ChainLink core by the network nodes. This ChainLink core software is the infrastructure built off-chain that interacts with the blockchain, initially supporting Ethereum and adding flexibilty later. Once the data is processed, ChainLink Core connects with an oracle on-chain for result aggregation (as talked about above). Oracles used in this step are those that won the bid or were chosen directly by the user with the original smart contract request. In compensation for this work, off-chain oracle operators are paid in LINK, ChainLink’s native network token, for collecting this information.
As of now, smart contracts built on blockchain networks are limited by being confined within the blockchain. Smart contracts, without a doubt, change nearly every part of traditional service offerings, but alone they can’t reach the maximum potential. Smart contracts are limited unless you can introduce real world data in a decentralized and trustless way. There is an advantage in creating a fully decentralized system that can lead to reduced costs and greater scaling in the long term. Data providers outside of the traditional feeds will have the opportunity to grow with the implementation of a decentralized and reputation based system.