top of page

ORACLES

What is an oracle?

The main purpose of an oracle is to input information into the smart contract about external factors that affect the execution of its pre-programmed actions [21]. For example, an oracle might feed a smart contract the value of a certain stock on a given day in the future or the top trending news topic of a given week in the future. The input of external information is crucial to expanding the applicable use cases of smart contracts. With oracles, smart contracts can be written to execute the contract based on future events that are unknown at the time of the contract’s creation, addressing the unforseeable conditions weakness of smart contracts.

​

Oracles are also important for verifying the occurrence of events external to the smart contract, such as verifying the transfer of money into a bank account, or verifying that parties met their obligations as stated in a contract. There are two main kinds of oracles: decentralized (unmanned) oracles and human oracles [22].

 

Unmanned oracles provide a method to feed smart contracts information without requiring human intervention. They are the perfect solution for feeding smart contracts with factual, objective information, such as temperature or the balance of a bank account. An example of such an unmanned oracle would be a computer program that individuals can download onto their computers to run without any intervention. This computer program would then be able to gather information and feed it to the smart contract.

 

As implied in their names, human oracles require people to make decisions and feed the smart contract with information. Human oracles can be used when there isn’t a data source available from which decentralized oracles can pull information automatically, or when making decisions that require a subjective opinion, such as answering, “Was the party's effort to meet the contract term to the best of their ability?”. The need for humans to input information into the smart contract arises when no secure database exists from which a decentralised oracle can pull information.

​

Who plays the role of a human oracle?

For a smart contract, the use of human oracles can proceed in one of two ways. For each term requiring external information, either one person or multiple people should be asked to make a subjective judgement and input the data into the smart contract. Using multiple human oracles allows the smart contract to execute according to the best information available: crowdsourced information that has the highest consensus amongst the oracles. This benefit is particularly seen under conditions of uncertainty where information is imperfect or expert consensus on the 'correct' judgement is low. An example of a condition that is shrouded in uncertainty, where crowdsourced information would be particularly helpful, is that of coronavirus forecasting.

 

It is important to recognise that when you select someone (or multiple people) to be the oracle for a smart contract, you are essentially choosing your jury and court that will have the power to decide how data is interpreted and what the consequences of its interpretation will be in the context of the contract. The human oracles in each of the above two cases should then be experts in the field relating to the information which they are asked to provide to the smart contract. 

Justice%20Scale_edited.jpg

©2020 by INTEG 452A/B: Real-World Problem Solving, a capstone project in the Dept. of Knowledge Integration at the University of Waterloo

bottom of page