What is an Oracle and why is it needed

So an oracle is a program which connects external networks to the specific blockchain to onboard data so that smart contract can act upon the input or output from the oracle.
So to paraphrase an oracle is like a postman which brings the post to an island only he knows the way to is that right?

If so why is it use full and for that might it be used in the future?

1 Like

A Blockchain cannot safely generate random numbers, because any application doing so would expose that random number to every node validating the transactions. So, an oracle can be used to have on-ledger code that relies on random numbers.

Another use case is to retrieve any data that is variable, based on non-ledger factors, such as the weather, the content of a database, the value of a stock on the stock market, etc.

4 Likes

Oracle, in it’s general meaning is the “bridge between real world’s data and on-chain’s data”.
There are 3 main use case (as on Chainlink):

  1. Data Feed: come from 1 problem of the “bridge between real world’s data and on-chain’s data” as people cannot feed the off-chain data into on-chain data and maintain the same level of decentralization. All the transaction, smart contract data on-chain is decentralized, but off-chain? > mostly centralized, you don’t know if the one feeding data from off-chain environment will manipulate the data or not.
    Data Feed oracle create a decentralized bridge for many nodes to come into consensus and vote those data to get it on-chain, on Chainlink case is about 20-30 nodes, my NeuRacle “can have” infinte nodes (as how the NeuRacle blueprint user would like to make).

  2. Randomness Generator: Dlt tech is deterministic, eg: anyone can run the same system as Radix Network and see “what the next wallet number would be?” or “what the next transaction number would be?” or even “what the next block would look like”. Learn more: Determinism in Computer Science. > We cannot have randomness on Dlt.
    Thus, this call for an Oracle application called Randomness Generator. Randomness Generator Oracle actually just “data feed” (use case 1) a “entrophy seed” (just any unpredictable data from real world, eg: the price of BTC or XRD in a specified time in the future, the total trading of XRD today,…) to generate a randomness (a number, a string,…). The “entrophy seed” could also be something from transaction data like: “what message or how much token the next transaction would sent” (because this is off-chain data got validated into the chain).

  3. Automated Smart Contract (or automated transaction): to call a smart contract (or make a transaction) you would need to interact with the ledger’s application (wallet, DEX, lending platform,…). It’s okay if you can code a program to automated your transaction, but it’s not okay when you’re the one automated a smart contract. Why? Transaction is from “your wallet” - a centralized entity, while “Smart contract” is for everybody - a decentralized entity. One person automated the smart contract would make that smart contract “centralized”, you don’t know if the person automate the smart contract will manipulate it or not.
    So Automated Smart Contract Oracle would also create a “decentralized bridge” to automatically call the smart contract for you. There would many node come into consensus to automatically call the smart contract. Eg: the node runner would just have to run the same application that call the smart-contract in specified condition (like my NeuRacle Gateway “Right after round start, NeuRacle Gateway will update datas on Validators behalf”).

There can be more application for an Oracle project, but these are 3 main cases.

As the Oracle general meaning: “bridge between real world’s data and on-chain’s data”, you can now somehow guess what an Oracle would be used for, right? Why would we need a bridge between “real world” and “digital world”?
Global DeFi cannot come only “digital”, because most “earth-value” are still “real world” assets.

4 Likes

In simple terms I understand its to pull real world data onto the chain ? Is that correct, like stocks ect, I wonder if there are any projects that are working on this.

1 Like

So every Gambling/Beting dapp like delphibets is an oracle? Or if we have tokenized stokes an oracle is involved to get the current prices?
For these data feeds to be valid there is basicly build another DLT on top of the exciting chain to validate the onboarded information right?
So that would be the data feed

the Randomness generator & automated smart contract I am still chewing on

Your knowledge is really impressive to me by the way shows me that I still have lots to learn

1 Like

I think mirror protocol has tokenized stocks so for sure it’s been worked on other networks maybe Radix will once have Dex for traditional market assets

Not every, I would refer them as the “Oracle user”, not oracle itself.

Right, an oracle will be needed when tokenizing stokes

Yeah, basically, data feed need to be validated among a decentralized network to make centralized data > decentralized data. There are many way to decentralize a data, my DPoS NeuRacle is one of the way.

I also have much to learn, I done many google searches before my answer for you :grin:

2 Likes

Exactly. This is what projects like Chainlink, band or API3 are trying to do. In a nutshell, an Oracle is the meeting between something that is centralized with the defi space. Imagine having the betting world, PayPal, Mastercard or simply every existing bank in the defi space

1 Like

So oracles will grow a lot if more adoption kick in since we want these real world data available on chain

Now I slowly understand why people are bullish on chainlink or other oracle projects

So an oracle is often a service provider for different Dapps

Your DPoS NeuRacle is basicly a way of just onboarding data decentralized on to the chain but is it a specific data or is the use case determined by the user

But nevertheless you write in a way that I can feel it is not only loose knowledge islands in your head but rather you understand how the single bricks connect with each other and work together which is really sick

1 Like

determined by the user, user can get any real world data they want through my oracle

Maybe I do sick? People around me often call me “weird” :laughing:

1 Like

Thats pretty cool to theoretically Delphibets might use your oracle one day

For me you do

We are most probably all slightly weird in real life XD

1 Like

Right, they can use my Oracle… or just make their project both an Oracle and a betting platform through my blueprint :laughing:

2 Likes

Are you already partecipating in this project? Maybe it something useful for you, it is related to a competition and you have until May 27th to come up with a Scrypto package that represents an Oracle. Apart from the huge rewards, this is a great chance to grow as community and ecosystem!

1 Like

I am the runner up of that challenge with NeuRacle?

1 Like