Crescendo is coming to Flow this July! Flow supercharges the Ethereum ecosystem with full EVM-equivalency and the power of Cadence 1.0.
January 14, 2021
Project Highlight: Chainlink
Mateusz Rzeszowski
Project Highlight: Chainlink

This guest blog post in collaboration with Johann Eid, Product Manager at Chainlink Labs and Mateusz Rzeszowski, Guest Writer for Flow.

is the fundamental difference between blockchains and established technology as the lack of a single authority governing a network stands in stark contrast to the current standard of centralized servers. While a number of opportunities and challenges come up as a result of this underlying change, we’ll focus on one specifically: the communication between a decentralized blockchain and outside systems.

A decentralized blockchain possesses no inherent ability to process inputs coming from external systems. 

What is commonly known as an “oracle” is the intermediary service between blockchains and the external world, relaying outside information to smart contracts. To better understand the concept, imagine a blockchain insurance application that pays out policyholders based on specific weather conditions. The smart contract that triggers the payout is guaranteed to provide reliable outcomes, in contrast to an insurance adjuster’s subjective assessment. A smart contract can automate the claims process between the insurance provider and the policyholder, but there’s one issue, what’s commonly called the “blockchain oracle problem”: the smart contract is unable to securely check external weather data on its own. What’s needed is a solution for sourcing and securely delivering weather data to our dapp—an oracle. 

But what guarantee does the smart contract have that the data provided by an external source is right? If the payouts of our insurance dapp depend fully on the data provided by the oracle, we would want to make sure it operates on that same decentralized basis, ensuring reliability by getting rid of any single point of failure.

Enter Chainlink, which serves as an oracle capable of feeding data to smart contracts in a way that doesn’t require sacrificing the decentralized nature of blockchain processes. 

Chainlink’s stated goal is to provide “reliable, tamper-proof inputs and outputs for complex smart contracts on any blockchain”. How is it looking to achieve that? In order to create a stable service, Chainlink’s oracle nodes operate independently of one another within a  reputation framework that incentivizes nodes to be available and secure. Such an aggregation of nodes prevents any single point of failure and provides guarantees around the data quality and secure data delivery of the oracle network. 

But what about the pragmatic side of things: what can Chainlink offer companies interested in blockchain, how is it ready for advancements in technology adoption, and are there any kinds of data it struggles with? 

Johann Eid, Product Manager at Chainlink Labs, answers these questions below.

Seeing how adoption depends on established industries entering the blockchain space, what are the incentives for companies to use Chainlink?

Chainlink oracle networks offer several advantages to established companies entering the blockchain space, particularly around three main value propositions:

  • Progressive decentralization of existing processes in order to increase transparency and trust. For example, a bank could use a decentralized price feed oracle to calculate the exchange rate on a transaction or an insurance company could use a decentralized weather data oracle to determine the outcome of a claim. This model allows companies to incrementally adopt blockchain technology without having to go all in and overhaul their backend systems.
  • A blockchain abstraction layer that offers enterprises bi-directional communication with any blockchain environment through a single integration gateway in the form of an oracle node. This provides companies with a future-proof solution to sell data and API services to the growing smart contract economy across all existing and future blockchains, saving considerable time and resources on integration work.
  • A generalized oracle solution for building more advanced smart contract applications that mitigate counterparty risk and increase efficiency. Companies can use Chainlink to connect their smart contract-powered business processes to premium data inputs, settle their contracts via fiat payments on existing payment rails, build multi-chain applications, sell data on-chain while maintaining data privacy and licensing agreements, create on-chain privacy of their transaction history, and more.

If blockchain adoption were to advance rapidly, how is Chainlink ready to scale alongside?

As a highly generalized, blockchain-agnostic oracle protocol, the Chainlink Network can scale in a number of unique ways, which ultimately depend on how the user wants to utilize the network. The reason Chainlink can support so many scaling options is that its underlying network design is a heterogeneous framework, meaning any number of decentralized oracle networks can run simultaneously and be configured according to different parameters without any external dependencies on other oracle networks. Unlike a blockchain that operates as a single unified network with a single consensus mechanism, the Chainlink Network has a multitude of independent oracle nodes and oracle networks running in parallel to one another without any cross-dependencies. 

Through this framework, Chainlink oracles can be integrated natively onto any blockchain network without worrying about the limitations of any other blockchain. 

Chainlink has already been integrated natively on high-throughput blockchains and layer-2 solutions, as evidenced by Matic Network and Binance Smart Chain launching Chainlink functionality on their mainnet. Chainlink nodes can also offer layer-2 scaling solutions directly, such as running the Arbitrum protocol to offer scalable, trust-minimized Solidity computation.

