Understanding Smart-Contracts and their quest for reliable oracles

A “Smart-Contract” is a term used to define an agreement by which the contractual terms are executed as code running on a blockchain. A Smart-Contract may be the entire expression of an agreement between two parties, or it may serve to compliment a traditional written or oral agreement by realizing certain provisions of the agreement. Unlike traditional agreements, which require each of the parties to physically perform the agreement´s contractual obligations, in the case of Smart-Contracts, the parties’ obligations are automatically executed.

Ideally, a Smart-Contract would function as a wholly self-executing agreement, operating through a fully automated and decentralized transaction system, with the provisions of the agreement between the parties being directly written into the lines of computer code. Most Smart-Contracts, however, rely entirely on information to be inputted into them; i.e.: an off-chain trigger event to set off the blockchain sequence of events. Information in a Smart-Contract from sources not on the blockchain are considered “off-chain” or external. Smart-Contracts cannot retrieve data from off-chain resources, thus, that data must be physically inputted into the Smart-Contract.

The secure interoperation between off-chain resources and the blockchain requires for the parties of a Smart-Contract to mutually agree on a trusted third-party entity known as an “oracle” to link the two. Oracles function by retrieving off-chain information and pushing that information into the Smart-Contract at predetermined times. When setting the terms for the Smart-Contract, the parties must agree on a single oracle; which begs the question, how do the parties decide on a reliable oracle?

Oracles are classified based on their source, their direction of information and their degree of trust. The source of the oracle refers to the origin of the data, differentiating between Hardware Oracles and Software Oracles; while the first obtains information from the physical world, the latter engages in interactions with online sources and pulls information from the web. The direction of the information could be either inbound or outbound; Inbound Oracles transmit information from external sources into the Smart-Contract, while Outbound Oracles send information to the external world from the Smart-Contract. Lastly, the trust aspect refers to whether the information is centralized or decentralized; on the one hand, Centralized Oracles serve as a single information provider, while Decentralized Oracles are not dependent on a single source of truth, rather, they rely on various points or “nodes” of information.

The execution of a Smart-Contract depends (sometimes entirely) on the data harvested from an oracle. An ideal oracle is one that is sourced from a trusted decentralized source network. Another way to protect the effectiveness of the Smart-Contract is by utilizing multiple oracles, utilizing multiple oracles provides the parties with heightened security, ensuring that even if one of the oracles fail (i.e: due to a cyber-attack, or is compromised, or its hardware fails) the necessary information is still obtained.

A future in which the use of Smart-Contracts becomes widespread, is contingent on overcoming the challenge of choosing reliable oracles, which are resistant to manipulation and resilient to attacks. This demand for secure oracles has resulted in the offspring of various new ventures, aimed at the creation of new software that connects Smart-Contracts to real world and decentralized data, thus providing what developers claim to be a secure source of information in a highly manipulation-resistant manner.

If you have any questions on the interplay between traditional contracts and Smart-Contracts, or if you have any questions on this process, please feel free to contact us at quijano@quijano.com