Oracles and their Inherent Censorship Problem

in #oracles5 years ago (edited)

What are Oracles?##

An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions or precognition of the future, inspired by the gods.

Image: The​ Divine World by Khalil Gibhran

Leaving aside predictions and Godly figures, and no, we are not talking about Oracle, Inc. either, oracles are in a strict software sense, external data feeds used by software engineers and developers to collect real-time data, based on their applications need. Commonly, the data provided by Oracles is manually and periodically updated by a third party, who is trusted to provide true and fair information. Oracles retrieve and verify external data for all form of applications and software, through methods such as web APIs or market data feeds.

Say Yahoo Finance needs to show the price of Gold at a particular time. Its back end API is assigned an Oracle service, to which it will contact and receive the current price. Big enterprises and data providers like Yahoo Finance, Facebook, Google, etc., cannot depend on just one oracle for propagating information as it might be prone to manipulation. In such cases, a consensus-based oracle is used that takes in information from numerous sources and projects the mean of all.

Types of Oracles

The Applications of Oracles are innumerable in today's technologically dependent world. The necessity of Oracles can be found in obtaining market prices for news sites, getting sports scores for betting sites, temperature readings from IoT devices, etc.

The types of oracles and their application differ based on the application. A comprehensive list of the types of Oracles can be found in the links below:

Where do Oracles Fit in on the Blockchain?

It is undoubtedly evident that Smart Contracts, when issued and propagated on a decentralized permissionless blockchain (such as Ethereum, Zilliqa and the likes), hold huge potential for practical and virtual use. Ever since the advent of Ethereum, Smart Contracts are the buzz within the community. Hundreds, if not thousands, of prospective use cases, have been developed, some even finding their usefulness in real world use cases. IBM, Microsoft, Ethereum, Zilliqa among others have already successfully developed applications that rely heavily on Smart Contracts.

The reliance is justified because Smart Contracts are the first usable and scalable medium on the internet that can execute pre-specified arrangements without the fear of hindrance. Meaning, one can make a smart contract and have it executed on a blockchain with full confidence that it will be fulfilled given the conditions are met, and no party will be able to hinder with its outcome.

But, as the saying goes, every cloud has a silver lining, people often forget that a silver lining has a cloud in return. Smart Contracts, on paper, seem to be the ultimate solution to the immutable agreement problem on the internet, but when trying to develop one faces difficulties that could not have been foreseen.

Image: Reliance of Smart Contracts on outside information

For a smart contract to rightly execute as per the agreement, they have to rely on outside information providers, which in most cases are oracles. For instance, say I get into a bet with my friend that my favorite team is going to win the world cup and he says otherwise. We decide to enforce the same on a smart contract and tag it on a particular blockchain, ensuring the execution. Since a Smart Contract is not actually Smart, it has to rely on information provided by other entities to execute itself. Considering the bet amount is sufficiently large enough to motivate either party to hinder with the outcome, one of us can manipulate the Oracle provider to propagate wrong information, thus profiting without actually fulfilling the agreement. Oracles, being outside the blockchain are subject to the influence, just like any centralized entity.

And thus, the debate arises: what can be done to solve the censorship problem? Is it still legit to call a blockchain immutable and censorship-resistant, when something as novel as oracles can be manipulated to change the outcome? What can be done to bridge the gap between the virtual immutability of the blockchain and the apparent problem of information propagating Oracles? If Oracles are brought in house and computed on the blockchain, will it strain the validators due to increased memory flow?

Barring the projects currently in development, that, on paper discuss the problem and propose a solution, readers are encouraged to come up with an opinion of their own. Please do help in encouraging a discussion about solving the problem.

  • SB

ReverseAcid Monthly Recap

Crypto Analysis Series

Previous Posts

About Reverse Acid

Be a part of our Discord community to engage in related topic conversation.

Follow our Instagram and Twitter page for timely market updates


One way to resolve the issue would be to use a consensus-based oracle that takes in information from numerous reliable sources and instead of projecting the mean of all, it projects a result that is matched by a majority of the reliable sources.