Outside of design flexibility, Chainlink is scaling its core base layer protocol through an off-chain aggregation solution called OCR (Off-Chain Reporting). OCR uses a peer-to-peer communication protocol to allow oracles nodes within a decentralized oracle network to communicate and aggregate data off-chain. By moving the aggregation process off-chain, only a single node needs to deliver the final aggregated data on-chain, dramatically lowering costs by an order of magnitude compared to the current model of on-chain aggregation. 

What are the limitations on data that can be fed into blockchain smart contracts via Chainlink? Which data potentially causes the most difficulties and which does the least?

The Chainlink Network makes use of modular external adapters, which can be written to facilitate connection between smart contracts and any off-chain API or system. Thus, there are technically no limits on the data that can be supplied on-chain through Chainlink’s decentralized oracles, including from credentialed data providers, web APIs, enterprise backends, IoT networks, traditional payment gateways, Cloud systems, and more. 

The easiest data to bring on-chain is the data with the most demand, as data providers are more open and efficient in supporting new blockchain-based markets when there is already a large and growing pool of paying customers. This is why the Chainlink Network has been so effective for launching widely used Price Feed oracles, which supply a wide variety of on-chain price feeds with full market coverage to support applications and protocols in Decentralized Finance (DeFi), the most actively developed blockchain market. 

A key industry-wide challenge and opportunity for delivering data to smart contracts right now is around making confidential data accessible to smart contracts on public blockchains while still retaining privacy of that data from both the oracle and public. Several novel privacy-focused oracle solutions, most notably DECO, are being actively developed to address this challenge. DECO is a privacy-preserving oracle technology that uses zero-knowledge proofs to attest to the validity of data and to cryptographically prove its origin within a unique HTTPS/TLS web session without revealing the sensitive data on-chain or requiring server-side modifications.

Where do you see Chainlink in 5 to 10 years?

It’s hard to predict anything that far out in the blockchain space. However, one of the areas we see evolving is how the blockchain space as a whole defines the role of an oracle in the smart contract economy. Because delivery of off-chain price data to DeFi was the most immediate and first in-demand use case in the market, many projects use oracles as merely data delivery services. While secure data delivery is very important and will only increase usage and expand in the amount of data types it brings on-chain, it’s only an initial type of oracle functionality, similar to how email was the first service to really take off on the Internet, but was far from the last with the World Wide Web being introduced not too long afterwards.

As entities that can perform arbitrary off-chain functionalities for on-chain contracts, Chainlink oracles provide users with an expansive set of services that go beyond the delivery of price data, such as:

  • Generating a provably fair source of on-chain randomness (VRF
  • Creating on-chain transaction privacy (Mixicles
  • Fairly ordering blockchain transactions (FSS
  • Maintaining protocols based on predefined conditions or time schedules (Keepers
  • Performing trust-minimized Solidity computation off-chain (Arbitrum
  • Checking the collateralization of cross-chain or off-chain assets (Proof of Reserve
  • Making confidential data available on-chain (DECO
  • Triggering external payments on traditional payment rails

When combined, Chainlink starts to encompass a full off-chain services layer for smart contracts.

What are your thoughts on supporting Flow and what use cases do you think Chainlink can enable/support?

As a blockchain-agnostic protocol, we look forward to supporting all blockchain networks, such as Flow. Importantly, Chainlink can be integrated directly on the Flow blockchain, allowing developers to build data-driven smart contract applications at the native speeds and with the underlying security assumptions of Flow without cross-dependencies on other blockchain networks. This means the creation of high-throughput applications and oracles on Flow to support the next generation of apps, games, and the digital assets that power them. 

In terms of use cases, Chainlink is highly generalized and supports the creation of any type of oracle network, with off-chain connection to nearly any resource. Thus, there is no limit to what kind of externally connected smart contract application that can be built via the combination of Flow and Chainlink, ultimately allowing Chainlink to service the growing and changing demands of the Flow ecosystem. For those wanting to get an idea of just what’s possible with Chainlink, we outlined a large set of oracle use cases in a recent blog post 77 Smart Contract Use Cases Enabled By Chainlink, which features applications across finance, payments, gaming, insurance, enterprise, supply chain, utilities, authorization and identity, government, and various other possibilities.

While there is no limit but the imagination, some of the use cases potentially most relevant to Flow and its unique architecture include Chainlink VRF for obtaining a source of provably fair randomness to use in blockchain games, off-chain web data for creating dynamic NFTs, and Chainlink Price Feeds for building a wide variety of of DeFi applications.