Solving the Oracle Problem: Sergey Nazarov, co-Founder of Chainlink

Summary of a conversation with Sergey Nazarov about Chainlink and the oracle problem.

Obligatory meme below:

When you’re showing your boy PancakeSwap, and you send his $100 of ETH to the BNB Wallet
When you’re showing your boy PancakeSwap, and you send his $100 of ETH to the BNB Wallet
When you’re showing your boy PancakeSwap and you send $100 of his ETH to the BNB wallet

OK, now down to business:

Chainlink’s goal

  • Broad scope: bring fair economic participation to everyone globally. We say that we want this currently, but the way that the world works doesn’t allow for this
  • Asymmetries about how people participate in markets — smaller players can’t compete with the bigger ones with more resources and access
  • Information asymmetry — there is a huge problem with information that ultimately screws with small players who don’t understand the intricacies

Smart Contracts — consist of the agreement (defines what happens if x happens) & performance (outcomes of the contract that trigger the consequences to unfold)

  • Even if you can codify the agreement, you still have to PROVE it in our system today — legal challenges in having that contract honored
  • Secure contracts allow for definitive truth — when the trigger event occurs, the contract executes and that’s the end of it — don’t have to prove it
  • Finality — There’s a certain committee of validators somewhere that decide what the definitive truth is, which is basically consensus truth (a bunch of data sources send information about the weather in a region and enough of them agree to consider it to be final)

The Oracle Problem — 2 problems

  • Blockchain and smart contract where the agreement is codified can’t access data on its own — it can’t get the data or proof
  • How do I get any data into a smart contract?
  • De risking the world’s nondeterministic information and turning it into definitive truth — otherwise you have a really secure system that’s controlled by an insecure system. If the data can’t be clearly defined as it comes into a secure contract, then how do you know that the contract is being honored? We need consensus truth
  • Despite being called “Smart” contracts, they are totally isolated from the internet — secure, hyper limited in their isolation so they are tamper proof. The issue is that you need to fill in the gaps with data (for example, smart contacts can’t even tell time — you have to “kick” them — sending them a signal that they need to do an action)
  • How do I get information into their universe? AND how do I guarantee that the information that is now controlling the contract is reaching the same reliability as the contract itself. Otherwise you’re undercutting the entire premise of the hyper automation, which is the purpose of the contracts to begin with
  • We have a level of automation currently, but there are processes put in place for security that slow down the transmission of that information (i.e. bank transactions taking days to go through)
  • Hyper automation means no check, no balances — everything is so well defined that we don’t need to take the time to check and validate the information
  • Need agreement to be safe from tampering — unalterable, guaranteed to work in a certain way
  • Need system that is telling what the agreement to do to ALSO be safe from tampering
  • Insurance allows people to pursue economic goals by removing risk in ways that allow them to continue to operate
  • If you’re a farmer and you don’t have rain for 2 season, you are ok because you have insurance and are made whole — you don’t have to reinvent your life
  • There are parts of the world where people can’t get insurance b/c governments make it to risky for insurance companies to operate

Smart contracts will allow someone in an unstable part of the world who relies on farming to survive to open an insurance policy online immediately to combat risk. All they need is:

  • Smart phone/access to internet
  • Smart contract to establish an agreement
  • An oracle to prove that it didn’t rain for 2 seasons

You don’t have to rely on an insurance company whatsoever — mind blowing. And the alternative to that scenario is that you wait for a government to improve and conditions to allow insurance

What is Chainlink?

  • Chainlink is a framework for a decentralized collection of oracle network that provides definitive truth about the external world to smart contracts
  • It allows for hyper automated systems that rely on data from the real world
  • Architecture of chainlink: similar to the consensus protocols of blockchains — they have independent API’s that act as nodes and these API’s send them data that is considered definitive truth if there is consensus
  • Some networks are so complex that they have 30 nodes accessing multiple API’s and delivering values that are compacted into one definitive value that is passed along to the Smart Contract
  • More nodes means more access to data
  • All nodes operate independently
  • Important nuance: blockchains have one chain of blocks with transactions that are packaged together with certain limitations — Oracle networks don’t have a blockchain — they are composed many other oracle networks

Oracle Networks

  • There’s an oracle network for each individual piece of definitive truth — as users use that individual truth they pay a small fee that is pooled to sustain the creation of that one individual piece of definitive truth
  • Approaching hundreds of oracle networks
  • Oracle networks are spun up to solve specific problems — solve specific problem about specific piece of data or data source — i.e. what is the weather in a certain geographic location
  • That piece of definitive truth is sent to blockchains, then sent to trigger smart contracts — this is where they create more and more value the more this process goes on (fees put into the pools that are given to nodes that were in consensus. It incentivizes the nodes to provide accurate information too)
  • The triggering of the contract by the definitive truth gives them reliability and valueAlternative is that someone in some IT department controls that contract which is the way the world works now
  • More advanced problem down the line — How do you generate hundreds and thousands of oracles networks that generate these definitive truths and reliably triggers and settles smart contracts? Scale issue

Chainlink framework

  • Collection of oracle networks of different sizes
  • Networks — different sizes and have different security protocols on purpose because you need the flexibility to adapt to scale
  • Nuanced point — oracle networks are highly configurable to meet the demands of a specific user and their smart contract (i.e. some oracle networks are their own nodes running their data
  • As your smart contract accrues more money in the pools, the nodes required also has to increase because the incentive to breach security by the nodes is greater — more money in the smart contract means more nodes
  • Oracles have to be able to be configured in a way that is best for that specific servicing of the individual contract
  • Hybrid smart contracts
  • Build a smart contract on chain to the degree that it needs/wants to be built on chain (perhaps there are fee reasons, privacy issues, etc that require you to have part of the contract on the blockchain) and then there’s an offchain computation of the contract
  • Oracle networks and Chainlink can be thought of as a collection of services that a blockchain can’t provide coming from a decentralized infrastructure
  • Blockchain — place to run smart contract code, transactions in terms of tokens, private key signatures, etc
  • All other services — computing things, proof about the world, randomness inputs etc come from oracle networks

Hybrid contracts

  • it’s important to understand the distinction between the smart contract and it’s execution:
  • The first problem with respect to creating smart contracts is “How do I write the code in the blockchain that expresses what I want the contract to do?”
  • The second portion is “How do I provide definitive truth that triggers the smart contract into execution and finality?” (finality is just when the code of the contract is run to completion resulting in the contracts execution)
  • So while the initial conception around oracle networks is around computation and generating data to find definitive truths, it has expanded beyond that to feature rich smart contracts that have trust minimization that they need to have while ALSO having the features that centralized apps (while centralized apps don’t have the trust minimization — Robinhood is a good example)
  • They can effectively cater certain elements on or off the chain on a contract by contract basis that gives the utlitization the most functionality while maintaining security

I blog about: technology, philosophy, logistics & supply chain, crypto, blockchain, social science and anything else I find interesting.