Blockchain Oracles - in depth explanation

Here is a condensed summary of notes I put together when reading articles & such.

Basics (ELI5)

Start reading this post (2min read): ELI5 Blockchain Oracles


"An oracle network removes the need to trust a single participant for critical data input. There’s no point to using a trustless, decentralised, fault-tolerant and Turing-complete blockchain smart contract platform if the data interface to the real world can be compromised. If the data itself is wrong, or malicious, it defeats the purpose of smart contracts. A smart contract must be able to utilise real world data to build applications with any real use case; limiting smart contracts to blockchain-to-blockchain interactions (like ICOs on Ethereum) is not enough.” -

Oracle Types

Oracle types, 1:

  • Software oracles - information available online. i.e. stock index prices, FX rates
  • Hardware Oracles - information directly from the physical world. i.e. a car detected crossing a barrier, registered mail scanning, supplier goods delivery scanning,

Oracle types, 2:

  • Inbound Oracles - provide the smart contract with data from the external world
  • Outbound Oracles - provide smart contracts with the ability to send data to the outside world
  • Consensus Based Oracles
    • Prediction markets like Augur and Gnosis rely heavily on oracles to confirm future outcomes. Using only one source of information could be risky and unreliable. To avoid market manipulation prediction markets implement a rating system for oracles. For further security, a combination of different oracles may be used, where for example 3 out of 5 oracles could determine the outcome of an event.

Oracle types, 3:

  • Decentralized oracles aggregate the same data from a bunch of different oracle service providers, depending on the bid, rank them with their reputation and come to a calculated understanding about which data is legit.
  • In the case of a centralised oracle service, there’s nothing you can do except trust Oraclize or Microsoft or whoever that the decision they make regarding which data is false, and which nodes should not be counted, is actually legit.

Oracle Projects

  • ChainLink ($LINK)

    • Creating the world’s first truly decentralized Oracle network, allowing Smart Contracts to securely connect to off-chain feeds such as APIs or widely-accepted payment systems
    • Blockchain agnostic - for now works with Bitcoin, Ethereum and Hyperledger blockchains.
  • SmartContract project - - same as ChainLink ?

    • launching phase one of its long-term project that seeks to connect the back-office Swift systems of banks to Smart Contracts, essentially becoming an Oracle between banks and Blockchain-based Smart Contracts
  • Witnet -

    • Decentralized Oracles
  • Mobius -

  • Provable -

    • formerly called Oraclize
    • a London-based fintech company that has a vision of creating a versatile and reliable connection between web APIs and Dapps
  • XYO -

  • FOAM -

  • Rhombus -

  • Band Protocol -

  • Microsoft Coco

  • Corda platform

    • Oracles are part of the Corda platform, which is another enterprise blockchain solution. They aren’t an independent or decentralised oracle platform, but if your business uses R3 Corda for its blockchain tasks, you wouldn’t need a third party oracle service. That, of course, means it can’t be used with Ethereum or any other blockchain/smart contract platform.
  • Hivemind

    • a decentralised oracle protocol developed as a Bitcoin sidechain. It uses Bitcoin smart contracts to automate most of the traditional oracle processes. Hivemind uses a cryptocurrency Votecoin, to build reputation and economic incentive, similar to ChainLink’s own LINK tokens.
  • Town Crier

    • Town Crier was created by IC3 (Initiative for Cryptocurrencies and Contracts), a consortium of students and faculty developers from various Ivy league schools. Ari Juels, Cornell professor and financial cryptographer who helped create Town Crier is an advisor of ChainLink. Sergey Nazarov worked on the project himself. It’s an open source protocol running on C, developed for the Ethereum blockchain so far. It’s not as vast in scope as some of the other projects here, but still worth a mention. Its relation to ChainLink posits itself in a unique place – it’ll probably be implemented alongside ChainLink and not compete with it.

Recommended reads