- Chainlink is not a monolithic oracle network, but a generalized framework for constructing an unbounded number of decentralized oracle networks.
- Each network operates in parallel without cross-dependencies, allowing for any off-chain data resource and computation to be connected to smart contracts.
- The Chainlink framework has been used to create secure oracle networks providing smart contract applications with Price Feeds, Proof of Reserve, verifiable randomness, election results, and more.
Over the past few years, the smart contract ecosystem has rapidly grown not only in the amount of value locked—approximately $40B in total—but also in the diversity of decentralized applications that are now available to users. Much of this growth can be directly attributed to the increased adoption of decentralized oracle networks, which connect smart contracts to external data resources outside of the blockchain. Oracles power the DeFi ecosystem, enable new forms of on-chain collateral, and significantly extend the functionality of smart contracts as a whole.
However, different smart contract use cases require access to different off-chain datasets and computations, meaning a single oracle network design cannot provide the level of flexibility that advanced smart contract applications require. A synthetic asset protocol may require real-time price feeds to mint tokens pegged to the market-wide price of commodities like gold, a prediction market may require the final results of a US presidential election from an official source for market settlement, and an on-chain gaming application may require a secure source of external randomness for every item drop.
Each of these smart contract use cases has vastly different oracle requirements from one to another. Therefore, what the smart contract ecosystem requires is an infrastructure-oriented framework that allows developers to connect to and build any type of oracle network, with the ability to customize the composition of nodes, data sources, update frequencies, delivery methods, security parameters, aggregation methodologies, and more.
Following this approach, the Chainlink Network provides a generalized framework for the creation of oracle networks that can meet any design specification required by smart contract applications. This is achieved through Chainlink’s heterogeneous network design where every combination of oracle network parameters can be supported simultaneously in parallel. In this article, we’ll explore the core advantages of the Chainlink framework, how developers can customize their own oracle networks, and real-world examples of oracle networks that leverage Chainlink’s highly flexible design.
The Advantages of Chainlink’s Heterogeneous Network Design
Decentralized networks often follow a monolithic approach where a single collection of nodes work together to provide a specific selection of services following a predefined set of rules. Blockchains are the most prominent example of this monolithic design, where all nodes in the network perform a standardized set of operations, including validating signatures and hashing blocks, in order to generate a strong global consensus on the validity of a set of transactions. Every blockchain node performs the same deterministic actions to achieve this consensus, with the primary difference being the scale of operation.
While this works for blockchains, oracle networks aim to generate consensus on data from a non-deterministic world, which often involves paywalls and permissions for external data resources. The monolithic model is not suited well for oracle networks because not all nodes will have access to all the external resources required by users at all times. Forcing every node in the network to purchase subscriptions to every premium data source required by users is not economically scalable. Additionally, many datasets are only available to a select few entities like an enterprise’s backend database. As a result, oracle networks following a monolithic design often restrict the selection of oracle services available to those which can be performed by every node such as querying free open APIs that do not provide quality or uptime guarantees.
To avoid the limitations of the monolithic model, Chainlink instead operates as a heterogenous network that consists of numerous independent oracle networks running in parallel without cross-dependencies. The capabilities of one oracle network have no effect on the operation of any other. Each network can be purpose-built to serve the exact external data and off-chain computation requirements of any smart contract application, providing unbounded flexibility for developers. Launching an oracle network using the Chainlink framework is permissionless, enabling innovation in oracle network design to occur in parallel, leading to a natural evolution of the Chainlink Network as a whole.
A key advantage of this heterogeneous design is that Chainlink node operators can specialize in the oracle services they provide. This is a more economically scalable approach as nodes only need to acquire access to the external resources required by the specific oracle networks they participate in. As an example, a Chainlink node that powers Price Feed networks only needs access to financial market data and doesn’t need to pay for sports scores, weather data, or other external datasets. This lowers the barrier to entry of running a Chainlink node, further decentralizing the network as a whole. If a Chainlink node wants to support many diverse data resources at the same time, they are able to do this as well.
Chainlink nodes that have access to permissioned, credentialed systems such as enterprise backends, IoT sensors, fiat payment rails, and more can immediately begin selling this connection to smart contracts as they are not limited by the capabilities of other Chainlink nodes. This heterogeneous design is how the Chainlink Network natively supports data provider operated Chainlink nodes who sell a direct connection to their APIs.
As a result of this node operator flexibility, Chainlink is capable of bringing all the world’s data on-chain, drastically expanding the categories of smart contract applications developers can create.
Customizing an Oracle Network Using the Chainlink Framework
To support a heterogeneous design, oracle networks built using the Chainlink framework have a wide range of parameters that can be adjusted to support a specific use case. The parameters of one oracle network do not affect any other network, allowing for maximum flexibility. These customizable parameters include:
- Node Operators: Any selection of Chainlink nodes can be composed together into an oracle network including those operated by professional DevOps teams, reputable data providers, traditional enterprises, or any other entity.
- Data Sources: Chainlink nodes can fetch data from any selection and number of data sources, including free open APIs, paid authenticated APIs, permissioned databases, hardware sensors, and any other data resource.
- Off-Chain Computation: Chainlink nodes not only provide data delivery capabilities but can also perform trust-minimized off-chain computation such as generating verifiable randomness, calculating insurance quotas, and more.
- Underlying Blockchain: Chainlink is blockchain agnostic and supports a wide range of on-chain environments ensuring smart contracts always have access to a secure and reliable source of off-chain data and computation.
- Update Frequency: Oracle network updates can occur based on any schedule such as on a deviation basis (e.g. every 0.5% difference), a heartbeat basis (e.g. every hour), an on-demand basis, and any other schedule desired.
- Aggregation Methodology: Oracle networks can perform different forms of aggregation depending on the data type such as taking the median, mean, mode, or any other strategy to combine multiple data points into one.
- Security Parameters: Service agreements can allow users to formalize their security requirements such as specifying the amount of collateral to be deposited by oracles, length of service, uptime requirements, and more.
In addition to the above, Chainlink oracle networks can support various ways of delivering data to smart contracts on-chain. While one category of smart contract applications such as an insurance smart contract may require external data to be pushed to it when a specific real-world event occurs such as a natural disaster, a money market may require a regularly updated on-chain source of market data that it can pull from at any time to verify collateralization of a loan. These different types of oracle networks include:
- Basic Request Model (Push): Enables smart contracts to access any external data source (open or authenticated API) by generating and submitting a data request to Chainlink oracles in one transaction and receiving the response later in time within a separate transaction.
- Decentralized Data Model (Pull): Provides a shared data resource in the form of an on-chain reference contract which is collectively funded by multiple users and regularly updated by a network of independent and security reviewed Chainlink nodes, allowing smart contracts to request and receive external data within a single transaction.
While the basic request model is ideal for unique datasets that are required on an infrequent basis, the Decentralized Data Model is ideal for common datasets that are queried on a frequent basis, such as the widely used Price Reference Feeds. DeFi protocols can fetch data from these price feeds at any time to get a secure, reliable, and fresh source of financial market data. This oracle network model means developers are not required to build their own oracle network, but instead can connect to pre-existing oracle networks that are collectively supported by many independent projects.
Different Oracle Networks Powered by the Chainlink Framework
Through Chainlink’s highly flexible oracle framework, numerous independent oracle networks have been created that provide access to a wide diversity of external datasets and off-chain computations for smart contract applications. While there is an unbounded number of ways the Chainlink framework can be used by smart contract applications, here is a sample of a few of the different oracle networks that have been constructed:
- Price Reference Feeds: Chainlink Price Feeds provide DeFi applications, such as Aave and Synthetix, access to the market-wide price of various cryptocurrencies, stablecoins, forex, commodities, indices, equities, and more.
- Proof of Reserve: Audits regarding the reserves of fiat-backed stablecoins and cross-chain assets are published on-chain so DeFi applications can protect against unforeseen fractional reserve activities, minimizing losses for users.
- Verifiable Randomness: On-chain gaming dApps, such as PoolTogether, utilize Chainlink VRF to access a verifiable and tamper-resistant source of randomness which can be used to ensure a provably fair user experience.
- Weather Data: To provide parametric crop insurance to farmers in developing nations, Arbol uses Chainlink oracles to fetch weather data from the NOAA and immediately settle contracts providing funds during adverse weather conditions.
- US Election Data: Through an Everpedia-operated Chainlink node, data signed by The Associated Press regarding the results of the 2020 US Presidential Election was published on-chain and used to settle an on-chain prediction market.
- Data Provider Nodes: The Chainlink framework is also being used by leading data providers to provide cryptographically signed datasets to smart contracts across a number of blockchain networks, providing definitive proof of the data’s origin.
As a generalized framework for building oracle networks, Chainlink enables the smart contract ecosystem to connect to any off-chain data resource required for execution, exponentially increasing the categories of decentralized applications that can be created. Just like the internet in the early 1990s, there is a world of opportunities yet to be explored in regards to how decentralized oracle networks enable a more trust-minimized economy through data-driven smart contracts.
If you’re a developer and want to connect your smart contract to existing data and infrastructure outside the underlying blockchain, reach out to us here or visit the developer documentation.
Website | Twitter | Discord | Reddit | YouTube | Telegram | Events | GitHub | Price Feeds | DeFi