Oracle Evolution

Rich data sources are what evolved the internet. Static pages turned into dynamic data thanks to APIs (oracles). As APIs (oracles) evolved in the traditional web, they allowed completely new apps that weren’t previously possible. It was key behind the web’s evolution from web1.0 (static) to web2.0 (dynamic).

A personal note: 3–4 years ago, my thoughts on this topic were a lot more binary. I believed there was the traditional centralized web (web2.0) and the decentralized web (web3.0 [while I don’t like this moniker, I will use it in the article, I believe deweb1.0 is probably a better label]). My belief was that these two needed to be completely separate, with no intermingling. The decentralized web back then was akin to the early static pages of web1.0, they could exist in isolation. Over the last 4 years, the decentralized web has evolved into a much more interactive-based system. Web2.0 receiving “off-chain” data (weather, flights, supply chain, etc.) did not diminish its power, it exponentially grew it. The same is true for web3.0.

Oracle v1: on-chain request, off-chain provider; example Oraclize

  • User initiates on-chain transaction (deposit/withdraw/buy/sell/liquidate/etc.) to smart contract

Pros:

  • Can source arbitrary oracle data

Cons:

  • Centralized service

Oracle v2: on-chain provider; example Chainlink

  • Dapp requests a data feed (predominantly price) from Oracle (off-chain)

Pros:

  • Data availability (data is on-chain when required, no responsiveness delay)

Cons:

  • No arbitrary data

Oracle v3: off-chain data, on-chain verifier, example Chainlink (in alpha) <- we are here

  • Dapp/user requests off-chain provable data from authorized service

Pros:

  • Can request arbitrary data

Cons:

  • Centralized authority/prover (trust)

Oracle v4: zero knowledge provable data, TBD

  • Dapp/user requests off-chain provable data from prover program

Pros:

  • Can request arbitrary data

Cons:

  • Contract needs pre-knowledge of the prover program

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store