...and how do you judge which are the reliable sources...and if you rrust them so much, why bother, why not use only them? Does the description 'reliable' not depend on many other factors? For instance, that you have the same political beliefs? But then, surely that is a terrible way to judge what is true and what is not really factual?

Thanks for the valuable input @arthur.grafo.

I used the word "reliable" in an objective sense meaning a source which is known to be reliable objectively but still could be corrupted by bad actors once in a while. Reliable but not guaranteed.

For instance Binance is an objectively reliable exchange but they certainly cannot guarantee that they are hack proof.

Hello @devann and @arthur.grafo

As pointed out by @arthur.grafo, reliable, as a word, is widely subjective and can mean different things to different. In my personal opinion, instead of trying to give subjective meaning to well-meaning arguments, using consensus as a base can help solve the debate.

A consensus based protocol that gives a weighted average consideration to all inputs and propagates​ outputs accordingly can certainly do the trick.

Thanks for the comments.

Thank you for this publication. I learned a new meaning of * Oracles *, the one that is enrolled in the blockchain, Thanks for posting.

Gracias por esta publicación. Aprendí un nuevo significado de Oracles, el que está inscrito en la blockchain, Gracias por publicar.
Have a nice day!!!

You are very welcome @mllg

Any more clarifications, please don't​ hold back in reaching out.

Thanks a lot!!
I like to read yor articles

3rd party apps are the weak point of the blockchain. That is why you have to use multiple oracles with a general consensus mechanism to checkmate rogue activity.

I think steem's price feed is some kind of oracle. Monetary policy of steem/SBD depends in some degree of good input.

Good post, I share it for everyone!

Well, thank you @cloudblade. As always.

It just concerns me how these oracles gather their information. Was it in a legitimate way? because, the privacy of a person is still a top priority and, although the data collected were only for a legitimate study, I am simply not comfortable with this.......

You concern is legitimate @nurseanne84. That is why the EU came up with GDPR. We believe a similar national law will be in place for the US in the near future.

Well said I guess your username suggests what you believe.

The data collection mechanism is usually in the hands of the person who makes the oracle @nurseanne84.

There was a famous case on the Augur platform where someone came up with a smart contract for the assassination of the Russian President. Even though wide controversial, one can imagine what type of Oracle would've been connected to the smart contract, nd what validity would that carry?

I am sure you can find it online.

I love the phrase "A smart contract is not actually smart."

But I assume that smart contracts are smart enough to get their info and data from reliable sources. In that way, they appear to be smart.

Kinda like a humble person who admits he does not know everything, but is willing to learn new info from reliable sources. :-)

Hello @majes.tyryty

Well, not really. A smart contact is only as smart as the person who programmed it. The reason why it is called what it is, is because Nick Szabo decided so in his original paper discussing the he same.

Thanks for the read. Cheers. And good to see you too ;)

Lovely article... I guess Chainlink is a oracle that can be relied on for these smart contacts to get outside information. This writing was easy to understand and everything was well explained and informative.

Congratulations @reverseacid for the well written quality article.


This post was shared in the Curation Collective Discord community for curators, and upvoted and resteemed by the @c-squared community account after manual review.
@c-squared runs a community witness. Please consider using one of your witness votes on us here

Hello @reverseacid!

The first time I heard about Oracle, I thought they were talking about the database manager.

Projects like Chainlink, Witnet, Oraclize are working on a decentralized network of Oracle nodes.

Good article.

Congratulations @reverseacid! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You distributed more than 14000 upvotes. Your next target is to reach 15000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

You can upvote this notification to help all Steem users. Learn how here!

Good post, I share 💕

Posted using Partiko Android

No, I did not mind getting your memo - though, to be honest, I have already read this post, thanks to @wakeupkitty.

I found some articles of great interest and I wish you lived around the corner from me, so that we could meet over a capuccino and talk about them.

Thanks, and keep in contact, in any way you please.

I am not a fan of mixing oracles and blockchain, but ultimately humans are needed for human factors.