5. Oracle Design

This doc outlines the technical design & function of April oracle.

Purpose of Oracles:

Binance academy has a very good post which explains what blockchain oracles are so we will quote them on this:

"Blockchain oracles are third-party services that provide smart contracts with external information. They serve as bridges between blockchains and the outside world.Blockchains and smart contracts cannot access off-chain data (data that is outside of the network). However, for many contractual agreements, it is vital to have relevant information from the outside world to execute the agreement.

This is where blockchain oracles come into play, as they provide a link between off-chain and on-chain data. Oracles are vital within the blockchain ecosystem because they broaden the scope in which smart contracts can operate. Without blockchain oracles, smart contracts would have very limited use as they would only have access to data from within their networks.

It’s important to note that a blockchain oracle is not the data source itself, but rather the layer that queries, verifies, and authenticates external data sources and then relays that information. The data transmitted by oracles comes in many forms – price information, the successful completion of a payment, or the temperature measured by a sensor."

Source: https://academy.binance.com/en/articles/blockchain-oracles-explained

Our Approach to Oracle Design:

April is a high speed oracle and to achieve the high speed delivery of real world data on-chain, we have had to take an innovative approach to oracle design. As the crypto industry is our initial market space we will outline our design for the high speed on-chain delivery of cryptocurrency market trade and price data. We shall group our discussion around the below three points; speed of the market, 100% transparency & auditability and 100% uptime.

Speed of the Market

"Speed of the market" is a term we use to describe what is happening in the crypto market made up of all the trades taking place on the exchanges we have integrated. Each spot market trade which is executed on all exchanges integrated to April becomes an on-chain transaction which must fight for the "top ranking slot". The top ranking slot is the transaction which will be returned in a cross chain response by April oracle to the requesting smart contract. The top ranking slot is constantly changing hands and the speed by which it changes is what we term the speed of the market. This speed is determined by the trading velocity across all the integrated exchanges at any moment in time. It is complex, dynamic, cannot be predicted nor controlled.

This speed of the market has an anti data manipulation and corruption benefit to it, which we have used in our oracle design. To try to manipulate or corrupt our datafeeds you would need to attack not one but all the exchanges linked to April. Attacking all the exchanges over a specific period of time would be very hard and nearer to impossible. If you were able to manipulate one or two exchanges then the market trades happening on the other exchanges would over power your corrupt trades in the fight for the top ranking slot. There is indeed a very slight probability that one of your corrupt trades might hold the top ranking slot for a few milliseconds. But the faster the speed of the market becomes the lesser that probability.

As more exchanges are integrated the speed of the market for each datafeed increases thereby decreasing the data manipulation and corruption probability. The speed of our datafeed updates are in the millisecond ranges as we easily operate at +100 TPS.

April oracle V2 will implement a transaction batch process which shall also reduce this already slight probability and provide even more security.

100% transparency & auditability

We capture market trade data and turn them into transactions on-chain. Included in this data are market trade identification information generated at the exchange of origin where the trade took place. When a smart contract request data from April that identification information is also provided. That trade data with it's unique identifier is now recorded not only on our blockchain but the chain of the requesting smart contract as well as origin exchange. This provides 100% transparency as well as the ability for conducting full data audits.

100% datafeed uptime

Our global relay node network is distributed and robust. Spread throughout the world across five continents with no two relay nodes utilizing the same city, local region or local provider. This is done to prevent network downtime due to service provider failure, natural disasters, failure of enabling infrastructure (ie. electricity), insurrections or wars. This distributed approach is also implemented for each individual exchange which has it's own dedicated sub-relay node network. This ensures that if a sub-relay node network or exchange goes down the datafeed will not be affected.

We will not activate a datafeed if we do not have a minimum of three distributed and independent exchanges to which we can connect our global relay node network to. Each datafeed is supported by a minimum of three exchanges with five exchanges being our standard operating practice. This ensures 100% datafeed uptime even if 4 of 5 exchanges or 90% of the global relay node network goes down.

Current Cryptocurrency Exchanges:

For our crypto market and price datafeeds we have integrated Binance, Coinbase Pro, Huobi, Kraken & Bitstamp. We plan to integrate FTX, OKEx and other major crypto exchanges in the near future.

April Datachain:

The April oracle datachain is the core of our oracle system. The datachain is fed by our global relay node network. The datachain is a fully functional high performant blockchain. Our global relay node network is what connects our datachain to the various exchanges which provide data. Having our own chain also allows us to utilize cross chain interoperability protocols such as Cosmos IBC, Poly network and others.