An oracle is an agent that acts as an intermediary between a smart contract platform and an API. In other words, a decentralized application can use an oracle to call an API. It is important to understand that an oracle can access API data in more than one way on behalf of a dApp.
In a traditional sense, an oracle node acts as a proxy by listening for requests made on the blockchain. The oracle then calls the API over the Web and fulfills the requests by making transactions on the blockchain. This is known as the request-response protocol (RRP). An oracle uses its own smart contracts to implement a protocol. This defines how decentralized applications can make requests to the oracle and receive responses.
Moving beyond the RRP protocol, certain protocols may be more appropriate depending on how an oracle node is being utilized such as for data feeds, which have values stored on-chain. In fact data feeds are what dApp owners desire the most. API3 provides data feeds know as dAPIs.
The tough question that comes into play, who owns and operates the oracle?
First-party oracles and the data feeds they provide offer a range of benefits for dApp owners.
Security: First-party oracles are more secure because there is no middleman on the interface path.
Cost efficiency: Avoiding the middle man tax means first-party oracles are cost efficient.
Transparency: Enhanced source transparency means reputation can be gauged when looking to utilize real-world data in dApps.
Signed data: Data from the API provider is signed before it is pushed through a first-party oracle and onto any chain.
Flexibility: These type of oracles also are increasingly flexible when it comes to delivering oracle services and first-party data feeds can be utilized in a multitude of ways to best serve the users application.
For these reasons, API3 believes in order to facilitate meaningful dApps, first-party oracle must provide an optimal architecture.
If a central entity can switch the oracles or APIs used in the aggregator in and out, or even replace the aggregator itself making use of a proxy mechanism, they can effectively manipulate the oracle network output at will.
This eliminates the decentralization and trustlessness qualities that using an oracle network provides. Therefore, it is not adequate to use an oracle network to achieve decentralization, this oracle network must be governed decentrally as well.
Decentrally-governed networks of first-party oracles would adequately solve the API connectivity problem. Consider the following:
Decentralized applications need access to APIs.
It is optimal to interface APIs to smart contract platforms through first-party oracles.
For API level decentralization, decentrally-governed oracle networks should be employed.
API3 delivers decentralized interfaces to APIs to facilitate this through governance.
A decentralized API is a product which contains:
APIs interacting with oracle networks decentralized interfaces
Decentralized governance and interfaces
By taking advantage of the advantages offered by decentralization, developers can build applications with elevated security and trustworthiness. See the medium article, Why API3 DAO? on DAOs and decentralized governance.